=e&&t.s<=e+n}},_findTargetItemIndex:function(n){return this._showController?(this.getContentGroup().eachChild(function(t,e){var i=t.__legendDataIndex;null==a&&null!=i&&(a=e),i===n&&(o=e)}),null!=o?o:a):0;var o,a}});_f("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});cD.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});var lL=rs,uL=Rl,hL=Bl,cL=A,dL=R,fL="horizontal",pL="vertical",gL=["line","bar","candlestick","scatter"],mL=pD.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){mL.superApply(this,"render",arguments),kc(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){mL.superApply(this,"remove",arguments),Pc(this,"_dispatchZoomAction")},dispose:function(){mL.superApply(this,"dispose",arguments),Pc(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Ci;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},o=this._orient===fL?{right:n.width-i.x-i.width,top:n.height-30-7,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=Iu(t.option);R(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=o[t])});var r=bu(a,n,t.padding);this._location={x:r.x,y:r.y},this._size=[r.width,r.height],this._orient===pL&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),o=n&&n.get("inverse"),a=this._displayables.barGroup,r=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==fL||o?i===fL&&o?{scale:r?[-1,1]:[-1,-1]}:i!==pL||o?{scale:r?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:r?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:r?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new lL({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new lL({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:A(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),o=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=o){var a=n.getDataExtent(o),r=.3*(a[1]-a[0]);a=[a[0]-r,a[1]+r];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],d=u[1]/(n.count()-1),f=0,p=Math.round(n.count()/e[0]);n.each([o],function(t,e){if(0e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-o);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var i;if(dL(this.getTargetCoordInfo(),function(t){if(!i&&t.length){var e=t[0].model.coordinateSystem;i=e.getRect&&e.getRect()}}),!i){var t=this.api.getWidth(),e=this.api.getHeight();i={x:.2*t,y:.2*e,width:.6*t,height:.6*e}}return i}});function vL(t){return"vertical"===t?"ns-resize":"ew-resize"}cD.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var yL="\0_ec_dataZoom_roams";function xL(t,n){var e=wL(t),o=n.dataZoomId,a=n.coordId;R(e,function(t,e){var i=t.dataZoomInfos;i[o]&&_(n.allCoordIds,a)<0&&(delete i[o],t.count--)}),bL(e);var i=e[a];i||((i=e[a]={coordId:a,dataZoomInfos:{},count:0}).controller=function(t,r){var e=new Vy(t.getZr());return R(["pan","zoom","scrollMove"],function(a){e.on(a,function(n){var o=[];R(r.dataZoomInfos,function(t){if(n.isAvailableBehavior(t.dataZoomModel.option)){var e=(t.getRange||{})[a],i=e&&e(r.controller,n);!t.dataZoomModel.get("disabled",!0)&&i&&o.push({dataZoomId:t.dataZoomId,start:i[0],end:i[1]})}}),o.length&&r.dispatchAction(o)})}),e}(t,i),i.dispatchAction=T(SL,t)),i.dataZoomInfos[o]||i.count++,i.dataZoomInfos[o]=n;var r=function(t){var n,o={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0;return R(t,function(t){var e=t.dataZoomModel,i=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");o["type_"+n]"],L(t)&&(t=t.slice(),n=!0),o=e?t:n?[u(t[0]),u(t[1])]:u(t),E(l)?l.replace("{value}",n?o[0]:o).replace("{value2}",n?o[1]:o):C(l)?n?l(t[0],t[1]):l(t):n?t[0]===s[0]?i[0]+" "+o[1]:t[1]===s[1]?i[1]+" "+o[0]:o[0]+" - "+o[1]:o;function u(t){return t===s[0]?"min":t===s[1]?"max":(+t).toFixed(Math.min(r,20))}},resetExtent:function(){var t=this.option,e=GL([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;0<=o;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){var t=this.ecModel,e=this.option,i={inRange:e.inRange,outOfRange:e.outOfRange},n=e.target||(e.target={}),o=e.controller||(e.controller={});m(n,i),m(o,i);var u=this.isCategory();function a(n){BL(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")},VL(this.stateList,function(t){var e=n[t];if(E(e)){var i=OL(e,"active",u);i?(n[t]={},n[t][e]=i):delete n[t]}},this)}a.call(this,n),a.call(this,o),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},VL(n,function(t,e){if(g_.isValidType(e)){var i=OL(e,"inactive",u);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,n,"inRange","outOfRange"),function(a){var r=(a.inRange||{}).symbol||(a.outOfRange||{}).symbol,s=(a.inRange||{}).symbolSize||(a.outOfRange||{}).symbolSize,l=this.get("inactiveColor");VL(this.stateList,function(t){var e=this.itemSize,i=a[t];null==(i=i||(a[t]={color:u?l:[l]})).symbol&&(i.symbol=r&&k(r)||(u?"roundRect":["roundRect"])),null==i.symbolSize&&(i.symbolSize=s&&k(s)||(u?e[0]:[e[0],e[0]])),i.symbol=EL(i.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var n=i.symbolSize;if(null!=n){var o=-1/0;zL(n,function(t){oe[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){WL.prototype.completeVisualOption.apply(this,arguments),R(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Bl((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(n){var o=[];return this.eachTargetSeries(function(t){var i=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){n[0]<=t&&t<=n[1]&&i.push(e)},this),o.push({seriesId:t.id,dataIndex:i})},this),o},getVisualMeta:function(i){var t=UL(this,"outOfRange",this.getExtent()),e=UL(this,"inRange",this.option.range.slice()),n=[];function o(t,e){n.push({value:t,color:i(t,e)})}for(var a=0,r=0,s=e.length,l=t.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new Ci("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(n,o){if(this._useHandle){var a=this._shapes,r=this.visualMapModel,s=a.handleThumbs,l=a.handleLabels;KL([0,1],function(t){var e=s[t];e.setStyle("fill",o.handlesColor[t]),e.position[1]=n[t];var i=pl(a.handleLabelPoints[t],fl(e,this.group));l[t].setStyle({x:i[0],y:i[1],text:r.formatValueText(this._dataInterval[t]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===t?"bottom":"top":"left",a.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=qL(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",function(t,e,i,n){return t?[[0,-$L(e,JL(i,0))],[6,0],[0,$L(e,JL(n-i,0))]]:[[0,0],[5,-5],[5,5]]}(!!i,n,l,r[1]));var c=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0});h.setStyle("fill",c);var d=pl(u.indicatorLabelPoint,fl(h,this.group)),f=u.indicatorLabel;f.attr("invisible",!1);var p=this._applyTransform("left",u.barGroup),g=this._orient;f.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===g?p:"middle",textAlign:"horizontal"===g?"center":p,x:d[0],y:d[1]})}},_enableHoverLinkToSeries:function(){var n=this;this._shapes.barGroup.on("mousemove",function(t){if(n._hovering=!0,!n._dragging){var e=n.visualMapModel.itemSize,i=n._applyTransform([t.offsetX,t.offsetY],n._shapes.barGroup,!0,!0);i[1]=$L(JL(0,i[1]),e[1]),n._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=e[0])}}).on("mouseout",function(){n._hovering=!1,n._dragging||n._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=$L(JL(o[0],t),o[1]);var r=function(t,e,i){var n=6,o=t.get("hoverLinkDataSize");o&&(n=qL(o,e,i,!0)/2);return n}(i,a,o),s=[t-r,t+r],l=qL(t,o,a,!0),u=[qL(s[0],o,a,!0),qL(s[1],o,a,!0)];s[0] ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||ek(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=function(t,e){var i={},n={};return o(t||[],i),o(e||[],n,i),[a(i),a(n)];function o(t,e,i){for(var n=0,o=t.length;ni&&n([i,e[0]],"outOfRange"),n(e.slice()),i=e[1])},this),{stops:a,outerColors:r}}function n(t,e){var i=s.getRepresentValue({interval:t});e=e||s.getValueState(i);var n=o(i,e);t[0]===-1/0?r[0]=n:t[1]===1/0?r[1]=n:a.push({value:t[0],color:n},{value:t[1],color:n})}}}),ok={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i),t.minOpen&&e.push({interval:[-1/0,n[0]],close:[0,0]});for(var r=0,s=n[0];r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};function ak(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e.reverse()}XL.extend({type:"visualMap.piecewise",doRender:function(){var a=this.group;a.removeAll();var r=this.visualMapModel,s=r.get("textGap"),t=r.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=r.itemSize,e=this._getViewData(),i=e.endsText,d=W(r.get("showLabel",!0),!i);i&&this._renderEndsText(a,i[0],c,d,h),R(e.viewPieceList,function(t){var e=t.piece,i=new Ci;i.onclick=A(this._onItemClick,this,e),this._enableHoverLink(i,t.indexInModelPieceList);var n=r.getRepresentValue(e);if(this._createItemSymbol(i,n,[0,0,c[0],c[1]]),d){var o=this.visualMapModel.getValueState(n);i.add(new Ur({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,textVerticalAlign:"middle",textAlign:h,textFont:l,textFill:u,opacity:"outOfRange"===o?.5:1}}))}a.add(i)},this),i&&this._renderEndsText(a,i[1],c,d,h),wu(r.get("orient"),a,r.get("itemGap")),this.renderBackground(a),this.positionGroup(a)},_enableHoverLink:function(t,i){function e(t){var e=this.visualMapModel;e.option.hoverLink&&this.api.dispatchAction({type:t,batch:jL(e.findTargetDataIndices(i),e)})}t.on("mouseover",A(e,this,"highlight")).on("mouseout",A(e,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return YL(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new Ci,r=this.visualMapModel.textStyleModel;a.add(new Ur({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=O(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i=i&&i.slice().reverse(),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(wg(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,i=e.option,n=k(i.selected),o=e.getSelectedMapKey(t);"single"===i.selectedMode?(n[o]=!0,R(n,function(t,e){n[e]=e===o})):n[o]=!n[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:n})}});yf(DL);var rk,sk="urn:schemas-microsoft-com:vml",lk="undefined"==typeof window?null:window,uk=!1,hk=lk&&lk.document;function ck(t){return rk(t)}if(hk&&!v.canvasSupported)try{hk.namespaces.zrvml||hk.namespaces.add("zrvml",sk),rk=function(t){return hk.createElement("')}}catch(t){rk=function(t){return hk.createElement("<"+t+' xmlns="'+sk+'" class="zrvml">')}}var dk,fk=rr.CMD,pk=Math.round,gk=Math.sqrt,mk=Math.abs,vk=Math.cos,yk=Math.sin,xk=Math.max;if(!v.canvasSupported){var _k=",",wk="progid:DXImageTransform.Microsoft",bk=21600,Sk=bk/2,Mk=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=bk+","+bk,t.coordorigin="0,0"},Ik=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},Tk=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},Ak=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},Dk=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},Ck=Yn,Lk=function(t,e,i){var n=Fe(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=Ik(n[0],n[1],n[2]),t.opacity=i*n[3])},kk=function(t,e,i,n){var o="fill"===e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof cs&&Ak(t,a),a=a||ck(e),o?function(t,e,i){var n,o,a=e.fill;if(null!=a)if(a instanceof cs){var r,s=0,l=[0,0],u=0,h=1,c=i.getBoundingRect(),d=c.width,f=c.height;if("linear"===a.type){r="gradient";var p=i.transform,g=[a.x*d,a.y*f],m=[a.x2*d,a.y2*f];p&&(bt(g,g,p),bt(m,m,p));var v=m[0]-g[0],y=m[1]-g[1];(s=180*Math.atan2(v,y)/Math.PI)<0&&(s+=360),s<1e-6&&(s=0)}else{r="gradientradial";g=[a.x*d,a.y*f],p=i.transform;var x=i.scale,_=d,w=f;l=[(g[0]-c.x)/_,(g[1]-c.y)/w],p&&bt(g,g,p),_/=x[0]*bk,w/=x[1]*bk;var b=xk(_,w);u=0/b,h=2*a.r/b-u}var S=a.colorStops.slice();S.sort(function(t,e){return t.offset-e.offset});for(var M=S.length,I=[],T=[],A=0;A=c&&d<=i+1){for(var n=[],o=0;o=c&&d<=o+1)return _P(h,e.components,u,l);p[t]=e}else p[t]=void 0}var s;f++}for(;f<=e;){var r=a();if(r)return r}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1\n\r<"))}},R(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","pathToImage"],function(t){OP.prototype[t]=function(t){return function(){vi('In SVG mode painter not support method "'+t+'"')}}(t)}),Po("svg",OP),t.version="4.9.0",t.dependencies={zrender:"4.3.2"},t.PRIORITY=Ld,t.init=function(t,e,i){var n=mf(t);if(n)return n;var o=new Ed(t,e,i);return o.id="ec_"+cf++,uf[o.id]=o,Jo(t,ff,o.id),function(n){var o="__connectUpdateStatus";function a(t,e){for(var i=0;i
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Example/testHotUpdate/yarn.lock b/Example/testHotUpdate/yarn.lock
index ec7d721..7e14579 100644
--- a/Example/testHotUpdate/yarn.lock
+++ b/Example/testHotUpdate/yarn.lock
@@ -16,6 +16,18 @@
dependencies:
"@babel/highlight" "^7.10.4"
+"@babel/code-frame@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+ integrity sha1-3PyCa+72XnXFDiHTg319lXmN1lg=
+ dependencies:
+ "@babel/highlight" "^7.12.13"
+
+"@babel/compat-data@^7.13.12":
+ version "7.13.15"
+ resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4"
+ integrity sha1-fo7qQtC2T9orN1si0GxgUiLoSPQ=
+
"@babel/core@^7.0.0", "@babel/core@^7.1.0":
version "7.7.2"
resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91"
@@ -36,7 +48,28 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7.7.5", "@babel/core@^7.8.4":
+"@babel/core@^7.1.6", "@babel/core@^7.12.9":
+ version "7.13.15"
+ resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.13.15.tgz?cache=0&sync_timestamp=1617898078163&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.13.15.tgz#a6d40917df027487b54312202a06812c4f7792d0"
+ integrity sha1-ptQJF98CdIe1QxIgKgaBLE93ktA=
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/generator" "^7.13.9"
+ "@babel/helper-compilation-targets" "^7.13.13"
+ "@babel/helper-module-transforms" "^7.13.14"
+ "@babel/helpers" "^7.13.10"
+ "@babel/parser" "^7.13.15"
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.13.15"
+ "@babel/types" "^7.13.14"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
+ source-map "^0.5.0"
+
+"@babel/core@^7.7.5":
version "7.11.6"
resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651"
integrity sha1-OpRV3HOH/xusRXcGULwTugShVlE=
@@ -76,6 +109,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.13.9":
+ version "7.13.9"
+ resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
+ integrity sha1-Onqpb577jivkLTjYDizrTGTY3jk=
+ dependencies:
+ "@babel/types" "^7.13.0"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/generator@^7.7.2":
version "7.7.2"
resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.7.2.tgz?cache=0&sync_timestamp=1573082874917&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af"
@@ -118,6 +160,16 @@
"@babel/traverse" "^7.7.0"
"@babel/types" "^7.7.0"
+"@babel/helper-compilation-targets@^7.13.13":
+ version "7.13.13"
+ resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5"
+ integrity sha1-KylyoJJkdIU/QeStvGkzj1IGAOU=
+ dependencies:
+ "@babel/compat-data" "^7.13.12"
+ "@babel/helper-validator-option" "^7.12.17"
+ browserslist "^4.14.5"
+ semver "^6.3.0"
+
"@babel/helper-create-class-features-plugin@^7.10.5":
version "7.10.5"
resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.10.5.tgz?cache=0&sync_timestamp=1594749605928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d"
@@ -130,6 +182,17 @@
"@babel/helper-replace-supers" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.10.4"
+"@babel/helper-create-class-features-plugin@^7.13.0":
+ version "7.13.11"
+ resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6"
+ integrity sha1-MNMKAFvKLJU/VlP8JQkaSSF39PY=
+ dependencies:
+ "@babel/helper-function-name" "^7.12.13"
+ "@babel/helper-member-expression-to-functions" "^7.13.0"
+ "@babel/helper-optimise-call-expression" "^7.12.13"
+ "@babel/helper-replace-supers" "^7.13.0"
+ "@babel/helper-split-export-declaration" "^7.12.13"
+
"@babel/helper-create-class-features-plugin@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8"
@@ -176,6 +239,15 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-function-name@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.12.13.tgz?cache=0&sync_timestamp=1612314853969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
+ integrity sha1-k61lbbPDwiMlWf17LD29y+DrN3o=
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.12.13"
+ "@babel/template" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/helper-function-name@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3"
@@ -199,6 +271,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-get-function-arity@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
+ integrity sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-hoist-variables@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81"
@@ -213,6 +292,13 @@
dependencies:
"@babel/types" "^7.11.0"
+"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12":
+ version "7.13.12"
+ resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
+ integrity sha1-3+No8m1CagcpnY1lE4IXaCFubXI=
+ dependencies:
+ "@babel/types" "^7.13.12"
+
"@babel/helper-member-expression-to-functions@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a"
@@ -234,6 +320,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-module-imports@^7.13.12":
+ version "7.13.12"
+ resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
+ integrity sha1-xqNppvNiHLJdoBQHhoTakZa2GXc=
+ dependencies:
+ "@babel/types" "^7.13.12"
+
"@babel/helper-module-transforms@^7.11.0":
version "7.11.0"
resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
@@ -247,6 +340,20 @@
"@babel/types" "^7.11.0"
lodash "^4.17.19"
+"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.14":
+ version "7.13.14"
+ resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.13.14.tgz#e600652ba48ccb1641775413cb32cfa4e8b495ef"
+ integrity sha1-5gBlK6SMyxZBd1QTyzLPpOi0le8=
+ dependencies:
+ "@babel/helper-module-imports" "^7.13.12"
+ "@babel/helper-replace-supers" "^7.13.12"
+ "@babel/helper-simple-access" "^7.13.12"
+ "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/helper-validator-identifier" "^7.12.11"
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.13.13"
+ "@babel/types" "^7.13.14"
+
"@babel/helper-module-transforms@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.7.0.tgz?cache=0&sync_timestamp=1572951248340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786"
@@ -266,6 +373,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-optimise-call-expression@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.13.tgz?cache=0&sync_timestamp=1612314843013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
+ integrity sha1-XALRcbTIYVsecWP4iMHIHDCiquo=
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-optimise-call-expression@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365"
@@ -283,6 +397,11 @@
resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521033258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
integrity sha1-L3WoMSadT2d95JmG3/WZJ1M883U=
+"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0":
+ version "7.13.0"
+ resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz?cache=0&sync_timestamp=1614034505144&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
+ integrity sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=
+
"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
version "7.5.5"
resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
@@ -290,17 +409,6 @@
dependencies:
lodash "^4.17.13"
-"@babel/helper-remap-async-to-generator@^7.7.0":
- version "7.7.0"
- resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7"
- integrity sha1-TWnsZT6L/1vOYvXTP8FQjyI8dac=
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.7.0"
- "@babel/helper-wrap-function" "^7.7.0"
- "@babel/template" "^7.7.0"
- "@babel/traverse" "^7.7.0"
- "@babel/types" "^7.7.0"
-
"@babel/helper-replace-supers@^7.10.4":
version "7.10.4"
resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf"
@@ -311,6 +419,16 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12":
+ version "7.13.12"
+ resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
+ integrity sha1-ZEL0wa2RJQJIGlZKc4beDHf/OAQ=
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.13.12"
+ "@babel/helper-optimise-call-expression" "^7.12.13"
+ "@babel/traverse" "^7.13.0"
+ "@babel/types" "^7.13.12"
+
"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.7.0.tgz?cache=0&sync_timestamp=1572951254145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512"
@@ -329,6 +447,13 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12":
+ version "7.13.12"
+ resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.13.12.tgz?cache=0&sync_timestamp=1616428053399&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
+ integrity sha1-3WxTivthgZ0gWgEsMXkqOcel6vY=
+ dependencies:
+ "@babel/types" "^7.13.12"
+
"@babel/helper-simple-access@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d"
@@ -337,6 +462,13 @@
"@babel/template" "^7.7.0"
"@babel/types" "^7.7.0"
+"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
+ integrity sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0":
version "7.11.0"
resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
@@ -344,6 +476,13 @@
dependencies:
"@babel/types" "^7.11.0"
+"@babel/helper-split-export-declaration@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314842036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
+ integrity sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-split-export-declaration@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300"
@@ -356,15 +495,15 @@
resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593522928192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
integrity sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=
-"@babel/helper-wrap-function@^7.7.0":
- version "7.7.0"
- resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.7.0.tgz?cache=0&sync_timestamp=1572951253233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74"
- integrity sha1-Fa89Ppj4QXpgVUrLtsFOdeCzO3Q=
- dependencies:
- "@babel/helper-function-name" "^7.7.0"
- "@babel/template" "^7.7.0"
- "@babel/traverse" "^7.7.0"
- "@babel/types" "^7.7.0"
+"@babel/helper-validator-identifier@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
+ integrity sha1-yaHwIZF9y1zPDU5FPjmQIpgfye0=
+
+"@babel/helper-validator-option@^7.12.17":
+ version "7.12.17"
+ resolved "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
+ integrity sha1-0fvwEuGnm37rv9xtJwuq+NnrmDE=
"@babel/helpers@^7.10.4":
version "7.10.4"
@@ -375,6 +514,15 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helpers@^7.13.10":
+ version "7.13.10"
+ resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.13.10.tgz?cache=0&sync_timestamp=1615245016823&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8"
+ integrity sha1-/Y4rp0iFM83qxFzBWOnryl48ffg=
+ dependencies:
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.13.0"
+ "@babel/types" "^7.13.0"
+
"@babel/helpers@^7.7.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b"
@@ -402,23 +550,30 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/highlight@^7.12.13":
+ version "7.13.10"
+ resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
+ integrity sha1-qLKmYUj1sn1maxXYF3Q0enMdUtE=
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.12.11"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.7.0", "@babel/parser@^7.7.2":
version "7.7.3"
resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043"
integrity sha1-X61FfCUp3kdqJI91sPCQswYK8EM=
+"@babel/parser@^7.1.6", "@babel/parser@^7.12.13", "@babel/parser@^7.13.15":
+ version "7.13.15"
+ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.13.15.tgz?cache=0&sync_timestamp=1617898091422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.13.15.tgz#8e66775fb523599acb6a289e12929fa5ab0954d8"
+ integrity sha1-jmZ3X7UjWZrLaiieEpKfpasJVNg=
+
"@babel/parser@^7.10.4", "@babel/parser@^7.11.5":
version "7.11.5"
resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037"
integrity sha1-x/9jA99xCA7HpPW4wAPFjxz1EDc=
-"@babel/plugin-external-helpers@^7.0.0":
- version "7.2.0"
- resolved "https://registry.npm.taobao.org/@babel/plugin-external-helpers/download/@babel/plugin-external-helpers-7.2.0.tgz#7f4cb7dee651cd380d2034847d914288467a6be4"
- integrity sha1-f0y33uZRzTgNIDSEfZFCiEZ6a+Q=
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
-
"@babel/plugin-proposal-class-properties@^7.0.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917"
@@ -427,6 +582,14 @@
"@babel/helper-create-class-features-plugin" "^7.7.0"
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-proposal-class-properties@^7.1.0":
+ version "7.13.0"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034297846&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
+ integrity sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.13.0"
+
"@babel/plugin-proposal-export-default-from@^7.0.0":
version "7.5.2"
resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-export-default-from/download/@babel/plugin-proposal-export-default-from-7.5.2.tgz#2c0ac2dcc36e3b2443fead2c3c5fc796fb1b5145"
@@ -443,6 +606,14 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.2.0"
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0":
+ version "7.13.8"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz?cache=0&sync_timestamp=1614383017449&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3"
+ integrity sha1-NzCjHa/TwQ2MzRBkjtgKKsVHLvM=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
"@babel/plugin-proposal-object-rest-spread@^7.0.0":
version "7.6.2"
resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.6.2.tgz?cache=0&sync_timestamp=1569275095376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
@@ -467,6 +638,15 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-optional-chaining" "^7.2.0"
+"@babel/plugin-proposal-optional-chaining@^7.1.0":
+ version "7.13.12"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.13.12.tgz?cache=0&sync_timestamp=1616428043026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866"
+ integrity sha1-up/rYB1CLgrepnYMK9a7t7/sSGY=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
@@ -516,6 +696,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-syntax-flow@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-flow/download/@babel/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86"
+ integrity sha1-XfmWJQPAqckYOBySnVHU1pSefoY=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
"@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-import-meta/download/@babel/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
@@ -614,6 +801,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-syntax-top-level-await@^7.8.3":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
+ integrity sha1-xfD6biSfW3OXJ/kjVAz3qAYTAXg=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
"@babel/plugin-syntax-typescript@^7.10.4":
version "7.10.4"
resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25"
@@ -621,6 +815,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-typescript@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-typescript/download/@babel/plugin-syntax-typescript-7.12.13.tgz?cache=0&sync_timestamp=1612325334606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-typescript%2Fdownload%2F%40babel%2Fplugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474"
+ integrity sha1-nf8RHKZBVM7w9NxSz4Q9nxLORHQ=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
"@babel/plugin-transform-arrow-functions@^7.0.0":
version "7.2.0"
resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
@@ -628,15 +829,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-async-to-generator@^7.0.0":
- version "7.7.0"
- resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492"
- integrity sha1-4rhPEZUs9ZE/40OLfSWFBCdy9JI=
- dependencies:
- "@babel/helper-module-imports" "^7.7.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.7.0"
-
"@babel/plugin-transform-block-scoped-functions@^7.0.0":
version "7.2.0"
resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
@@ -696,6 +888,14 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-flow" "^7.2.0"
+"@babel/plugin-transform-flow-strip-types@^7.13.0":
+ version "7.13.0"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-flow-strip-types/download/@babel/plugin-transform-flow-strip-types-7.13.0.tgz?cache=0&sync_timestamp=1614042406342&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-flow-strip-types%2Fdownload%2F%40babel%2Fplugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3"
+ integrity sha1-WBd6SMIJlx6CNOmZBstr0RIq3dM=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/plugin-syntax-flow" "^7.12.13"
+
"@babel/plugin-transform-for-of@^7.0.0":
version "7.4.4"
resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
@@ -735,6 +935,16 @@
"@babel/helper-simple-access" "^7.7.0"
babel-plugin-dynamic-import-node "^2.3.0"
+"@babel/plugin-transform-modules-commonjs@^7.1.0":
+ version "7.13.8"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.13.8.tgz?cache=0&sync_timestamp=1614383017561&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b"
+ integrity sha1-ewGtfC3PInWwb6F4HgDRPUILPhs=
+ dependencies:
+ "@babel/helper-module-transforms" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-simple-access" "^7.12.13"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-object-assign@^7.0.0":
version "7.2.0"
resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-assign/download/@babel/plugin-transform-object-assign-7.2.0.tgz#6fdeea42be17040f119e38e23ea0f49f31968bde"
@@ -845,6 +1055,15 @@
"@babel/helper-annotate-as-pure" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/plugin-transform-typescript@^7.13.0":
+ version "7.13.0"
+ resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.13.0.tgz#4a498e1f3600342d2a9e61f60131018f55774853"
+ integrity sha1-SkmOHzYANC0qnmH2ATEBj1V3SFM=
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.13.0"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/plugin-syntax-typescript" "^7.12.13"
+
"@babel/plugin-transform-typescript@^7.5.0":
version "7.11.0"
resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typescript/download/@babel/plugin-transform-typescript-7.11.0.tgz?cache=0&sync_timestamp=1596154779430&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typescript%2Fdownload%2F%40babel%2Fplugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb"
@@ -862,6 +1081,24 @@
"@babel/helper-create-regexp-features-plugin" "^7.7.0"
"@babel/helper-plugin-utils" "^7.0.0"
+"@babel/preset-flow@^7.0.0":
+ version "7.13.13"
+ resolved "https://registry.npm.taobao.org/@babel/preset-flow/download/@babel/preset-flow-7.13.13.tgz#a61a1c149b3f77589d795287744393444d5cdd9e"
+ integrity sha1-phocFJs/d1ideVKHdEOTRE1c3Z4=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-validator-option" "^7.12.17"
+ "@babel/plugin-transform-flow-strip-types" "^7.13.0"
+
+"@babel/preset-typescript@^7.1.0":
+ version "7.13.0"
+ resolved "https://registry.npm.taobao.org/@babel/preset-typescript/download/@babel/preset-typescript-7.13.0.tgz?cache=0&sync_timestamp=1614042413878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-typescript%2Fdownload%2F%40babel%2Fpreset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a"
+ integrity sha1-qxB+XwUGCdgG+7A5vsVTszRixgo=
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/helper-validator-option" "^7.12.17"
+ "@babel/plugin-transform-typescript" "^7.13.0"
+
"@babel/register@^7.0.0":
version "7.7.0"
resolved "https://registry.npm.taobao.org/@babel/register/download/@babel/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b"
@@ -873,25 +1110,10 @@
pirates "^4.0.0"
source-map-support "^0.5.16"
-"@babel/runtime-corejs3@^7.8.3":
- version "7.11.2"
- resolved "https://registry.npm.taobao.org/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.11.2.tgz#02c3029743150188edeb66541195f54600278419"
- integrity sha1-AsMCl0MVAYjt62ZUEZX1RgAnhBk=
- dependencies:
- core-js-pure "^3.0.0"
- regenerator-runtime "^0.13.4"
-
-"@babel/runtime@^7.0.0":
- version "7.7.2"
- resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a"
- integrity sha1-ERp4ACpcJfyOM2G+3JUpxpa4Wmo=
- dependencies:
- regenerator-runtime "^0.13.2"
-
-"@babel/runtime@^7.8.4":
- version "7.11.2"
- resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.11.2.tgz?cache=0&sync_timestamp=1596638737543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
- integrity sha1-9UnBPHVMxAuHZEufqfCaapX+BzY=
+"@babel/runtime@^7.12.5":
+ version "7.13.10"
+ resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
+ integrity sha1-R9QqV7YJX0Ro2kQDiP262L6/DX0=
dependencies:
regenerator-runtime "^0.13.4"
@@ -913,6 +1135,15 @@
"@babel/parser" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/template@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
+ integrity sha1-UwJlvooliduzdSOETFvLVZR/syc=
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/parser" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2":
version "7.7.2"
resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.7.2.tgz?cache=0&sync_timestamp=1573082879821&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09"
@@ -943,6 +1174,20 @@
globals "^11.1.0"
lodash "^4.17.19"
+"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13", "@babel/traverse@^7.13.15", "@babel/traverse@^7.7.4":
+ version "7.13.15"
+ resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.13.15.tgz?cache=0&sync_timestamp=1617898077779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.13.15.tgz#c38bf7679334ddd4028e8e1f7b3aa5019f0dada7"
+ integrity sha1-w4v3Z5M03dQCjo4fezqlAZ8Nrac=
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/generator" "^7.13.9"
+ "@babel/helper-function-name" "^7.12.13"
+ "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/parser" "^7.13.15"
+ "@babel/types" "^7.13.14"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.7.0", "@babel/types@^7.7.2":
version "7.7.2"
resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7"
@@ -961,6 +1206,15 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
+"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14":
+ version "7.13.14"
+ resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.13.14.tgz?cache=0&sync_timestamp=1617027540856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.13.14.tgz#c35a4abb15c7cd45a2746d78ab328e362cbace0d"
+ integrity sha1-w1pKuxXHzUWidG14qzKONiy6zg0=
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.12.11"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.npm.taobao.org/@bcoe/v8-coverage/download/@bcoe/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -974,37 +1228,33 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
-"@hapi/address@2.x.x":
- version "2.1.2"
- resolved "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222"
- integrity sha1-HHlM1tvyNU0ese8Q4DA/Vz4cciI=
-
-"@hapi/bourne@1.x.x":
- version "1.3.2"
- resolved "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
- integrity sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=
-
-"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
- version "8.5.0"
- resolved "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.0.tgz#2f9ce301c8898e1c3248b0a8564696b24d1a9a5a"
- integrity sha1-L5zjAciJjhwySLCoVkaWsk0amlo=
-
-"@hapi/joi@^15.0.3":
- version "15.1.1"
- resolved "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1570297261669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
- integrity sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=
+"@eslint/eslintrc@^0.2.1":
+ version "0.2.2"
+ resolved "https://registry.npm.taobao.org/@eslint/eslintrc/download/@eslint/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76"
+ integrity sha1-0B/HkeL8M+iKKdbz3H6T0M14S3Y=
dependencies:
- "@hapi/address" "2.x.x"
- "@hapi/bourne" "1.x.x"
- "@hapi/hoek" "8.x.x"
- "@hapi/topo" "3.x.x"
+ ajv "^6.12.4"
+ debug "^4.1.1"
+ espree "^7.3.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.2.1"
+ js-yaml "^3.13.1"
+ lodash "^4.17.19"
+ minimatch "^3.0.4"
+ strip-json-comments "^3.1.1"
-"@hapi/topo@3.x.x":
- version "3.1.6"
- resolved "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
- integrity sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=
+"@hapi/hoek@^9.0.0":
+ version "9.1.1"
+ resolved "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-9.1.1.tgz?cache=0&sync_timestamp=1609087042424&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fhoek%2Fdownload%2F%40hapi%2Fhoek-9.1.1.tgz#9daf5745156fd84b8e9889a2dc721f0c58e894aa"
+ integrity sha1-na9XRRVv2EuOmImi3HIfDFjolKo=
+
+"@hapi/topo@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7"
+ integrity sha1-wZr4V3+jk6BunHe2CZWvlZvnIec=
dependencies:
- "@hapi/hoek" "^8.3.0"
+ "@hapi/hoek" "^9.0.0"
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
@@ -1022,243 +1272,208 @@
resolved "https://registry.npm.taobao.org/@istanbuljs/schema/download/@istanbuljs/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha1-JlIL8Jq+SlZEzVQU43ElqJVCQd0=
-"@jest/console@^24.9.0":
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/@jest/console/download/@jest/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
- integrity sha1-ebG8Bvt0qM+wHL3t+UVYSxuXB/A=
+"@jest/console@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/console/download/@jest/console-26.6.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fconsole%2Fdownload%2F%40jest%2Fconsole-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2"
+ integrity sha1-TgS8RkAUNYsDq0k3gF7jagrrmPI=
dependencies:
- "@jest/source-map" "^24.9.0"
- chalk "^2.0.1"
- slash "^2.0.0"
-
-"@jest/console@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/console/download/@jest/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb"
- integrity sha1-dwgAeZ1RDzcynFCKnt0Le0R9mrs=
- dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- jest-message-util "^25.5.0"
- jest-util "^25.5.0"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^26.6.2"
+ jest-util "^26.6.2"
slash "^3.0.0"
-"@jest/core@^25.5.4":
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/@jest/core/download/@jest/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4"
- integrity sha1-PvdBL3M5IQ8APN82ZGu8p4bv57Q=
+"@jest/core@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/@jest/core/download/@jest/core-26.6.3.tgz?cache=0&sync_timestamp=1617371668352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fcore%2Fdownload%2F%40jest%2Fcore-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad"
+ integrity sha1-djn8s4M9dIpGVq2lS94ZMFHkX60=
dependencies:
- "@jest/console" "^25.5.0"
- "@jest/reporters" "^25.5.1"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
+ "@jest/console" "^26.6.2"
+ "@jest/reporters" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
ansi-escapes "^4.2.1"
- chalk "^3.0.0"
+ chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-changed-files "^25.5.0"
- jest-config "^25.5.4"
- jest-haste-map "^25.5.1"
- jest-message-util "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-resolve-dependencies "^25.5.4"
- jest-runner "^25.5.4"
- jest-runtime "^25.5.4"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- jest-watcher "^25.5.0"
+ jest-changed-files "^26.6.2"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-resolve-dependencies "^26.6.3"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ jest-watcher "^26.6.2"
micromatch "^4.0.2"
p-each-series "^2.1.0"
- realpath-native "^2.0.0"
rimraf "^3.0.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/environment/download/@jest/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37"
- integrity sha1-qjOwwhpxbGVoZjjn74FsDjoMezc=
+"@jest/create-cache-key-function@^26.5.0":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/create-cache-key-function/download/@jest/create-cache-key-function-26.6.2.tgz#04cf439207a4fd12418d8aee551cddc86f9ac5f5"
+ integrity sha1-BM9Dkgek/RJBjYruVRzdyG+axfU=
dependencies:
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
+ "@jest/types" "^26.6.2"
-"@jest/fake-timers@^24.9.0":
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
- integrity sha1-uj5r8O7NCaY2BJiWQ00wZjZUDJM=
+"@jest/environment@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/environment/download/@jest/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c"
+ integrity sha1-ujZMxy4iHnnMjwqZVVv111d8+Sw=
dependencies:
- "@jest/types" "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
-"@jest/fake-timers@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185"
- integrity sha1-RjUuAFM8AkyQwrwq2fKVn38RQYU=
+"@jest/fake-timers@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/fake-timers/download/@jest/fake-timers-26.6.2.tgz?cache=0&sync_timestamp=1617381031662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Ffake-timers%2Fdownload%2F%40jest%2Ffake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad"
+ integrity sha1-RZwym89wzuSvTX4/PmeEgSNTWq0=
dependencies:
- "@jest/types" "^25.5.0"
- jest-message-util "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- lolex "^5.0.0"
+ "@jest/types" "^26.6.2"
+ "@sinonjs/fake-timers" "^6.0.1"
+ "@types/node" "*"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
-"@jest/globals@^25.5.2":
- version "25.5.2"
- resolved "https://registry.npm.taobao.org/@jest/globals/download/@jest/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88"
- integrity sha1-XkXp3o0ihxavMlfus5kcwuFiyog=
+"@jest/globals@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/globals/download/@jest/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a"
+ integrity sha1-W2E7eKGqJlWukI66Y4zJaiDfcgo=
dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/types" "^25.5.0"
- expect "^25.5.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ expect "^26.6.2"
-"@jest/reporters@^25.5.1":
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/@jest/reporters/download/@jest/reporters-25.5.1.tgz?cache=0&sync_timestamp=1597913218689&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Freporters%2Fdownload%2F%40jest%2Freporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b"
- integrity sha1-y2hrzGgPZkwtuvfthz6TqmgRU4s=
+"@jest/reporters@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/reporters/download/@jest/reporters-26.6.2.tgz?cache=0&sync_timestamp=1617375989305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Freporters%2Fdownload%2F%40jest%2Freporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6"
+ integrity sha1-H1GLmWN6Xxgwe9Ps+SdfaIKmZ/Y=
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
+ "@jest/console" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.2"
graceful-fs "^4.2.4"
istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-instrument "^4.0.3"
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.0.2"
- jest-haste-map "^25.5.1"
- jest-resolve "^25.5.1"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
+ jest-haste-map "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
slash "^3.0.0"
source-map "^0.6.0"
- string-length "^3.1.0"
+ string-length "^4.0.1"
terminal-link "^2.0.0"
- v8-to-istanbul "^4.1.3"
+ v8-to-istanbul "^7.0.0"
optionalDependencies:
- node-notifier "^6.0.0"
+ node-notifier "^8.0.0"
-"@jest/source-map@^24.9.0":
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-24.9.0.tgz?cache=0&sync_timestamp=1566444482834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Fsource-map%2Fdownload%2F%40jest%2Fsource-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
- integrity sha1-DiY6lEML5LQdpoPMwea//ioZFxQ=
- dependencies:
- callsites "^3.0.0"
- graceful-fs "^4.1.15"
- source-map "^0.6.0"
-
-"@jest/source-map@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b"
- integrity sha1-31wg1gUKopLCxtPw0sdgavMVvRs=
+"@jest/source-map@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/source-map/download/@jest/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535"
+ integrity sha1-Ka9eHi4yTK/MyTbyGDCfVKtp1TU=
dependencies:
callsites "^3.0.0"
graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/test-result@^24.9.0":
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
- integrity sha1-EXluiqnb+I6gJXV7MVJZWtBroMo=
+"@jest/test-result@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-26.6.2.tgz?cache=0&sync_timestamp=1617375991441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Ftest-result%2Fdownload%2F%40jest%2Ftest-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18"
+ integrity sha1-VdpYti3xNFdsyVR276X3lJ4/Xxg=
dependencies:
- "@jest/console" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/istanbul-lib-coverage" "^2.0.0"
-
-"@jest/test-result@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/test-result/download/@jest/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c"
- integrity sha1-E5oEMjDN7/6botg0Gyfy78d86Hw=
- dependencies:
- "@jest/console" "^25.5.0"
- "@jest/types" "^25.5.0"
+ "@jest/console" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^25.5.4":
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/@jest/test-sequencer/download/@jest/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737"
- integrity sha1-m05oWzaVTDjQ8FLlltKBYb3Itzc=
+"@jest/test-sequencer@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/@jest/test-sequencer/download/@jest/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17"
+ integrity sha1-mOikUQCGOIbQdCBej/3Fp+tYKxc=
dependencies:
- "@jest/test-result" "^25.5.0"
+ "@jest/test-result" "^26.6.2"
graceful-fs "^4.2.4"
- jest-haste-map "^25.5.1"
- jest-runner "^25.5.4"
- jest-runtime "^25.5.4"
+ jest-haste-map "^26.6.2"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
-"@jest/transform@^25.5.1":
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3"
- integrity sha1-BGndwXaZ3Sv5hdtV+g+5MJ9cLbM=
+"@jest/transform@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/transform/download/@jest/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b"
+ integrity sha1-WsV8X6GtF7Kq6D5z5FgTiU3PLks=
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^25.5.0"
+ "@jest/types" "^26.6.2"
babel-plugin-istanbul "^6.0.0"
- chalk "^3.0.0"
+ chalk "^4.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.2.4"
- jest-haste-map "^25.5.1"
- jest-regex-util "^25.2.6"
- jest-util "^25.5.0"
+ jest-haste-map "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-util "^26.6.2"
micromatch "^4.0.2"
pirates "^4.0.1"
- realpath-native "^2.0.0"
slash "^3.0.0"
source-map "^0.6.1"
write-file-atomic "^3.0.0"
-"@jest/types@^24.9.0":
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/@jest/types/download/@jest/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
- integrity sha1-Y8smy3UA0Gnlo4lEGnxqtekJ/Fk=
+"@jest/types@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/@jest/types/download/@jest/types-26.6.2.tgz?cache=0&sync_timestamp=1617381030069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Ftypes%2Fdownload%2F%40jest%2Ftypes-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"
+ integrity sha1-vvWlMgMOHYii9abZM/hOlyJu1I4=
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^13.0.0"
-
-"@jest/types@^25.5.0":
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/@jest/types/download/@jest/types-25.5.0.tgz?cache=0&sync_timestamp=1597057407866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40jest%2Ftypes%2Fdownload%2F%40jest%2Ftypes-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
- integrity sha1-TWpHk/e5WZ/DaAh3uFapfbzPKp0=
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^1.1.1"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
"@types/yargs" "^15.0.0"
- chalk "^3.0.0"
+ chalk "^4.0.0"
-"@react-native-community/cli-debugger-ui@^4.9.0":
- version "4.9.0"
- resolved "https://registry.npm.taobao.org/@react-native-community/cli-debugger-ui/download/@react-native-community/cli-debugger-ui-4.9.0.tgz#4177764ba69243c97aa26829d59d9501acb2bd71"
- integrity sha1-QXd2S6aSQ8l6omgp1Z2VAayyvXE=
+"@react-native-community/cli-debugger-ui@^5.0.1-alpha.1":
+ version "5.0.1-alpha.1"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-debugger-ui/download/@react-native-community/cli-debugger-ui-5.0.1-alpha.1.tgz#09a856ccd2954cf16eea59b14dd26ae66720e4e6"
+ integrity sha1-CahWzNKVTPFu6lmxTdJq5mcg5OY=
dependencies:
serve-static "^1.13.1"
-"@react-native-community/cli-hermes@^4.13.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-4.13.0.tgz#6243ed9c709dad5e523f1ccd7d21066b32f2899d"
- integrity sha512-oG+w0Uby6rSGsUkJGLvMQctZ5eVRLLfhf84lLyz942OEDxFRa9U19YJxOe9FmgCKtotbYiM3P/XhK+SVCuerPQ==
+"@react-native-community/cli-hermes@^5.0.1-alpha.1":
+ version "5.0.1-alpha.1"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-hermes/download/@react-native-community/cli-hermes-5.0.1-alpha.1.tgz#3c3836d6e537baa7615618262f8da1686052667f"
+ integrity sha1-PDg21uU3uqdhVhgmL42haGBSZn8=
dependencies:
- "@react-native-community/cli-platform-android" "^4.13.0"
- "@react-native-community/cli-tools" "^4.13.0"
+ "@react-native-community/cli-platform-android" "^5.0.1-alpha.1"
+ "@react-native-community/cli-tools" "^5.0.1-alpha.1"
chalk "^3.0.0"
hermes-profile-transformer "^0.0.6"
ip "^1.1.5"
-"@react-native-community/cli-platform-android@^4.10.0", "@react-native-community/cli-platform-android@^4.13.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-4.13.0.tgz#922681ec82ee1aadd993598b814df1152118be02"
- integrity sha512-3i8sX8GklEytUZwPnojuoFbCjIRzMugCdzDIdZ9UNmi/OhD4/8mLGO0dgXfT4sMWjZwu3qjy45sFfk2zOAgHbA==
+"@react-native-community/cli-platform-android@^5.0.1-alpha.0", "@react-native-community/cli-platform-android@^5.0.1-alpha.1":
+ version "5.0.1-alpha.1"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-platform-android/download/@react-native-community/cli-platform-android-5.0.1-alpha.1.tgz#343ea5b469ac696268ecc1961ee44b91d1367cd1"
+ integrity sha1-ND6ltGmsaWJo7MGWHuRLkdE2fNE=
dependencies:
- "@react-native-community/cli-tools" "^4.13.0"
+ "@react-native-community/cli-tools" "^5.0.1-alpha.1"
chalk "^3.0.0"
execa "^1.0.0"
fs-extra "^8.1.0"
@@ -1269,12 +1484,12 @@
slash "^3.0.0"
xmldoc "^1.1.2"
-"@react-native-community/cli-platform-ios@^4.10.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-4.13.0.tgz#a738915c68cac86df54e578b59a1311ea62b1aef"
- integrity sha512-6THlTu8zp62efkzimfGr3VIuQJ2514o+vScZERJCV1xgEi8XtV7mb/ZKt9o6Y9WGxKKkc0E0b/aVAtgy+L27CA==
+"@react-native-community/cli-platform-ios@^5.0.1-alpha.0":
+ version "5.0.1-alpha.2"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-platform-ios/download/@react-native-community/cli-platform-ios-5.0.1-alpha.2.tgz#58ab0641355cbe68a0d1737dde8c7d66eb0c0e39"
+ integrity sha1-WKsGQTVcvmig0XN93ox9ZusMDjk=
dependencies:
- "@react-native-community/cli-tools" "^4.13.0"
+ "@react-native-community/cli-tools" "^5.0.1-alpha.1"
chalk "^3.0.0"
glob "^7.1.3"
js-yaml "^3.13.1"
@@ -1282,24 +1497,25 @@
plist "^3.0.1"
xcode "^2.0.0"
-"@react-native-community/cli-server-api@^4.13.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-4.13.0.tgz#ef0e53fe0edc7356d62bca725ca47cb368f748a5"
- integrity sha512-ER138ChLc1YYX7j9yE6fDm4DdNdsHThr+pla/B6iZoKje1r7TwymDdKaUvOsYalG7sWG9glW3bofcCq+Yh0Dvw==
+"@react-native-community/cli-server-api@^5.0.1-alpha.2":
+ version "5.0.1-alpha.2"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-server-api/download/@react-native-community/cli-server-api-5.0.1-alpha.2.tgz#a82557273bad99d188682169892aaa4b283ba149"
+ integrity sha1-qCVXJzutmdGIaCFpiSqqSyg7oUk=
dependencies:
- "@react-native-community/cli-debugger-ui" "^4.9.0"
- "@react-native-community/cli-tools" "^4.13.0"
+ "@react-native-community/cli-debugger-ui" "^5.0.1-alpha.1"
+ "@react-native-community/cli-tools" "^5.0.1-alpha.1"
compression "^1.7.1"
connect "^3.6.5"
errorhandler "^1.5.0"
- pretty-format "^25.1.0"
+ nocache "^2.1.0"
+ pretty-format "^26.6.2"
serve-static "^1.13.1"
ws "^1.1.0"
-"@react-native-community/cli-tools@^4.13.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-4.13.0.tgz#b406463d33af16cedc4305a9a9257ed32845cf1b"
- integrity sha512-s4f489h5+EJksn4CfheLgv5PGOM0CDmK1UEBLw2t/ncWs3cW2VI7vXzndcd/WJHTv3GntJhXDcJMuL+Z2IAOgg==
+"@react-native-community/cli-tools@^5.0.1-alpha.1":
+ version "5.0.1-alpha.1"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-tools/download/@react-native-community/cli-tools-5.0.1-alpha.1.tgz#b8ceed3ee5f1c2c7d860518da3dd919dc5953870"
+ integrity sha1-uM7tPuXxwsfYYFGNo92RncWVOHA=
dependencies:
chalk "^3.0.0"
lodash "^4.17.15"
@@ -1308,22 +1524,24 @@
open "^6.2.0"
shell-quote "1.6.1"
-"@react-native-community/cli-types@^4.10.1":
- version "4.10.1"
- resolved "https://registry.npm.taobao.org/@react-native-community/cli-types/download/@react-native-community/cli-types-4.10.1.tgz#d68a2dcd1649d3b3774823c64e5e9ce55bfbe1c9"
- integrity sha1-1ootzRZJ07N3SCPGTl6c5Vv74ck=
-
-"@react-native-community/cli@^4.10.0":
- version "4.13.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-4.13.0.tgz#04d5032f9b2b423c61ceef6be83b1bcc8a37db75"
- integrity sha512-R+1VehIQ6VTLf+e7YOwzJk0F9tstfeSC4xy7oT6GSgB3FnXbTJGHFUp4siyO68Ae/gzGqt8SiUO145teWkP+ZA==
+"@react-native-community/cli-types@^5.0.1-alpha.1":
+ version "5.0.1-alpha.1"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli-types/download/@react-native-community/cli-types-5.0.1-alpha.1.tgz#e8cf69966cf4e0fb5dda9bc708a52980ed1f8896"
+ integrity sha1-6M9plmz04Ptd2pvHCKUpgO0fiJY=
dependencies:
- "@hapi/joi" "^15.0.3"
- "@react-native-community/cli-debugger-ui" "^4.9.0"
- "@react-native-community/cli-hermes" "^4.13.0"
- "@react-native-community/cli-server-api" "^4.13.0"
- "@react-native-community/cli-tools" "^4.13.0"
- "@react-native-community/cli-types" "^4.10.1"
+ ora "^3.4.0"
+
+"@react-native-community/cli@^5.0.1-alpha.0":
+ version "5.0.1-alpha.2"
+ resolved "https://registry.npm.taobao.org/@react-native-community/cli/download/@react-native-community/cli-5.0.1-alpha.2.tgz#7e78378120fd4e264e4b577cbcf5e52b5beaa53b"
+ integrity sha1-fng3gSD9TiZOS1d8vPXlK1vqpTs=
+ dependencies:
+ "@react-native-community/cli-debugger-ui" "^5.0.1-alpha.1"
+ "@react-native-community/cli-hermes" "^5.0.1-alpha.1"
+ "@react-native-community/cli-server-api" "^5.0.1-alpha.2"
+ "@react-native-community/cli-tools" "^5.0.1-alpha.1"
+ "@react-native-community/cli-types" "^5.0.1-alpha.1"
+ appdirsjs "^1.2.4"
chalk "^3.0.0"
command-exists "^1.2.8"
commander "^2.19.0"
@@ -1335,42 +1553,44 @@
fs-extra "^8.1.0"
glob "^7.1.3"
graceful-fs "^4.1.3"
- inquirer "^3.0.6"
+ joi "^17.2.1"
leven "^3.1.0"
lodash "^4.17.15"
- metro "^0.58.0"
- metro-config "^0.58.0"
- metro-core "^0.58.0"
- metro-react-native-babel-transformer "^0.58.0"
- metro-resolver "^0.58.0"
+ metro "^0.64.0"
+ metro-config "^0.64.0"
+ metro-core "^0.64.0"
+ metro-react-native-babel-transformer "^0.64.0"
+ metro-resolver "^0.64.0"
+ metro-runtime "^0.64.0"
minimist "^1.2.0"
mkdirp "^0.5.1"
node-stream-zip "^1.9.1"
ora "^3.4.0"
- pretty-format "^25.2.0"
+ pretty-format "^26.6.2"
+ prompts "^2.4.0"
semver "^6.3.0"
serve-static "^1.13.1"
strip-ansi "^5.2.0"
sudo-prompt "^9.0.0"
wcwidth "^1.0.1"
-"@react-native-community/eslint-config@^1.1.0":
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/@react-native-community/eslint-config/download/@react-native-community/eslint-config-1.1.0.tgz#2dacad06dd44d13e778510864473fc6091f080c0"
- integrity sha1-LaytBt1E0T53hRCGRHP8YJHwgMA=
+"@react-native-community/eslint-config@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/@react-native-community/eslint-config/download/@react-native-community/eslint-config-2.0.0.tgz#35dcc529a274803fc4e0a6b3d6c274551fb91774"
+ integrity sha1-NdzFKaJ0gD/E4Kaz1sJ0VR+5F3Q=
dependencies:
"@react-native-community/eslint-plugin" "^1.1.0"
- "@typescript-eslint/eslint-plugin" "^2.25.0"
- "@typescript-eslint/parser" "^2.25.0"
- babel-eslint "10.1.0"
+ "@typescript-eslint/eslint-plugin" "^3.1.0"
+ "@typescript-eslint/parser" "^3.1.0"
+ babel-eslint "^10.1.0"
eslint-config-prettier "^6.10.1"
eslint-plugin-eslint-comments "^3.1.2"
eslint-plugin-flowtype "2.50.3"
eslint-plugin-jest "22.4.1"
eslint-plugin-prettier "3.1.2"
- eslint-plugin-react "7.19.0"
- eslint-plugin-react-hooks "^3.0.0"
- eslint-plugin-react-native "3.8.1"
+ eslint-plugin-react "^7.20.0"
+ eslint-plugin-react-hooks "^4.0.4"
+ eslint-plugin-react-native "^3.8.1"
prettier "^2.0.2"
"@react-native-community/eslint-plugin@^1.1.0":
@@ -1378,6 +1598,38 @@
resolved "https://registry.npm.taobao.org/@react-native-community/eslint-plugin/download/@react-native-community/eslint-plugin-1.1.0.tgz#e42b1bef12d2415411519fd528e64b593b1363dc"
integrity sha1-5Csb7xLSQVQRUZ/VKOZLWTsTY9w=
+"@react-native/assets@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/@react-native/assets/download/@react-native/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
+ integrity sha1-xvm/Y9J0uvyOlwYo3iSYazClXI4=
+
+"@react-native/normalize-color@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/@react-native/normalize-color/download/@react-native/normalize-color-1.0.0.tgz#c52a99d4fe01049102d47dc45d40cbde4f720ab6"
+ integrity sha1-xSqZ1P4BBJEC1H3EXUDL3k9yCrY=
+
+"@react-native/polyfills@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/@react-native/polyfills/download/@react-native/polyfills-1.0.0.tgz#05bb0031533598f9458cf65a502b8df0eecae780"
+ integrity sha1-BbsAMVM1mPlFjPZaUCuN8O7K54A=
+
+"@sideway/address@^4.1.0":
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/@sideway/address/download/@sideway/address-4.1.1.tgz#9e321e74310963fdf8eebfbee09c7bd69972de4d"
+ integrity sha1-njIedDEJY/347r++4Jx71ply3k0=
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/@sideway/formula/download/@sideway/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
+ integrity sha1-/hWK7jLmvV3oUES+YVvAhHigoTw=
+
+"@sideway/pinpoint@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/@sideway/pinpoint/download/@sideway/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+ integrity sha1-z/j/rcNyrSn9P3gneusp5jLMcN8=
+
"@sinonjs/commons@^1.7.0":
version "1.8.1"
resolved "https://registry.npm.taobao.org/@sinonjs/commons/download/@sinonjs/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
@@ -1385,6 +1637,24 @@
dependencies:
type-detect "4.0.8"
+"@sinonjs/fake-timers@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.npm.taobao.org/@sinonjs/fake-timers/download/@sinonjs/fake-timers-6.0.1.tgz?cache=0&sync_timestamp=1617871922644&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40sinonjs%2Ffake-timers%2Fdownload%2F%40sinonjs%2Ffake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40"
+ integrity sha1-KTZ0/MsyYqx4LHqt/eyoaxDHXEA=
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
+
+"@types/babel__core@^7.0.0":
+ version "7.1.14"
+ resolved "https://registry.npm.taobao.org/@types/babel__core/download/@types/babel__core-7.1.14.tgz?cache=0&sync_timestamp=1616202295706&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbabel__core%2Fdownload%2F%40types%2Fbabel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
+ integrity sha1-+q7vxBhexxw4n0UB7l7ISxcMxAI=
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
"@types/babel__core@^7.1.7":
version "7.1.9"
resolved "https://registry.npm.taobao.org/@types/babel__core/download/@types/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d"
@@ -1418,6 +1688,13 @@
dependencies:
"@babel/types" "^7.3.0"
+"@types/babel__traverse@^7.0.4":
+ version "7.11.1"
+ resolved "https://registry.npm.taobao.org/@types/babel__traverse/download/@types/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639"
+ integrity sha1-ZU9sT2dWjiTCOzZ+lHCYxiBvpjk=
+ dependencies:
+ "@babel/types" "^7.3.0"
+
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -1452,12 +1729,11 @@
dependencies:
"@types/istanbul-lib-coverage" "*"
-"@types/istanbul-reports@^1.1.1":
- version "1.1.1"
- resolved "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-1.1.1.tgz?cache=0&sync_timestamp=1572462171599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
- integrity sha1-eoy/akBvNsit2HFiWyeOrwsNJVo=
+"@types/istanbul-reports@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/@types/istanbul-reports/download/@types/istanbul-reports-3.0.0.tgz?cache=0&sync_timestamp=1613379558147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fistanbul-reports%2Fdownload%2F%40types%2Fistanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821"
+ integrity sha1-UIsTqjRPpJdiNOdd3cw0klc32CE=
dependencies:
- "@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
"@types/json-schema@^7.0.3":
@@ -1475,28 +1751,21 @@
resolved "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
integrity sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=
-"@types/prettier@^1.19.0":
- version "1.19.1"
- resolved "https://registry.npm.taobao.org/@types/prettier/download/@types/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
- integrity sha1-M1CYSfjmeeSt0ViVn9sIZEDpVT8=
+"@types/prettier@^2.0.0":
+ version "2.2.3"
+ resolved "https://registry.npm.taobao.org/@types/prettier/download/@types/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
+ integrity sha1-72UWWuopJMk1kgW/dIhluIgXU8A=
-"@types/stack-utils@^1.0.1":
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
- integrity sha1-CoUdO9lkmPolwzq3J47TvWXwbD4=
+"@types/stack-utils@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-2.0.0.tgz?cache=0&sync_timestamp=1613384992957&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fstack-utils%2Fdownload%2F%40types%2Fstack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff"
+ integrity sha1-cDZkC04hzC8lmugmzoQ9J32tjP8=
"@types/yargs-parser@*":
version "13.1.0"
resolved "https://registry.npm.taobao.org/@types/yargs-parser/download/@types/yargs-parser-13.1.0.tgz?cache=0&sync_timestamp=1572465732763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs-parser%2Fdownload%2F%40types%2Fyargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228"
integrity sha1-xWOqGS85NQodGNo2xajaOCu9gig=
-"@types/yargs@^13.0.0":
- version "13.0.3"
- resolved "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-13.0.3.tgz?cache=0&sync_timestamp=1572465731466&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380"
- integrity sha1-dkgq85gdRBLWU3GjGPmS0zRko4A=
- dependencies:
- "@types/yargs-parser" "*"
-
"@types/yargs@^15.0.0":
version "15.0.5"
resolved "https://registry.npm.taobao.org/@types/yargs/download/@types/yargs-15.0.5.tgz?cache=0&sync_timestamp=1596842547242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fyargs%2Fdownload%2F%40types%2Fyargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79"
@@ -1504,58 +1773,70 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@^2.25.0":
- version "2.34.0"
- resolved "https://registry.npm.taobao.org/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9"
- integrity sha1-b4zopGx96kpvHRcdK7j7rm2sK+k=
+"@typescript-eslint/eslint-plugin@^3.1.0":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/eslint-plugin/download/@typescript-eslint/eslint-plugin-3.10.1.tgz?cache=0&sync_timestamp=1617693881822&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Feslint-plugin%2Fdownload%2F%40typescript-eslint%2Feslint-plugin-3.10.1.tgz#7e061338a1383f59edc204c605899f93dc2e2c8f"
+ integrity sha1-fgYTOKE4P1ntwgTGBYmfk9wuLI8=
dependencies:
- "@typescript-eslint/experimental-utils" "2.34.0"
+ "@typescript-eslint/experimental-utils" "3.10.1"
+ debug "^4.1.1"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
+ semver "^7.3.2"
tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@2.34.0":
- version "2.34.0"
- resolved "https://registry.npm.taobao.org/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f"
- integrity sha1-01JLZEzbQO687KZ/jPPkzJyPmA8=
+"@typescript-eslint/experimental-utils@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/experimental-utils/download/@typescript-eslint/experimental-utils-3.10.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Fexperimental-utils%2Fdownload%2F%40typescript-eslint%2Fexperimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686"
+ integrity sha1-4Xn/yBqA68ri6gTgMy+LJRNFpoY=
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "2.34.0"
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/typescript-estree" "3.10.1"
eslint-scope "^5.0.0"
eslint-utils "^2.0.0"
-"@typescript-eslint/parser@^2.25.0":
- version "2.34.0"
- resolved "https://registry.npm.taobao.org/@typescript-eslint/parser/download/@typescript-eslint/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8"
- integrity sha1-UCUmMMoxloVCDpo5ygX+GFola8g=
+"@typescript-eslint/parser@^3.1.0":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/parser/download/@typescript-eslint/parser-3.10.1.tgz?cache=0&sync_timestamp=1617696439855&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Fparser%2Fdownload%2F%40typescript-eslint%2Fparser-3.10.1.tgz#1883858e83e8b442627e1ac6f408925211155467"
+ integrity sha1-GIOFjoPotEJifhrG9AiSUhEVVGc=
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "2.34.0"
- "@typescript-eslint/typescript-estree" "2.34.0"
+ "@typescript-eslint/experimental-utils" "3.10.1"
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/typescript-estree" "3.10.1"
eslint-visitor-keys "^1.1.0"
-"@typescript-eslint/typescript-estree@2.34.0":
- version "2.34.0"
- resolved "https://registry.npm.taobao.org/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5"
- integrity sha1-FK62NTs57wcyzH8bgoUpSTfPN9U=
+"@typescript-eslint/types@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/types/download/@typescript-eslint/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727"
+ integrity sha1-HXRj+nwy2KI6tQioA8ov4m51hyc=
+
+"@typescript-eslint/typescript-estree@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/typescript-estree/download/@typescript-eslint/typescript-estree-3.10.1.tgz?cache=0&sync_timestamp=1617696449609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40typescript-eslint%2Ftypescript-estree%2Fdownload%2F%40typescript-eslint%2Ftypescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853"
+ integrity sha1-/QBhzDit1PrUUTbWVECFafNluFM=
dependencies:
+ "@typescript-eslint/types" "3.10.1"
+ "@typescript-eslint/visitor-keys" "3.10.1"
debug "^4.1.1"
- eslint-visitor-keys "^1.1.0"
glob "^7.1.6"
is-glob "^4.0.1"
lodash "^4.17.15"
semver "^7.3.2"
tsutils "^3.17.1"
-abab@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz?cache=0&sync_timestamp=1573609736055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fabab%2Fdownload%2Fabab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
- integrity sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo=
+"@typescript-eslint/visitor-keys@3.10.1":
+ version "3.10.1"
+ resolved "https://registry.npm.taobao.org/@typescript-eslint/visitor-keys/download/@typescript-eslint/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931"
+ integrity sha1-zUJ0dz4+tjsuhwrGAidEh+zR6TE=
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=
+abab@^2.0.3, abab@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.npm.taobao.org/abab/download/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
+ integrity sha1-wLZ4+zLWD8EhnHhNaoJv44Wut5o=
abort-controller@^3.0.0:
version "3.0.0"
@@ -1569,7 +1850,7 @@ absolute-path@^0.0.0:
resolved "https://registry.npm.taobao.org/absolute-path/download/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
integrity sha1-p4di+9rftSl76ZsV01p4Wy8JW/c=
-accepts@~1.3.5, accepts@~1.3.7:
+accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80=
@@ -1577,33 +1858,33 @@ accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-globals@^4.3.2:
- version "4.3.4"
- resolved "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
- integrity sha1-n6GSat3BHJcwjE5m163Q1Awycuc=
+acorn-globals@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
+ integrity sha1-Rs3Tnw+P8IqHZhm1X1rIptx3C0U=
dependencies:
- acorn "^6.0.1"
- acorn-walk "^6.0.1"
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
-acorn-jsx@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.1.0.tgz?cache=0&sync_timestamp=1570991888898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
- integrity sha1-KUrbcbVzmLBoABXwo4xWPuHbU4Q=
+acorn-jsx@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz?cache=0&sync_timestamp=1599499235340&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
+ integrity sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=
-acorn-walk@^6.0.1:
- version "6.2.0"
- resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz?cache=0&sync_timestamp=1565683319229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
- integrity sha1-Ejy487hMIXHx9/slJhWxx4prGow=
+acorn-walk@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz?cache=0&sync_timestamp=1611560672540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-walk%2Fdownload%2Facorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=
-acorn@^6.0.1:
- version "6.3.0"
- resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
- integrity sha1-AIdQkRn/pPwKAEHR6TpBfmjLhW4=
+acorn@^7.1.1, acorn@^7.4.0:
+ version "7.4.1"
+ resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1615305995106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=
-acorn@^7.1.0:
- version "7.1.0"
- resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
- integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw=
+acorn@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.npm.taobao.org/acorn/download/acorn-8.1.0.tgz?cache=0&sync_timestamp=1615305995106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-8.1.0.tgz#52311fd7037ae119cbb134309e901aa46295b3fe"
+ integrity sha1-UjEf1wN64RnLsTQwnpAapGKVs/4=
ajv@^6.10.0, ajv@^6.10.2:
version "6.10.2"
@@ -1625,29 +1906,25 @@ ajv@^6.12.3:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
+ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
anser@^1.4.9:
version "1.4.10"
resolved "https://registry.npm.taobao.org/anser/download/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
integrity sha1-vvo+3fKCaEvQO2Pc2jknrvjC41s=
-ansi-colors@^1.0.1:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9"
- integrity sha1-Y3S03V1HGP884npnGjscrQdxMqk=
- dependencies:
- ansi-wrap "^0.1.0"
-
-ansi-cyan@^0.1.1:
- version "0.1.1"
- resolved "https://registry.npm.taobao.org/ansi-cyan/download/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873"
- integrity sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-escapes@^3.0.0:
- version "3.2.0"
- resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-escapes%2Fdownload%2Fansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
- integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=
+ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=
ansi-escapes@^4.2.1:
version "4.2.1"
@@ -1665,31 +1942,7 @@ ansi-fragments@^0.2.1:
slice-ansi "^2.0.0"
strip-ansi "^5.0.0"
-ansi-gray@^0.1.1:
- version "0.1.1"
- resolved "https://registry.npm.taobao.org/ansi-gray/download/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
- integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-red@^0.1.1:
- version "0.1.1"
- resolved "https://registry.npm.taobao.org/ansi-red/download/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c"
- integrity sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=
- dependencies:
- ansi-wrap "0.1.0"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-regex@^4.0.0, ansi-regex@^4.1.0:
+ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=
@@ -1714,11 +1967,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
-ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
- version "0.1.0"
- resolved "https://registry.npm.taobao.org/ansi-wrap/download/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
- integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
-
anymatch@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz?cache=0&sync_timestamp=1569897514051&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fanymatch%2Fdownload%2Fanymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
@@ -1735,18 +1983,10 @@ anymatch@^3.0.3:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-aproba@^1.0.3:
- version "1.2.0"
- resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo=
-
-are-we-there-yet@~1.1.2:
- version "1.1.5"
- resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
- integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE=
- dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.6"
+appdirsjs@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npm.taobao.org/appdirsjs/download/appdirsjs-1.2.4.tgz#3ab582acc9fdfaaa0c1f81b3a25422ad4d95f9d4"
+ integrity sha1-OrWCrMn9+qoMH4GzolQirU2V+dQ=
argparse@^1.0.7:
version "1.0.10"
@@ -1755,51 +1995,35 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-arr-diff@^1.0.1:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a"
- integrity sha1-aHwydYFjWI/vfeezb6vklesaOZo=
- dependencies:
- arr-flatten "^1.0.1"
- array-slice "^0.2.3"
-
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=
-arr-union@^2.0.1:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d"
- integrity sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=
-
arr-union@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-array-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
- integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=
-
array-filter@~0.0.0:
version "0.0.1"
resolved "https://registry.npm.taobao.org/array-filter/download/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw=
-array-includes@^3.1.1:
- version "3.1.1"
- resolved "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
- integrity sha1-zdZ+aFK9+cEhVGB4ZzIlXtJFk0g=
+array-includes@^3.1.2, array-includes@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
+ integrity sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.0"
+ es-abstract "^1.18.0-next.2"
+ get-intrinsic "^1.1.1"
is-string "^1.0.5"
array-map@~0.0.0:
@@ -1812,17 +2036,22 @@ array-reduce@~0.0.0:
resolved "https://registry.npm.taobao.org/array-reduce/download/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=
-array-slice@^0.2.3:
- version "0.2.3"
- resolved "https://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
- integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU=
-
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-asap@~2.0.3, asap@~2.0.6:
+array.prototype.flatmap@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npm.taobao.org/array.prototype.flatmap/download/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9"
+ integrity sha1-lM/UfMFVbsB0fZf3x3OMWBIgBMk=
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+ function-bind "^1.1.1"
+
+asap@~2.0.6:
version "2.0.6"
resolved "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
@@ -1844,11 +2073,23 @@ assign-symbols@^1.0.0:
resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+ast-types@0.14.2:
+ version "0.14.2"
+ resolved "https://registry.npm.taobao.org/ast-types/download/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
+ integrity sha1-YAuILfhYPjzU8t9fog+oN1nUvf0=
+ dependencies:
+ tslib "^2.0.1"
+
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=
+
async@^2.4.0:
version "2.6.3"
resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
@@ -1876,9 +2117,14 @@ aws4@^1.8.0:
resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
integrity sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=
-babel-eslint@10.1.0:
+babel-core@^7.0.0-bridge.0:
+ version "7.0.0-bridge.0"
+ resolved "https://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
+ integrity sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=
+
+babel-eslint@^10.1.0:
version "10.1.0"
- resolved "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1582676908745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ resolved "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1611946434496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
integrity sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=
dependencies:
"@babel/code-frame" "^7.0.0"
@@ -1888,17 +2134,17 @@ babel-eslint@10.1.0:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
-babel-jest@^25.1.0, babel-jest@^25.5.1:
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/babel-jest/download/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853"
- integrity sha1-vC5hAfhJ1vauwJcg/8e8UzLmKFM=
+babel-jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/babel-jest/download/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"
+ integrity sha1-2H0lywA3V3oMifguV1XF0pPAEFY=
dependencies:
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/babel__core" "^7.1.7"
babel-plugin-istanbul "^6.0.0"
- babel-preset-jest "^25.5.0"
- chalk "^3.0.0"
+ babel-preset-jest "^26.6.2"
+ chalk "^4.0.0"
graceful-fs "^4.2.4"
slash "^3.0.0"
@@ -1909,6 +2155,13 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587495824228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=
+ dependencies:
+ object.assign "^4.1.0"
+
babel-plugin-istanbul@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
@@ -1920,13 +2173,14 @@ babel-plugin-istanbul@^6.0.0:
istanbul-lib-instrument "^4.0.0"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677"
- integrity sha1-EpyAulx/x1uvOkW5Pi43LVfKJnc=
+babel-plugin-jest-hoist@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d"
+ integrity sha1-gYW9AwNI0lTG192XQ1Xmoosh5i0=
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
@@ -1934,10 +2188,10 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
resolved "https://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf"
integrity sha1-qiE8FDXiv/62/KhCKH71NK0F1c8=
-babel-preset-current-node-syntax@^0.1.2:
- version "0.1.3"
- resolved "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da"
- integrity sha1-tLVHrN2/ljy6VVup+cu7cL/QRNo=
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/babel-preset-current-node-syntax/download/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+ integrity sha1-tDmSObibKgEfndvj5PQB/EDP9zs=
dependencies:
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-bigint" "^7.8.3"
@@ -1950,8 +2204,9 @@ babel-preset-current-node-syntax@^0.1.2:
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0:
+babel-preset-fbjs@^3.3.0:
version "3.3.0"
resolved "https://registry.npm.taobao.org/babel-preset-fbjs/download/babel-preset-fbjs-3.3.0.tgz#a6024764ea86c8e06a22d794ca8b69534d263541"
integrity sha1-pgJHZOqGyOBqIteUyotpU00mNUE=
@@ -1984,13 +2239,13 @@ babel-preset-fbjs@^3.2.0, babel-preset-fbjs@^3.3.0:
"@babel/plugin-transform-template-literals" "^7.0.0"
babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
-babel-preset-jest@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-25.5.0.tgz?cache=0&sync_timestamp=1597057967764&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-preset-jest%2Fdownload%2Fbabel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49"
- integrity sha1-wdfxkYKUh6kHdkxlMH+qDmZZC0k=
+babel-preset-jest@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee"
+ integrity sha1-dHhysRcd8DIlJCZYaIHWLTF5j+4=
dependencies:
- babel-plugin-jest-hoist "^25.5.0"
- babel-preset-current-node-syntax "^0.1.2"
+ babel-plugin-jest-hoist "^26.6.2"
+ babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
version "1.0.0"
@@ -2072,17 +2327,21 @@ braces@^3.0.1:
dependencies:
fill-range "^7.0.1"
-browser-process-hrtime@^0.1.2:
- version "0.1.3"
- resolved "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
- integrity sha1-YW8A+u8d9+wbW/nP4r3DFw8mx7Q=
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=
-browser-resolve@^1.11.3:
- version "1.11.3"
- resolved "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
- integrity sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY=
+browserslist@^4.14.5:
+ version "4.16.3"
+ resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.16.3.tgz?cache=0&sync_timestamp=1612124911487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717"
+ integrity sha1-NAqkaUDX24eHSFZ8XeokpI3fNxc=
dependencies:
- resolve "1.1.7"
+ caniuse-lite "^1.0.30001181"
+ colorette "^1.2.1"
+ electron-to-chromium "^1.3.649"
+ escalade "^3.1.1"
+ node-releases "^1.1.70"
bser@^2.0.0:
version "2.1.1"
@@ -2091,11 +2350,6 @@ bser@^2.0.0:
dependencies:
node-int64 "^0.4.0"
-buffer-crc32@^0.2.13:
- version "0.2.13"
- resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
- integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -2121,6 +2375,14 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
caller-callsite@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
@@ -2150,6 +2412,16 @@ camelcase@^5.0.0, camelcase@^5.3.1:
resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=
+camelcase@^6.0.0:
+ version "6.2.0"
+ resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+ integrity sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=
+
+caniuse-lite@^1.0.30001181:
+ version "1.0.30001208"
+ resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001208.tgz?cache=0&sync_timestamp=1617866642507&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001208.tgz#a999014a35cebd4f98c405930a057a0d75352eb9"
+ integrity sha1-qZkBSjXOvU+YxAWTCgV6DXU1Lrk=
+
capture-exit@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/capture-exit/download/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
@@ -2162,7 +2434,7 @@ caseless@~0.12.0:
resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
@@ -2179,26 +2451,29 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chardet@^0.4.0:
- version "0.4.2"
- resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
- integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
+chalk@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz?cache=0&sync_timestamp=1591687063886&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+ integrity sha1-ThSHCmGNni7dl92DRf2dncMVZGo=
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
-chardet@^0.7.0:
- version "0.7.0"
- resolved "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
- integrity sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=
-
-chownr@^1.1.1:
- version "1.1.3"
- resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
- integrity sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI=
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/char-regex/download/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=
+cjs-module-lexer@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npm.taobao.org/cjs-module-lexer/download/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"
+ integrity sha1-QYb8yg6uF1lwruhwuf4tbPjVZV8=
+
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -2216,32 +2491,11 @@ cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
-cli-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
- integrity sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=
- dependencies:
- restore-cursor "^3.1.0"
-
cli-spinners@^2.0.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77"
integrity sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=
-cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
- integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
-
-cliui@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
- integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=
- dependencies:
- string-width "^3.1.0"
- strip-ansi "^5.2.0"
- wrap-ansi "^5.1.0"
-
cliui@^6.0.0:
version "6.0.0"
resolved "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1597606287037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
@@ -2261,11 +2515,6 @@ co@^4.6.0:
resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcode-point-at%2Fdownload%2Fcode-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
collect-v8-coverage@^1.0.0:
version "1.0.1"
resolved "https://registry.npm.taobao.org/collect-v8-coverage/download/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
@@ -2303,16 +2552,21 @@ color-name@~1.1.4:
resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=
-color-support@^1.1.3:
- version "1.1.3"
- resolved "https://registry.npm.taobao.org/color-support/download/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
- integrity sha1-k4NDeaHMmgxh+C9S8NBDIiUb1aI=
-
colorette@^1.0.7:
version "1.1.0"
resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.1.0.tgz#1f943e5a357fac10b4e0f5aaef3b14cdc1af6ec7"
integrity sha1-H5Q+WjV/rBC04PWq7zsUzcGvbsc=
+colorette@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+ integrity sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=
+
+colors@^1.1.2:
+ version "1.4.0"
+ resolved "https://registry.npm.taobao.org/colors/download/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha1-xQSRR51MG9rtLJztMs98fcI2D3g=
+
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcombined-stream%2Fdownload%2Fcombined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -2370,16 +2624,6 @@ concat-map@0.0.1:
resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@^1.6.0:
- version "1.6.2"
- resolved "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
connect@^3.6.5:
version "3.7.0"
resolved "https://registry.npm.taobao.org/connect/download/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
@@ -2390,11 +2634,6 @@ connect@^3.6.5:
parseurl "~1.3.3"
utils-merge "1.0.1"
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
- integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
@@ -2407,16 +2646,6 @@ copy-descriptor@^0.1.0:
resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-core-js-pure@^3.0.0:
- version "3.6.5"
- resolved "https://registry.npm.taobao.org/core-js-pure/download/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
- integrity sha1-x5519eONvIWmYtke6lK4JW1TuBM=
-
-core-js@^2.2.2, core-js@^2.4.1:
- version "2.6.10"
- resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f"
- integrity sha1-iluDkfjMcBPacDQRzltYVwYwDX8=
-
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -2432,16 +2661,7 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
js-yaml "^3.13.1"
parse-json "^4.0.0"
-cross-spawn@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+cross-spawn@^6.0.0:
version "6.0.5"
resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=
@@ -2452,7 +2672,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.0:
+cross-spawn@^7.0.0, cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha1-9zqFudXUHQRVUcF34ogtSshXKKY=
@@ -2461,7 +2681,7 @@ cross-spawn@^7.0.0:
shebang-command "^2.0.0"
which "^2.0.1"
-cssom@^0.4.1:
+cssom@^0.4.4:
version "0.4.4"
resolved "https://registry.npm.taobao.org/cssom/download/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
integrity sha1-WmbPk9LQtmHYC/akT7ZfXC5OChA=
@@ -2471,7 +2691,7 @@ cssom@~0.3.6:
resolved "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
integrity sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=
-cssstyle@^2.0.0:
+cssstyle@^2.3.0:
version "2.3.0"
resolved "https://registry.npm.taobao.org/cssstyle/download/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
integrity sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=
@@ -2485,14 +2705,14 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-data-urls@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
- integrity sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4=
+data-urls@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/data-urls/download/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
+ integrity sha1-FWSFpyljqXD11YIar2Qr7yvy25s=
dependencies:
- abab "^2.0.0"
- whatwg-mimetype "^2.2.0"
- whatwg-url "^7.0.0"
+ abab "^2.0.3"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
dayjs@^1.8.15:
version "1.8.17"
@@ -2506,13 +2726,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
dependencies:
ms "2.0.0"
-debug@^3.2.6:
- version "3.2.6"
- resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
- integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps=
- dependencies:
- ms "^2.1.1"
-
debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
@@ -2525,17 +2738,17 @@ decamelize@^1.2.0:
resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+decimal.js@^10.2.1:
+ version "10.2.1"
+ resolved "https://registry.npm.taobao.org/decimal.js/download/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3"
+ integrity sha1-I4rnsPDHk9PjzqQQEIs1osAUJqM=
+
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=
-
-deep-is@~0.1.3:
+deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -2591,11 +2804,6 @@ delayed-stream@~1.0.0:
resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
denodeify@^1.2.1:
version "1.2.1"
resolved "https://registry.npm.taobao.org/denodeify/download/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631"
@@ -2611,20 +2819,15 @@ destroy@~1.0.4:
resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
detect-newline@^3.0.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/detect-newline/download/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
integrity sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=
-diff-sequences@^25.2.6:
- version "25.2.6"
- resolved "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
- integrity sha1-X0Z8AO3TU1K3vKRteSfWDmh6dt0=
+diff-sequences@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
+ integrity sha1-SLqZFX3hkjQS7tQdtrbUqpynwLE=
doctrine@^2.1.0:
version "2.1.0"
@@ -2640,12 +2843,12 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
-domexception@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
- integrity sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=
+domexception@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/domexception/download/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
+ integrity sha1-+0Su+6eT4VdLCvau0oAdBXUp8wQ=
dependencies:
- webidl-conversions "^4.0.2"
+ webidl-conversions "^5.0.0"
ecc-jsbn@~0.1.1:
version "0.1.2"
@@ -2660,6 +2863,16 @@ ee-first@1.1.1:
resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+electron-to-chromium@^1.3.649:
+ version "1.3.711"
+ resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.711.tgz#92c3caf7ffed5e18bf63f66b4b57b4db2409c450"
+ integrity sha1-ksPK9//tXhi/Y/ZrS1e02yQJxFA=
+
+emittery@^0.7.1:
+ version "0.7.2"
+ resolved "https://registry.npm.taobao.org/emittery/download/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82"
+ integrity sha1-JVlZCOE68PVnSrQZOW4vs5TN+oI=
+
emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
@@ -2675,13 +2888,6 @@ encodeurl@~1.0.2:
resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
-encoding@^0.1.11:
- version "0.1.12"
- resolved "https://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
- integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=
- dependencies:
- iconv-lite "~0.4.13"
-
end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz?cache=0&sync_timestamp=1569416267505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fend-of-stream%2Fdownload%2Fend-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -2689,6 +2895,13 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+enquirer@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.npm.taobao.org/enquirer/download/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=
+ dependencies:
+ ansi-colors "^4.1.1"
+
envinfo@^7.7.2:
version "7.7.3"
resolved "https://registry.npm.taobao.org/envinfo/download/envinfo-7.7.3.tgz?cache=0&sync_timestamp=1598316396991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenvinfo%2Fdownload%2Fenvinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc"
@@ -2701,6 +2914,13 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
+error-stack-parser@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
+ integrity sha1-WpmnB716TFinl5AtSNgoA+3mqtg=
+ dependencies:
+ stackframe "^1.1.1"
+
errorhandler@^1.5.0:
version "1.5.1"
resolved "https://registry.npm.taobao.org/errorhandler/download/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91"
@@ -2709,40 +2929,27 @@ errorhandler@^1.5.0:
accepts "~1.3.7"
escape-html "~1.0.3"
-es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
- version "1.17.6"
- resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
- integrity sha1-kUIHFweFeyysx7iey2cDFsPi1So=
+es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2:
+ version "1.18.0"
+ resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4"
+ integrity sha1-q4CzWe7Lft5MKYAAOQvFrD7HtaQ=
dependencies:
+ call-bind "^1.0.2"
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.2.0"
- is-regex "^1.1.0"
- object-inspect "^1.7.0"
+ has-symbols "^1.0.2"
+ is-callable "^1.2.3"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.2"
+ is-string "^1.0.5"
+ object-inspect "^1.9.0"
object-keys "^1.1.1"
- object.assign "^4.1.0"
- string.prototype.trimend "^1.0.1"
- string.prototype.trimstart "^1.0.1"
-
-es-abstract@^1.18.0-next.0:
- version "1.18.0-next.0"
- resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc"
- integrity sha1-swKDSSfmJNjlg37UgiQpHyxm5vw=
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.2.0"
- is-negative-zero "^2.0.0"
- is-regex "^1.1.1"
- object-inspect "^1.8.0"
- object-keys "^1.1.1"
- object.assign "^4.1.0"
- string.prototype.trimend "^1.0.1"
- string.prototype.trimstart "^1.0.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.0"
es-to-primitive@^1.2.1:
version "1.2.1"
@@ -2753,12 +2960,17 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567557947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=
+
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-escape-string-regexp@2.0.0:
+escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-2.0.0.tgz?cache=0&sync_timestamp=1587627212242&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=
@@ -2768,13 +2980,13 @@ escape-string-regexp@^1.0.5:
resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.11.1:
- version "1.14.3"
- resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
- integrity sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=
+escodegen@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
+ integrity sha1-XjKxKDPoqo+jXhvwvvqJOASEx90=
dependencies:
esprima "^4.0.1"
- estraverse "^4.2.0"
+ estraverse "^5.2.0"
esutils "^2.0.2"
optionator "^0.8.1"
optionalDependencies:
@@ -2814,40 +3026,41 @@ eslint-plugin-prettier@3.1.2:
dependencies:
prettier-linter-helpers "^1.0.0"
-eslint-plugin-react-hooks@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npm.taobao.org/eslint-plugin-react-hooks/download/eslint-plugin-react-hooks-3.0.0.tgz#9e80c71846eb68dd29c3b21d832728aa66e5bd35"
- integrity sha1-noDHGEbraN0pw7IdgycoqmblvTU=
+eslint-plugin-react-hooks@^4.0.4:
+ version "4.2.0"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-react-hooks/download/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"
+ integrity sha1-jCKcJo1GiVYzTJQ7tF/IYCgPVVY=
eslint-plugin-react-native-globals@^0.1.1:
version "0.1.2"
resolved "https://registry.npm.taobao.org/eslint-plugin-react-native-globals/download/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
integrity sha1-7hNIvCzrkSMDzmvb0i4vBF6obqI=
-eslint-plugin-react-native@3.8.1:
- version "3.8.1"
- resolved "https://registry.npm.taobao.org/eslint-plugin-react-native/download/eslint-plugin-react-native-3.8.1.tgz#92811e37191ecb0d29c0f0a0c9e5c943ee573821"
- integrity sha1-koEeNxkeyw0pwPCgyeXJQ+5XOCE=
+eslint-plugin-react-native@^3.8.1:
+ version "3.10.0"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-react-native/download/eslint-plugin-react-native-3.10.0.tgz#240f7e6979a908af3dfd9ba9652434c33f4d64cd"
+ integrity sha1-JA9+aXmpCK89/ZupZSQ0wz9NZM0=
dependencies:
+ "@babel/traverse" "^7.7.4"
eslint-plugin-react-native-globals "^0.1.1"
-eslint-plugin-react@7.19.0:
- version "7.19.0"
- resolved "https://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666"
- integrity sha1-bQj5ZzYoqmnFVZ0zSJ6FXYNVFmY=
+eslint-plugin-react@^7.20.0:
+ version "7.23.2"
+ resolved "https://registry.npm.taobao.org/eslint-plugin-react/download/eslint-plugin-react-7.23.2.tgz#2d2291b0f95c03728b55869f01102290e792d494"
+ integrity sha1-LSKRsPlcA3KLVYafARAikOeS1JQ=
dependencies:
- array-includes "^3.1.1"
+ array-includes "^3.1.3"
+ array.prototype.flatmap "^1.2.4"
doctrine "^2.1.0"
has "^1.0.3"
- jsx-ast-utils "^2.2.3"
- object.entries "^1.1.1"
- object.fromentries "^2.0.2"
- object.values "^1.1.1"
+ jsx-ast-utils "^2.4.1 || ^3.0.0"
+ minimatch "^3.0.4"
+ object.entries "^1.1.3"
+ object.fromentries "^2.0.4"
+ object.values "^1.1.3"
prop-types "^15.7.2"
- resolve "^1.15.1"
- semver "^6.3.0"
- string.prototype.matchall "^4.0.2"
- xregexp "^4.3.0"
+ resolve "^2.0.0-next.3"
+ string.prototype.matchall "^4.0.4"
eslint-scope@^5.0.0:
version "5.0.0"
@@ -2857,14 +3070,15 @@ eslint-scope@^5.0.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-utils@^1.4.3:
- version "1.4.3"
- resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
- integrity sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=
+eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=
dependencies:
- eslint-visitor-keys "^1.1.0"
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
-eslint-utils@^2.0.0:
+eslint-utils@^2.0.0, eslint-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-2.1.0.tgz?cache=0&sync_timestamp=1592222069736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-utils%2Fdownload%2Feslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
integrity sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=
@@ -2876,69 +3090,79 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
integrity sha1-4qgs6oT/JGrW+1f5veW0ZiFFnsI=
-eslint@^6.5.1:
- version "6.6.0"
- resolved "https://registry.npm.taobao.org/eslint/download/eslint-6.6.0.tgz#4a01a2fb48d32aacef5530ee9c5a78f11a8afd04"
- integrity sha1-SgGi+0jTKqzvVTDunFp48RqK/QQ=
+eslint-visitor-keys@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=
+
+eslint-visitor-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
+ integrity sha1-If3I+82ceVzAMh8FY3AglXUVEag=
+
+eslint@7.14.0:
+ version "7.14.0"
+ resolved "https://registry.npm.taobao.org/eslint/download/eslint-7.14.0.tgz?cache=0&sync_timestamp=1616793846706&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344"
+ integrity sha1-LSysHSgXTFEKl7N38SKlUHlY40Q=
dependencies:
"@babel/code-frame" "^7.0.0"
+ "@eslint/eslintrc" "^0.2.1"
ajv "^6.10.0"
- chalk "^2.1.0"
- cross-spawn "^6.0.5"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
debug "^4.0.1"
doctrine "^3.0.0"
- eslint-scope "^5.0.0"
- eslint-utils "^1.4.3"
- eslint-visitor-keys "^1.1.0"
- espree "^6.1.2"
- esquery "^1.0.1"
+ enquirer "^2.3.5"
+ eslint-scope "^5.1.1"
+ eslint-utils "^2.1.0"
+ eslint-visitor-keys "^2.0.0"
+ espree "^7.3.0"
+ esquery "^1.2.0"
esutils "^2.0.2"
file-entry-cache "^5.0.1"
functional-red-black-tree "^1.0.1"
glob-parent "^5.0.0"
- globals "^11.7.0"
+ globals "^12.1.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
- inquirer "^7.0.0"
is-glob "^4.0.0"
js-yaml "^3.13.1"
json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.3.0"
- lodash "^4.17.14"
+ levn "^0.4.1"
+ lodash "^4.17.19"
minimatch "^3.0.4"
- mkdirp "^0.5.1"
natural-compare "^1.4.0"
- optionator "^0.8.2"
+ optionator "^0.9.1"
progress "^2.0.0"
- regexpp "^2.0.1"
- semver "^6.1.2"
- strip-ansi "^5.2.0"
- strip-json-comments "^3.0.1"
+ regexpp "^3.1.0"
+ semver "^7.2.1"
+ strip-ansi "^6.0.0"
+ strip-json-comments "^3.1.0"
table "^5.2.3"
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
-espree@^6.1.2:
- version "6.1.2"
- resolved "https://registry.npm.taobao.org/espree/download/espree-6.1.2.tgz?cache=0&sync_timestamp=1571624368510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d"
- integrity sha1-bCcmUJMrT5HDcU5ee19eLs9HJi0=
+espree@^7.3.0:
+ version "7.3.1"
+ resolved "https://registry.npm.taobao.org/espree/download/espree-7.3.1.tgz?cache=0&sync_timestamp=1607144113788&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+ integrity sha1-8t8zC3Usb1UBn4vYm3ZgA5wbu7Y=
dependencies:
- acorn "^7.1.0"
- acorn-jsx "^5.1.0"
- eslint-visitor-keys "^1.1.0"
+ acorn "^7.4.0"
+ acorn-jsx "^5.3.1"
+ eslint-visitor-keys "^1.3.0"
-esprima@^4.0.0, esprima@^4.0.1:
+esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
version "4.0.1"
resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=
-esquery@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
- integrity sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=
+esquery@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=
dependencies:
- estraverse "^4.0.0"
+ estraverse "^5.1.0"
esrecurse@^4.1.0:
version "4.2.1"
@@ -2947,11 +3171,23 @@ esrecurse@^4.1.0:
dependencies:
estraverse "^4.1.0"
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha1-eteWTWeauyi+5yzsY3WLHF0smSE=
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.0, estraverse@^4.1.1:
version "4.3.0"
resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+ integrity sha1-MH30JUfmzHMk088DwVXVzbjFOIA=
+
esutils@^2.0.0, esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -2967,11 +3203,6 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1:
resolved "https://registry.npm.taobao.org/event-target-shim/download/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
integrity sha1-XU0+vflYPWOlMzzi3rdICrKwV4k=
-eventemitter3@^3.0.0:
- version "3.1.2"
- resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
- integrity sha1-LT1I+cNGaY/Og6hdfWZOmFNd9uc=
-
exec-sh@^0.3.2:
version "0.3.4"
resolved "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
@@ -2990,10 +3221,10 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^3.2.0:
- version "3.4.0"
- resolved "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1594145138347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
- integrity sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=
+execa@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npm.taobao.org/execa/download/execa-4.1.0.tgz?cache=0&sync_timestamp=1606973838223&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
+ integrity sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=
dependencies:
cross-spawn "^7.0.0"
get-stream "^5.0.0"
@@ -3002,7 +3233,6 @@ execa@^3.2.0:
merge-stream "^2.0.0"
npm-run-path "^4.0.0"
onetime "^5.1.0"
- p-finally "^2.0.0"
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
@@ -3024,24 +3254,17 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/expect/download/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba"
- integrity sha1-8H+EhxKigTu1kWfaP7goyiH1i7o=
+expect@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/expect/download/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417"
+ integrity sha1-xrmWvya/P+GLZ7LQ9R/JgbqTRBc=
dependencies:
- "@jest/types" "^25.5.0"
+ "@jest/types" "^26.6.2"
ansi-styles "^4.0.0"
- jest-get-type "^25.2.6"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-regex-util "^25.2.6"
-
-extend-shallow@^1.1.2:
- version "1.1.4"
- resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071"
- integrity sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=
- dependencies:
- kind-of "^1.1.0"
+ jest-get-type "^26.3.0"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-regex-util "^26.0.0"
extend-shallow@^2.0.1:
version "2.0.1"
@@ -3063,24 +3286,6 @@ extend@~3.0.2:
resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=
-external-editor@^2.0.4:
- version "2.2.0"
- resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602917731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
- integrity sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=
- dependencies:
- chardet "^0.4.0"
- iconv-lite "^0.4.17"
- tmp "^0.0.33"
-
-external-editor@^3.0.3:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz?cache=0&sync_timestamp=1562602917731&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
- integrity sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=
- dependencies:
- chardet "^0.7.0"
- iconv-lite "^0.4.24"
- tmp "^0.0.33"
-
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -3105,16 +3310,6 @@ extsprintf@^1.2.0:
resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fancy-log@^1.3.2:
- version "1.3.3"
- resolved "https://registry.npm.taobao.org/fancy-log/download/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
- integrity sha1-28GRVPVYaQFQojlToK29A1vkX8c=
- dependencies:
- ansi-gray "^0.1.1"
- color-support "^1.1.3"
- parse-node-version "^1.0.0"
- time-stamp "^1.0.0"
-
fast-deep-equal@^2.0.1:
version "2.0.1"
resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
@@ -3135,7 +3330,7 @@ fast-json-stable-stringify@^2.0.0:
resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
-fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -3147,55 +3342,6 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-fbjs-css-vars@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/fbjs-css-vars/download/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8"
- integrity sha1-IWVRE2rgL+JVkyw+yHdfGOLAeLg=
-
-fbjs-scripts@^1.1.0:
- version "1.2.0"
- resolved "https://registry.npm.taobao.org/fbjs-scripts/download/fbjs-scripts-1.2.0.tgz#069a0c0634242d10031c6460ef1fccefcdae8b27"
- integrity sha1-BpoMBjQkLRADHGRg7x/M782uiyc=
- dependencies:
- "@babel/core" "^7.0.0"
- ansi-colors "^1.0.1"
- babel-preset-fbjs "^3.2.0"
- core-js "^2.4.1"
- cross-spawn "^5.1.0"
- fancy-log "^1.3.2"
- object-assign "^4.0.1"
- plugin-error "^0.1.2"
- semver "^5.1.0"
- through2 "^2.0.0"
-
-fbjs@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npm.taobao.org/fbjs/download/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a"
- integrity sha1-UsIV4Ig6PIavKnp3btUVJa6OClo=
- dependencies:
- core-js "^2.4.1"
- fbjs-css-vars "^1.0.0"
- isomorphic-fetch "^2.1.1"
- loose-envify "^1.0.0"
- object-assign "^4.1.0"
- promise "^7.1.1"
- setimmediate "^1.0.5"
- ua-parser-js "^0.7.18"
-
-figures@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&sync_timestamp=1571715201547&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
- integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
- dependencies:
- escape-string-regexp "^1.0.5"
-
-figures@^3.0.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/figures/download/figures-3.1.0.tgz?cache=0&sync_timestamp=1571715201547&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec"
- integrity sha1-SxmN0H2NcVMGQoZK8tRd2eRZxOw=
- dependencies:
- escape-string-regexp "^1.0.5"
-
file-entry-cache@^5.0.1:
version "5.0.1"
resolved "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -3271,6 +3417,16 @@ flatted@^2.0.0:
resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz?cache=0&sync_timestamp=1561466276595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
integrity sha1-aeV8qo8OrLwoHS4stFjUb9tEngg=
+flow-parser@0.*:
+ version "0.148.0"
+ resolved "https://registry.npm.taobao.org/flow-parser/download/flow-parser-0.148.0.tgz#7f685b4f3cb7a23de63b065b20e37872351911d0"
+ integrity sha1-f2hbTzy3oj3mOwZbION4cjUZEdA=
+
+flow-parser@^0.121.0:
+ version "0.121.0"
+ resolved "https://registry.npm.taobao.org/flow-parser/download/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f"
+ integrity sha1-n5iY6uyRqffDI+npktgatcWOYY8=
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -3320,26 +3476,11 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.5:
- version "1.2.7"
- resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz?cache=0&sync_timestamp=1569874948455&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
- integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=
- dependencies:
- minipass "^2.6.0"
-
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-fsevents@^1.2.7:
- version "1.2.9"
- resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz?cache=0&sync_timestamp=1573319602177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha1-P17WZYPM1vQAtaANtvfoYTY+OI8=
- dependencies:
- nan "^2.12.1"
- node-pre-gyp "^0.12.0"
-
fsevents@^2.1.2:
version "2.1.3"
resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
@@ -3355,30 +3496,30 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-gauge@~2.7.3:
- version "2.7.4"
- resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
- dependencies:
- aproba "^1.0.3"
- console-control-strings "^1.0.0"
- has-unicode "^2.0.0"
- object-assign "^4.1.0"
- signal-exit "^3.0.0"
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wide-align "^1.1.0"
-
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
integrity sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=
+
get-caller-file@^2.0.1:
version "2.0.5"
resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612365112407&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+ integrity sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.npm.taobao.org/get-package-type/download/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -3422,7 +3563,7 @@ glob-parent@^5.0.0:
dependencies:
is-glob "^4.0.1"
-glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.1.6"
resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=
@@ -3434,12 +3575,19 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
-globals@^11.1.0, globals@^11.7.0:
+globals@^11.1.0:
version "11.12.0"
resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1617958244123&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=
+ dependencies:
+ type-fest "^0.8.1"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "4.2.3"
resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM=
@@ -3467,6 +3615,11 @@ har-validator@~5.1.3:
ajv "^6.12.3"
har-schema "^2.0.0"
+has-bigints@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461262702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+ integrity sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=
+
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -3487,10 +3640,10 @@ has-symbols@^1.0.1:
resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
- integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+has-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+ integrity sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=
has-value@^0.3.1:
version "0.3.1"
@@ -3530,10 +3683,10 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-hermes-engine@~0.5.0:
- version "0.5.1"
- resolved "https://registry.npm.taobao.org/hermes-engine/download/hermes-engine-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhermes-engine%2Fdownload%2Fhermes-engine-0.5.1.tgz#601115e4b1e0a17d9aa91243b96277de4e926e09"
- integrity sha1-YBEV5LHgoX2aqRJDuWJ33k6Sbgk=
+hermes-engine@~0.7.0:
+ version "0.7.2"
+ resolved "https://registry.npm.taobao.org/hermes-engine/download/hermes-engine-0.7.2.tgz#303cd99d23f68e708b223aec2d49d5872985388b"
+ integrity sha1-MDzZnSP2jnCLIjrsLUnVhymFOIs=
hermes-profile-transformer@^0.0.6:
version "0.0.6"
@@ -3547,12 +3700,12 @@ hosted-git-info@^2.1.4:
resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c"
integrity sha1-dZz88sTRVq3lmwst+r3cQqa5xww=
-html-encoding-sniffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
- integrity sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=
+html-encoding-sniffer@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
+ integrity sha1-QqbcT9M/ACgRduiyN1nKTk+hhfM=
dependencies:
- whatwg-encoding "^1.0.1"
+ whatwg-encoding "^1.0.5"
html-escaper@^2.0.0:
version "2.0.2"
@@ -3584,20 +3737,13 @@ human-signals@^1.1.1:
resolved "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584199048017&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha1-xbHNFPUK6uCatsWf5jujOV/k36M=
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24:
version "0.4.24"
resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=
dependencies:
safer-buffer ">= 2.1.2 < 3"
-ignore-walk@^3.0.1:
- version "3.0.3"
- resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz?cache=0&sync_timestamp=1570600490530&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore-walk%2Fdownload%2Fignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
- integrity sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc=
- dependencies:
- minimatch "^3.0.4"
-
ignore@^4.0.6:
version "4.0.6"
resolved "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
@@ -3629,6 +3775,14 @@ import-fresh@^3.0.0:
parent-module "^1.0.0"
resolve-from "^4.0.0"
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469520031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha1-NxYsJfy566oublPVtNiM4X2eDCs=
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-local@^3.0.2:
version "3.0.2"
resolved "https://registry.npm.taobao.org/import-local/download/import-local-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-local%2Fdownload%2Fimport-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
@@ -3650,63 +3804,24 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=
-ini@~1.3.0:
- version "1.3.5"
- resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
- integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=
-
-inquirer@^3.0.6:
- version "3.3.0"
- resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
- integrity sha1-ndLyrXZdyrH/BEO0kUQqILoifck=
+internal-slot@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npm.taobao.org/internal-slot/download/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+ integrity sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=
dependencies:
- ansi-escapes "^3.0.0"
- chalk "^2.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.0.4"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rx-lite "^4.0.8"
- rx-lite-aggregates "^4.0.8"
- string-width "^2.1.0"
- strip-ansi "^4.0.0"
- through "^2.3.6"
-
-inquirer@^7.0.0:
- version "7.0.0"
- resolved "https://registry.npm.taobao.org/inquirer/download/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a"
- integrity sha1-nisDLd532h2124BHWLj+o6lwUZo=
- dependencies:
- ansi-escapes "^4.2.1"
- chalk "^2.4.2"
- cli-cursor "^3.1.0"
- cli-width "^2.0.0"
- external-editor "^3.0.3"
- figures "^3.0.0"
- lodash "^4.17.15"
- mute-stream "0.0.8"
- run-async "^2.2.0"
- rxjs "^6.4.0"
- string-width "^4.1.0"
- strip-ansi "^5.1.0"
- through "^2.3.6"
-
-internal-slot@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/internal-slot/download/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3"
- integrity sha1-nC6fs82OXkJWxvRf4xAGf8+jeKM=
- dependencies:
- es-abstract "^1.17.0-next.1"
+ get-intrinsic "^1.1.0"
has "^1.0.3"
- side-channel "^1.0.2"
+ side-channel "^1.0.4"
+
+interpret@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=
invariant@2.2.4, invariant@^2.2.4:
version "2.2.4"
@@ -3715,11 +3830,6 @@ invariant@2.2.4, invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
-ip-regex@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
- integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-
ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
@@ -3744,6 +3854,18 @@ is-arrayish@^0.2.1:
resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-bigint@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/is-bigint/download/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2"
+ integrity sha1-aSMFHfy8dkJ4VAuc4OazITql68I=
+
+is-boolean-object@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/is-boolean-object/download/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0"
+ integrity sha1-4qqtOjqPyjTCj27uE1sVbtJYf/A=
+ dependencies:
+ call-bind "^1.0.0"
+
is-buffer@^1.1.5:
version "1.1.6"
resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -3754,10 +3876,10 @@ is-callable@^1.1.4:
resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=
-is-callable@^1.2.0:
- version "1.2.0"
- resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
- integrity sha1-gzNlYLVKOONeOi33r9BFTWkUaLs=
+is-callable@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+ integrity sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=
is-ci@^2.0.0:
version "2.0.0"
@@ -3766,6 +3888,13 @@ is-ci@^2.0.0:
dependencies:
ci-info "^2.0.0"
+is-core-module@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
+ integrity sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=
+ dependencies:
+ has "^1.0.3"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -3830,13 +3959,6 @@ is-extglob@^2.1.1:
resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
- dependencies:
- number-is-nan "^1.0.0"
-
is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
@@ -3859,10 +3981,15 @@ is-glob@^4.0.0, is-glob@^4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-negative-zero@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
- integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
+is-negative-zero@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+ integrity sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=
+
+is-number-object@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/is-number-object/download/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
+ integrity sha1-NqyV50HPGLKD/B3fXoPaeY4+wZc=
is-number@^3.0.0:
version "3.0.0"
@@ -3883,19 +4010,20 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-promise@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
- integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+is-potential-custom-element-name@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/is-potential-custom-element-name/download/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+ integrity sha1-Fx7W8Z46xVQ5Tt94yqBXhKRb67U=
-is-regex@^1.1.0, is-regex@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.1.tgz?cache=0&sync_timestamp=1596555758915&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
- integrity sha1-xvmKrMVG9s7FRooHt7FTq1ZKV7k=
+is-regex@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.2.tgz?cache=0&sync_timestamp=1612218345989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regex%2Fdownload%2Fis-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251"
+ integrity sha1-gcjr3k2xQvLPHFP8htakV4gmYlE=
dependencies:
+ call-bind "^1.0.2"
has-symbols "^1.0.1"
-is-stream@^1.0.1, is-stream@^1.1.0:
+is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -3917,6 +4045,13 @@ is-symbol@^1.0.2:
dependencies:
has-symbols "^1.0.0"
+is-symbol@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296542615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=
+ dependencies:
+ has-symbols "^1.0.1"
+
is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -3932,7 +4067,7 @@ is-wsl@^1.1.0:
resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1569219566107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-is-wsl@^2.1.1:
+is-wsl@^2.2.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
integrity sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=
@@ -3961,14 +4096,6 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-isomorphic-fetch@^2.1.1:
- version "2.2.1"
- resolved "https://registry.npm.taobao.org/isomorphic-fetch/download/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
- integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=
- dependencies:
- node-fetch "^1.0.1"
- whatwg-fetch ">=0.10.0"
-
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -3979,7 +4106,7 @@ istanbul-lib-coverage@^3.0.0:
resolved "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-3.0.0.tgz?cache=0&sync_timestamp=1577063499817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
integrity sha1-9ZRKN8cLVQsCp4pcOyBVsoDOyOw=
-istanbul-lib-instrument@^4.0.0:
+istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:
version "4.0.3"
resolved "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-4.0.3.tgz?cache=0&sync_timestamp=1589107503451&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-instrument%2Fdownload%2Fistanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
integrity sha1-hzxv/4l0UBGCIndGlqPyiQLXfB0=
@@ -4015,463 +4142,395 @@ istanbul-reports@^3.0.2:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-jest-changed-files@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c"
- integrity sha1-FBzCNWfOs/U0Um+GFLo5QhODY0w=
+jest-changed-files@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-26.6.2.tgz?cache=0&sync_timestamp=1617371669173&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-changed-files%2Fdownload%2Fjest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0"
+ integrity sha1-9hmEeeHMZvIvmuHiKsqgtCnAQtA=
dependencies:
- "@jest/types" "^25.5.0"
- execa "^3.2.0"
+ "@jest/types" "^26.6.2"
+ execa "^4.0.0"
throat "^5.0.0"
-jest-cli@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-cli/download/jest-cli-25.5.4.tgz?cache=0&sync_timestamp=1598100045347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-cli%2Fdownload%2Fjest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d"
- integrity sha1-ufGoTRMBqSxcIXaEy3mECDHbnw0=
+jest-cli@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-cli/download/jest-cli-26.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-cli%2Fdownload%2Fjest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a"
+ integrity sha1-QxF8/vJLxM1pGhdKh5alMuE16So=
dependencies:
- "@jest/core" "^25.5.4"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
+ "@jest/core" "^26.6.3"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
import-local "^3.0.2"
is-ci "^2.0.0"
- jest-config "^25.5.4"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
+ jest-config "^26.6.3"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
prompts "^2.0.1"
- realpath-native "^2.0.0"
- yargs "^15.3.1"
+ yargs "^15.4.1"
-jest-config@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-config/download/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c"
- integrity sha1-OOIFez+Xbvcwmyssjc0qcIpn8Cw=
+jest-config@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-config/download/jest-config-26.6.3.tgz?cache=0&sync_timestamp=1617376023212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-config%2Fdownload%2Fjest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349"
+ integrity sha1-ZPQURO756wPcUdXFO3XIxx9kU0k=
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^25.5.4"
- "@jest/types" "^25.5.0"
- babel-jest "^25.5.1"
- chalk "^3.0.0"
+ "@jest/test-sequencer" "^26.6.3"
+ "@jest/types" "^26.6.2"
+ babel-jest "^26.6.3"
+ chalk "^4.0.0"
deepmerge "^4.2.2"
glob "^7.1.1"
graceful-fs "^4.2.4"
- jest-environment-jsdom "^25.5.0"
- jest-environment-node "^25.5.0"
- jest-get-type "^25.2.6"
- jest-jasmine2 "^25.5.4"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
+ jest-environment-jsdom "^26.6.2"
+ jest-environment-node "^26.6.2"
+ jest-get-type "^26.3.0"
+ jest-jasmine2 "^26.6.3"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
micromatch "^4.0.2"
- pretty-format "^25.5.0"
- realpath-native "^2.0.0"
+ pretty-format "^26.6.2"
-jest-diff@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-diff/download/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
- integrity sha1-HdJu1k+WZnwGjO8Ca2d9+gGvz6k=
+jest-diff@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-diff/download/jest-diff-26.6.2.tgz?cache=0&sync_timestamp=1617371665129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-diff%2Fdownload%2Fjest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
+ integrity sha1-GqdGi1LDpo19XF/c381eSb0WQ5Q=
dependencies:
- chalk "^3.0.0"
- diff-sequences "^25.2.6"
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
+ chalk "^4.0.0"
+ diff-sequences "^26.6.2"
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
-jest-docblock@^25.3.0:
- version "25.3.0"
- resolved "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
- integrity sha1-i3d6J+NHfNd6FowFKQxHGldWI+8=
+jest-docblock@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-26.0.0.tgz?cache=0&sync_timestamp=1607352761462&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-docblock%2Fdownload%2Fjest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5"
+ integrity sha1-Pi+iCJn8koyxO9D/aL03EaNoibU=
dependencies:
detect-newline "^3.0.0"
-jest-each@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-each/download/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516"
- integrity sha1-DDwnl+giXLe+x+TSSdzZa5NL5RY=
+jest-each@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-each/download/jest-each-26.6.2.tgz?cache=0&sync_timestamp=1617371669860&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-each%2Fdownload%2Fjest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb"
+ integrity sha1-AlJkOKd6Z0AcimOC3+WZmVLBZ8s=
dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- jest-get-type "^25.2.6"
- jest-util "^25.5.0"
- pretty-format "^25.5.0"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
+ jest-get-type "^26.3.0"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
-jest-environment-jsdom@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-25.5.0.tgz?cache=0&sync_timestamp=1597059706037&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-jsdom%2Fdownload%2Fjest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834"
- integrity sha1-3L5NouqZdweZcEDs9uJWCuxOmDQ=
+jest-environment-jsdom@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e"
+ integrity sha1-eNCf6c8BmjVwCbm34fEB0jvR2j4=
dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- jsdom "^15.2.1"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
+ jsdom "^16.4.0"
-jest-environment-node@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-25.5.0.tgz?cache=0&sync_timestamp=1597059796557&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-environment-node%2Fdownload%2Fjest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1"
- integrity sha1-D1UnDZSASQKYjmStyjfGzg99B6E=
+jest-environment-node@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c"
+ integrity sha1-gk5Mf7SURkY1bxGsdbIpsANfKww=
dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- semver "^6.3.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
-jest-get-type@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-24.9.0.tgz?cache=0&sync_timestamp=1566444325556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-get-type%2Fdownload%2Fjest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
- integrity sha1-FoSgyKUPLkkBtmRK6GH1ee7S7w4=
+jest-get-type@^26.3.0:
+ version "26.3.0"
+ resolved "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-26.3.0.tgz?cache=0&sync_timestamp=1607352755729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-get-type%2Fdownload%2Fjest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
+ integrity sha1-6X3Dw/U8K0Bsp6+u1Ek7HQmRmeA=
-jest-get-type@^25.2.6:
- version "25.2.6"
- resolved "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-25.2.6.tgz?cache=0&sync_timestamp=1597059790667&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-get-type%2Fdownload%2Fjest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
- integrity sha1-Cwoy+riQi0TVCL6BaBSH26u42Hc=
-
-jest-haste-map@^24.7.1:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
- integrity sha1-s4pdZCdJNOIfpBeump++t3zqrH0=
+jest-haste-map@^26.5.2, jest-haste-map@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"
+ integrity sha1-3X5g/n3A6fkRoj15xf9/tcLK/qo=
dependencies:
- "@jest/types" "^24.9.0"
- anymatch "^2.0.0"
- fb-watchman "^2.0.0"
- graceful-fs "^4.1.15"
- invariant "^2.2.4"
- jest-serializer "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.9.0"
- micromatch "^3.1.10"
- sane "^4.0.3"
- walker "^1.0.7"
- optionalDependencies:
- fsevents "^1.2.7"
-
-jest-haste-map@^25.5.1:
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-25.5.1.tgz?cache=0&sync_timestamp=1597059792683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943"
- integrity sha1-HfEPcWwdlOYKHr93mMn7PaJiCUM=
- dependencies:
- "@jest/types" "^25.5.0"
+ "@jest/types" "^26.6.2"
"@types/graceful-fs" "^4.1.2"
+ "@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.4"
- jest-serializer "^25.5.0"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
+ jest-regex-util "^26.0.0"
+ jest-serializer "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
micromatch "^4.0.2"
sane "^4.0.3"
walker "^1.0.7"
- which "^2.0.2"
optionalDependencies:
fsevents "^2.1.2"
-jest-jasmine2@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
- integrity sha1-ZsqLMo+xo8U2SBb4lY9pcKhSaWg=
+jest-jasmine2@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd"
+ integrity sha1-rcPPkV3qy1ISyTufNUfNEpWPLt0=
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^25.5.0"
- "@jest/source-map" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
co "^4.6.0"
- expect "^25.5.0"
+ expect "^26.6.2"
is-generator-fn "^2.0.0"
- jest-each "^25.5.0"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-runtime "^25.5.4"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- pretty-format "^25.5.0"
+ jest-each "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
throat "^5.0.0"
-jest-leak-detector@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb"
- integrity sha1-IpHGKUsM5AQkG7Vv5g4tDD408Ls=
+jest-leak-detector@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-26.6.2.tgz?cache=0&sync_timestamp=1617381043341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-leak-detector%2Fdownload%2Fjest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af"
+ integrity sha1-dxfPEYuSI48uumUFTIoMnGU6ka8=
dependencies:
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
-jest-matcher-utils@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867"
- integrity sha1-+8mKEtcw5dJFPX8e1KTZSONLeGc=
+jest-matcher-utils@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a"
+ integrity sha1-jm/W6GPIstMaxkcu6yN7xZXlPno=
dependencies:
- chalk "^3.0.0"
- jest-diff "^25.5.0"
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
+ chalk "^4.0.0"
+ jest-diff "^26.6.2"
+ jest-get-type "^26.3.0"
+ pretty-format "^26.6.2"
-jest-message-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-24.9.0.tgz?cache=0&sync_timestamp=1566444331213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
- integrity sha1-Un9UoeOA9eICqNEUmw7IcvQxGeM=
+jest-message-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-26.6.2.tgz?cache=0&sync_timestamp=1617376027465&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07"
+ integrity sha1-WBc3RK1vwFBrXSEVC5vlbvABygc=
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/stack-utils" "^1.0.1"
- chalk "^2.0.1"
- micromatch "^3.1.10"
- slash "^2.0.0"
- stack-utils "^1.0.1"
-
-jest-message-util@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-25.5.0.tgz?cache=0&sync_timestamp=1597059792208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-message-util%2Fdownload%2Fjest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea"
- integrity sha1-6hHZMgTMeul0VuHYcWJRGFuIgOo=
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@jest/types" "^25.5.0"
- "@types/stack-utils" "^1.0.1"
- chalk "^3.0.0"
+ "@jest/types" "^26.6.2"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
graceful-fs "^4.2.4"
micromatch "^4.0.2"
+ pretty-format "^26.6.2"
slash "^3.0.0"
- stack-utils "^1.0.1"
+ stack-utils "^2.0.2"
-jest-mock@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-mock/download/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
- integrity sha1-wig1VB7jebkIZzrVEIeiGFwT8cY=
+jest-mock@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-mock/download/jest-mock-26.6.2.tgz?cache=0&sync_timestamp=1617381030788&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-mock%2Fdownload%2Fjest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"
+ integrity sha1-1stxKwQe1H/g2bb8NHS8ZUP+swI=
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
-jest-mock@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-mock/download/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a"
- integrity sha1-qRpU2r0U437NYWZda24GNgpVOHo=
+jest-pnp-resolver@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npm.taobao.org/jest-pnp-resolver/download/jest-pnp-resolver-1.2.2.tgz?cache=0&sync_timestamp=1592991874759&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-pnp-resolver%2Fdownload%2Fjest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
+ integrity sha1-twSsCuAoqJEIpNBAs/kZ393I4zw=
+
+jest-regex-util@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
+ integrity sha1-0l5xhLNuOf1GbDvEG+CXHoIf7ig=
+
+jest-resolve-dependencies@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-26.6.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-resolve-dependencies%2Fdownload%2Fjest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6"
+ integrity sha1-ZoCFnuXSLuXc2WH+SHH1n0x4T7Y=
dependencies:
- "@jest/types" "^25.5.0"
+ "@jest/types" "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-snapshot "^26.6.2"
-jest-pnp-resolver@^1.2.1:
- version "1.2.1"
- resolved "https://registry.npm.taobao.org/jest-pnp-resolver/download/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
- integrity sha1-7NrmBMB3p/vHDe+21RfDwciYkjo=
-
-jest-regex-util@^25.2.6:
- version "25.2.6"
- resolved "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-25.2.6.tgz?cache=0&sync_timestamp=1588614905410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-regex-util%2Fdownload%2Fjest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
- integrity sha1-2EfTi6FdIRjTsGOQBWAo0PL9OWQ=
-
-jest-resolve-dependencies@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7"
- integrity sha1-hVAfU5V8jjvkRuhjp0d3taFzl6c=
+jest-resolve@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507"
+ integrity sha1-o6sVFyF/RptQTxtWYDxbtUH7tQc=
dependencies:
- "@jest/types" "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-snapshot "^25.5.1"
-
-jest-resolve@^25.5.1:
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829"
- integrity sha1-Dm+8+nwm0qX+j0VgiNwzKnkmaCk=
- dependencies:
- "@jest/types" "^25.5.0"
- browser-resolve "^1.11.3"
- chalk "^3.0.0"
+ "@jest/types" "^26.6.2"
+ chalk "^4.0.0"
graceful-fs "^4.2.4"
- jest-pnp-resolver "^1.2.1"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^26.6.2"
read-pkg-up "^7.0.1"
- realpath-native "^2.0.0"
- resolve "^1.17.0"
+ resolve "^1.18.1"
slash "^3.0.0"
-jest-runner@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-runner/download/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d"
- integrity sha1-/+xd84ddpfXIeK5tChe45OzXxx0=
+jest-runner@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-runner/download/jest-runner-26.6.3.tgz?cache=0&sync_timestamp=1617376038009&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-runner%2Fdownload%2Fjest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159"
+ integrity sha1-LR/tPUbhDyM/0dvTv6o/6JJL4Vk=
dependencies:
- "@jest/console" "^25.5.0"
- "@jest/environment" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.7.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-config "^25.5.4"
- jest-docblock "^25.3.0"
- jest-haste-map "^25.5.1"
- jest-jasmine2 "^25.5.4"
- jest-leak-detector "^25.5.0"
- jest-message-util "^25.5.0"
- jest-resolve "^25.5.1"
- jest-runtime "^25.5.4"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
+ jest-config "^26.6.3"
+ jest-docblock "^26.0.0"
+ jest-haste-map "^26.6.2"
+ jest-leak-detector "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
source-map-support "^0.5.6"
throat "^5.0.0"
-jest-runtime@^25.5.4:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab"
- integrity sha1-3Jgf4sshN6vNMZ50zK5/fu/7+qs=
+jest-runtime@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-26.6.3.tgz?cache=0&sync_timestamp=1617376040140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-runtime%2Fdownload%2Fjest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b"
+ integrity sha1-T2TvvPrDmDMbdLSzyC0n1AG4+is=
dependencies:
- "@jest/console" "^25.5.0"
- "@jest/environment" "^25.5.0"
- "@jest/globals" "^25.5.2"
- "@jest/source-map" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/globals" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/yargs" "^15.0.0"
- chalk "^3.0.0"
+ chalk "^4.0.0"
+ cjs-module-lexer "^0.6.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.2.4"
- jest-config "^25.5.4"
- jest-haste-map "^25.5.1"
- jest-message-util "^25.5.0"
- jest-mock "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- realpath-native "^2.0.0"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
+ jest-regex-util "^26.0.0"
+ jest-resolve "^26.6.2"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
slash "^3.0.0"
strip-bom "^4.0.0"
- yargs "^15.3.1"
+ yargs "^15.4.1"
-jest-serializer@^24.4.0, jest-serializer@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-24.9.0.tgz?cache=0&sync_timestamp=1566444323619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-serializer%2Fdownload%2Fjest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
- integrity sha1-5tfX75bTHouQeacUdUxdXFgojnM=
-
-jest-serializer@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b"
- integrity sha1-qZP0hOdptO1U5w4O/bdAB/UDBys=
+jest-serializer@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"
+ integrity sha1-0Tmq/UaVfTpEjzps2r4pGboHQtE=
dependencies:
+ "@types/node" "*"
graceful-fs "^4.2.4"
-jest-snapshot@^25.5.1:
- version "25.5.1"
- resolved "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
- integrity sha1-GipXZJH5lh640AwuX9R5vCjl/38=
+jest-snapshot@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-26.6.2.tgz?cache=0&sync_timestamp=1617376043256&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-snapshot%2Fdownload%2Fjest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84"
+ integrity sha1-87CvGssiMxaFC9FOG+6pg3+znIQ=
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^25.5.0"
- "@types/prettier" "^1.19.0"
- chalk "^3.0.0"
- expect "^25.5.0"
+ "@jest/types" "^26.6.2"
+ "@types/babel__traverse" "^7.0.4"
+ "@types/prettier" "^2.0.0"
+ chalk "^4.0.0"
+ expect "^26.6.2"
graceful-fs "^4.2.4"
- jest-diff "^25.5.0"
- jest-get-type "^25.2.6"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-resolve "^25.5.1"
- make-dir "^3.0.0"
+ jest-diff "^26.6.2"
+ jest-get-type "^26.3.0"
+ jest-haste-map "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
natural-compare "^1.4.0"
- pretty-format "^25.5.0"
- semver "^6.3.0"
+ pretty-format "^26.6.2"
+ semver "^7.3.2"
-jest-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-util/download/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
- integrity sha1-c5aBTkhTbS6Fo33j5MQx18sUAWI=
+jest-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-util/download/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
+ integrity sha1-kHU12+TVpstMR6ybkm9q8pV2y8E=
dependencies:
- "@jest/console" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/source-map" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- callsites "^3.0.0"
- chalk "^2.0.1"
- graceful-fs "^4.1.15"
- is-ci "^2.0.0"
- mkdirp "^0.5.1"
- slash "^2.0.0"
- source-map "^0.6.0"
-
-jest-util@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-util/download/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0"
- integrity sha1-McY7XW6QEnTSZKT+yEkjCqP6NbA=
- dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
+ chalk "^4.0.0"
graceful-fs "^4.2.4"
is-ci "^2.0.0"
- make-dir "^3.0.0"
+ micromatch "^4.0.2"
-jest-validate@^24.7.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-validate/download/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
- integrity sha1-B3XFU2DRc82FTkAYB1bU/1Le+Ks=
+jest-validate@^26.5.2, jest-validate@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-validate/download/jest-validate-26.6.2.tgz?cache=0&sync_timestamp=1617376046570&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
+ integrity sha1-I9OAlxWHFQRnNCkRw9e0rFerIOw=
dependencies:
- "@jest/types" "^24.9.0"
- camelcase "^5.3.1"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
+ "@jest/types" "^26.6.2"
+ camelcase "^6.0.0"
+ chalk "^4.0.0"
+ jest-get-type "^26.3.0"
leven "^3.1.0"
- pretty-format "^24.9.0"
+ pretty-format "^26.6.2"
-jest-validate@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-validate/download/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
- integrity sha1-+0yT8zLC5M9wFRpijlijXkWaQTo=
+jest-watcher@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-26.6.2.tgz?cache=0&sync_timestamp=1617376047841&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-watcher%2Fdownload%2Fjest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975"
+ integrity sha1-pbaDuPnWjbyx19rjIXLSzKBZKXU=
dependencies:
- "@jest/types" "^25.5.0"
- camelcase "^5.3.1"
- chalk "^3.0.0"
- jest-get-type "^25.2.6"
- leven "^3.1.0"
- pretty-format "^25.5.0"
-
-jest-watcher@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456"
- integrity sha1-1hENEB35i63r5DUAOVb9SkZehFY=
- dependencies:
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ "@types/node" "*"
ansi-escapes "^4.2.1"
- chalk "^3.0.0"
- jest-util "^25.5.0"
- string-length "^3.1.0"
+ chalk "^4.0.0"
+ jest-util "^26.6.2"
+ string-length "^4.0.1"
-jest-worker@^24.6.0, jest-worker@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz?cache=0&sync_timestamp=1566444327015&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
- integrity sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U=
- dependencies:
- merge-stream "^2.0.0"
- supports-color "^6.1.0"
-
-jest-worker@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz?cache=0&sync_timestamp=1597059733456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
- integrity sha1-JhHQcbec6g9D7lej0RhZOsFUfbE=
+jest-worker@^26.0.0, jest-worker@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-26.6.2.tgz?cache=0&sync_timestamp=1617371442132&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-worker%2Fdownload%2Fjest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+ integrity sha1-f3LLxNZDw2Xie5/XdfnQ6qnHqO0=
dependencies:
+ "@types/node" "*"
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^25.1.0:
- version "25.5.4"
- resolved "https://registry.npm.taobao.org/jest/download/jest-25.5.4.tgz?cache=0&sync_timestamp=1598100100891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest%2Fdownload%2Fjest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db"
- integrity sha1-8hEHtkic/jKwds4q3K3uNYesuds=
+jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.npm.taobao.org/jest/download/jest-26.6.3.tgz?cache=0&sync_timestamp=1617375895235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest%2Fdownload%2Fjest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef"
+ integrity sha1-QOj9vkjwDfofDOgSHKdLiKyRSO8=
dependencies:
- "@jest/core" "^25.5.4"
+ "@jest/core" "^26.6.3"
import-local "^3.0.2"
- jest-cli "^25.5.4"
+ jest-cli "^26.6.3"
jetifier@^1.6.2:
version "1.6.4"
resolved "https://registry.npm.taobao.org/jetifier/download/jetifier-1.6.4.tgz#6159db8e275d97980d26162897a0648b6d4a3222"
integrity sha1-YVnbjiddl5gNJhYol6Bki21KMiI=
+joi@^17.2.1:
+ version "17.4.0"
+ resolved "https://registry.npm.taobao.org/joi/download/joi-17.4.0.tgz#b5c2277c8519e016316e49ababd41a1908d9ef20"
+ integrity sha1-tcInfIUZ4BYxbkmrq9QaGQjZ7yA=
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+ "@hapi/topo" "^5.0.0"
+ "@sideway/address" "^4.1.0"
+ "@sideway/formula" "^3.0.0"
+ "@sideway/pinpoint" "^2.0.0"
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -4495,36 +4554,61 @@ jsc-android@^245459.0.0:
resolved "https://registry.npm.taobao.org/jsc-android/download/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9"
integrity sha1-5YQljdCwTJFZon+xBM1dSR/SAsk=
-jsdom@^15.2.1:
- version "15.2.1"
- resolved "https://registry.npm.taobao.org/jsdom/download/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
- integrity sha1-0v6xrvcYP4a+UhuMaDP/UpbQfsU=
+jscodeshift@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npm.taobao.org/jscodeshift/download/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f"
+ integrity sha1-T5UDlAjz8GsOObtNU7wxOfUzDi8=
dependencies:
- abab "^2.0.0"
- acorn "^7.1.0"
- acorn-globals "^4.3.2"
- array-equal "^1.0.0"
- cssom "^0.4.1"
- cssstyle "^2.0.0"
- data-urls "^1.1.0"
- domexception "^1.0.1"
- escodegen "^1.11.1"
- html-encoding-sniffer "^1.0.2"
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.1.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.1.0"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.2.4"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.20.3"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
+jsdom@^16.4.0:
+ version "16.5.2"
+ resolved "https://registry.npm.taobao.org/jsdom/download/jsdom-16.5.2.tgz?cache=0&sync_timestamp=1616953367862&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-16.5.2.tgz#583fac89a0aea31dbf6237e7e4bedccd9beab472"
+ integrity sha1-WD+siaCuox2/Yjfn5L7czZvqtHI=
+ dependencies:
+ abab "^2.0.5"
+ acorn "^8.1.0"
+ acorn-globals "^6.0.0"
+ cssom "^0.4.4"
+ cssstyle "^2.3.0"
+ data-urls "^2.0.0"
+ decimal.js "^10.2.1"
+ domexception "^2.0.1"
+ escodegen "^2.0.0"
+ html-encoding-sniffer "^2.0.1"
+ is-potential-custom-element-name "^1.0.0"
nwsapi "^2.2.0"
- parse5 "5.1.0"
- pn "^1.1.0"
- request "^2.88.0"
- request-promise-native "^1.0.7"
- saxes "^3.1.9"
- symbol-tree "^3.2.2"
- tough-cookie "^3.0.1"
- w3c-hr-time "^1.0.1"
- w3c-xmlserializer "^1.1.2"
- webidl-conversions "^4.0.2"
+ parse5 "6.0.1"
+ request "^2.88.2"
+ request-promise-native "^1.0.9"
+ saxes "^5.0.1"
+ symbol-tree "^3.2.4"
+ tough-cookie "^4.0.0"
+ w3c-hr-time "^1.0.2"
+ w3c-xmlserializer "^2.0.0"
+ webidl-conversions "^6.1.0"
whatwg-encoding "^1.0.5"
whatwg-mimetype "^2.3.0"
- whatwg-url "^7.0.0"
- ws "^7.0.0"
+ whatwg-url "^8.5.0"
+ ws "^7.4.4"
xml-name-validator "^3.0.0"
jsesc@^2.5.1:
@@ -4562,13 +4646,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
resolved "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
- dependencies:
- jsonify "~0.0.0"
-
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-stringify-safe%2Fdownload%2Fjson-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
@@ -4617,18 +4694,13 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.10.0"
-jsx-ast-utils@^2.2.3:
- version "2.4.1"
- resolved "https://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e"
- integrity sha1-ERSkwSCUgdsGxpDCtPSIzGZfZX4=
+"jsx-ast-utils@^2.4.1 || ^3.0.0":
+ version "3.2.0"
+ resolved "https://registry.npm.taobao.org/jsx-ast-utils/download/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82"
+ integrity sha1-QRCNLOxAjDRTwbvopKrp4eK9j4I=
dependencies:
- array-includes "^3.1.1"
- object.assign "^4.1.0"
-
-kind-of@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44"
- integrity sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=
+ array-includes "^3.1.2"
+ object.assign "^4.1.2"
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
@@ -4671,7 +4743,15 @@ leven@^3.1.0:
resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=
-levn@^0.3.0, levn@~0.3.0:
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz?cache=0&sync_timestamp=1585967008825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flevn%2Fdownload%2Flevn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+levn@~0.3.0:
version "0.3.0"
resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
@@ -4699,17 +4779,12 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
-lodash.sortby@^4.7.0:
- version "4.7.0"
- resolved "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
- integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
-
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash.throttle%2Fdownload%2Flodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0:
+lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
version "4.17.15"
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=
@@ -4719,6 +4794,11 @@ lodash@^4.17.19:
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597337964525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=
+lodash@^4.7.0:
+ version "4.17.21"
+ resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
+
log-symbols@^2.2.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-symbols%2Fdownload%2Flog-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
@@ -4735,13 +4815,6 @@ logkitty@^0.7.1:
dayjs "^1.8.15"
yargs "^15.1.0"
-lolex@^5.0.0:
- version "5.1.2"
- resolved "https://registry.npm.taobao.org/lolex/download/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
- integrity sha1-lTaU0JjOfAe8XtbQ5CvGwMbVo2c=
- dependencies:
- "@sinonjs/commons" "^1.7.0"
-
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
@@ -4749,13 +4822,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-lru-cache@^4.0.1:
- version "4.1.5"
- resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
- integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=
dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
+ yallist "^4.0.0"
make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
@@ -4791,40 +4863,15 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
-merge-stream@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1"
- integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=
- dependencies:
- readable-stream "^2.0.1"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=
-metro-babel-register@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-babel-register/download/metro-babel-register-0.58.0.tgz#5c44786d49a044048df56cf476a2263491d4f53a"
- integrity sha1-XER4bUmgRASN9Wz0dqImNJHU9To=
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/register" "^7.0.0"
- core-js "^2.2.2"
- escape-string-regexp "^1.0.5"
-
-metro-babel-register@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-babel-register/download/metro-babel-register-0.59.0.tgz#2bcff65641b36794cf083ba732fbc46cf870fb43"
- integrity sha1-K8/2VkGzZ5TPCDunMvvEbPhw+0M=
+metro-babel-register@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-register/download/metro-babel-register-0.64.0.tgz#1a2d23f68da8b8ee42e78dca37ad21a5f4d3647d"
+ integrity sha1-Gi0j9o2ouO5C543KN60hpfTTZH0=
dependencies:
"@babel/core" "^7.0.0"
"@babel/plugin-proposal-class-properties" "^7.0.0"
@@ -4835,118 +4882,78 @@ metro-babel-register@0.59.0:
"@babel/register" "^7.0.0"
escape-string-regexp "^1.0.5"
-metro-babel-transformer@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.58.0.tgz#317c83b863cceb0573943815f1711fbcbe69b106"
- integrity sha1-MXyDuGPM6wVzlDgV8XEfvL5psQY=
+metro-babel-transformer@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.64.0.tgz#a21f8a989a5ea60c1109456e21bd4d9374194ea0"
+ integrity sha1-oh+KmJpepgwRCUVuIb1Nk3QZTqA=
dependencies:
"@babel/core" "^7.0.0"
- metro-source-map "0.58.0"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
-metro-babel-transformer@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-babel-transformer/download/metro-babel-transformer-0.59.0.tgz#dda99c75d831b00142c42c020c51c103b29f199d"
- integrity sha1-3amcddgxsAFCxCwCDFHBA7KfGZ0=
- dependencies:
- "@babel/core" "^7.0.0"
- metro-source-map "0.59.0"
+metro-cache-key@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-cache-key/download/metro-cache-key-0.64.0.tgz#98d0a94332453c4c52b74f72c07cc62a5c264c4f"
+ integrity sha1-mNCpQzJFPExSt09ywHzGKlwmTE8=
-metro-cache@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-cache/download/metro-cache-0.58.0.tgz#630ea0a4626dfb9591c71fdb85dce14b5e9a04ec"
- integrity sha1-Yw6gpGJt+5WRxx/bhdzhS16aBOw=
+metro-cache@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-cache/download/metro-cache-0.64.0.tgz#a769503e12521d9e9d95ce5840ffb2efdb4e8703"
+ integrity sha1-p2lQPhJSHZ6dlc5YQP+y79tOhwM=
dependencies:
- jest-serializer "^24.4.0"
- metro-core "0.58.0"
+ metro-core "0.64.0"
mkdirp "^0.5.1"
rimraf "^2.5.4"
-metro-config@0.58.0, metro-config@^0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-config/download/metro-config-0.58.0.tgz#1e24b43a5a00971d75662b1a0d3c04a13d4a1746"
- integrity sha1-HiS0OloAlx11ZisaDTwEoT1KF0Y=
+metro-config@0.64.0, metro-config@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-config/download/metro-config-0.64.0.tgz#b634fa05cffd06b1e50e4339c200f90a42924afb"
+ integrity sha1-tjT6Bc/9BrHlDkM5wgD5CkKSSvs=
dependencies:
cosmiconfig "^5.0.5"
- jest-validate "^24.7.0"
- metro "0.58.0"
- metro-cache "0.58.0"
- metro-core "0.58.0"
- pretty-format "^24.7.0"
+ jest-validate "^26.5.2"
+ metro "0.64.0"
+ metro-cache "0.64.0"
+ metro-core "0.64.0"
+ metro-runtime "0.64.0"
-metro-core@0.58.0, metro-core@^0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-core/download/metro-core-0.58.0.tgz#ad9f6645a2b439a3fbce7ce4e19b01b00375768a"
- integrity sha1-rZ9mRaK0OaP7znzk4ZsBsAN1doo=
+metro-core@0.64.0, metro-core@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-core/download/metro-core-0.64.0.tgz#7616b27acfe7baa476f6cd6bd9e70ae64fa62541"
+ integrity sha1-dhayes/nuqR29s1r2ecK5k+mJUE=
dependencies:
- jest-haste-map "^24.7.1"
+ jest-haste-map "^26.5.2"
lodash.throttle "^4.1.1"
- metro-resolver "0.58.0"
- wordwrap "^1.0.0"
+ metro-resolver "0.64.0"
-metro-inspector-proxy@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-inspector-proxy/download/metro-inspector-proxy-0.58.0.tgz#6fefb0cdf25655919d56c82ebe09cd26eb00e636"
- integrity sha1-b++wzfJWVZGdVsguvgnNJusA5jY=
+metro-hermes-compiler@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-hermes-compiler/download/metro-hermes-compiler-0.64.0.tgz#e6043d7aa924e5b2be99bd3f602e693685d15386"
+ integrity sha1-5gQ9eqkk5bK+mb0/YC5pNoXRU4Y=
+
+metro-inspector-proxy@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-inspector-proxy/download/metro-inspector-proxy-0.64.0.tgz#9a481b3f49773d5418e028178efec68f861bec88"
+ integrity sha1-mkgbP0l3PVQY4CgXjv7Gj4Yb7Ig=
dependencies:
connect "^3.6.5"
debug "^2.2.0"
- rxjs "^5.4.3"
ws "^1.1.5"
- yargs "^14.2.0"
+ yargs "^15.3.1"
-metro-minify-uglify@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.58.0.tgz#7e1066954bfd4f767ba6aca7feef676ca44c68b8"
- integrity sha1-fhBmlUv9T3Z7pqyn/u9nbKRMaLg=
+metro-minify-uglify@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-minify-uglify/download/metro-minify-uglify-0.64.0.tgz#da6ab4dda030e3211f5924e7f41ed308d466068f"
+ integrity sha1-2mq03aAw4yEfWSTn9B7TCNRmBo8=
dependencies:
uglify-es "^3.1.9"
-metro-react-native-babel-preset@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.58.0.tgz#18f48d33fe124280ffabc000ab8b42c488d762a2"
- integrity sha1-GPSNM/4SQoD/q8AAq4tCxIjXYqI=
- dependencies:
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-assign" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-preset@0.59.0, metro-react-native-babel-preset@^0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225"
- integrity sha1-IOAgvGrJhJ4Ud94TM9MD7UKroiU=
+metro-react-native-babel-preset@0.64.0, metro-react-native-babel-preset@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-preset/download/metro-react-native-babel-preset-0.64.0.tgz#76861408681dfda3c1d962eb31a8994918c976f8"
+ integrity sha1-doYUCGgd/aPB2WLrMaiZSRjJdvg=
dependencies:
+ "@babel/core" "^7.0.0"
"@babel/plugin-proposal-class-properties" "^7.0.0"
"@babel/plugin-proposal-export-default-from" "^7.0.0"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
@@ -4986,144 +4993,142 @@ metro-react-native-babel-preset@0.59.0, metro-react-native-babel-preset@^0.59.0:
"@babel/template" "^7.0.0"
react-refresh "^0.4.0"
-metro-react-native-babel-transformer@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.59.0.tgz#9b3dfd6ad35c6ef37fc4ce4d20a2eb67fabbb4be"
- integrity sha1-mz39atNcbvN/xM5NIKLrZ/q7tL4=
+metro-react-native-babel-transformer@0.64.0, metro-react-native-babel-transformer@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.64.0.tgz#eafef756972f20efdc51bd5361d55f8598355623"
+ integrity sha1-6v73VpcvIO/cUb1TYdVfhZg1ViM=
dependencies:
"@babel/core" "^7.0.0"
babel-preset-fbjs "^3.3.0"
- metro-babel-transformer "0.59.0"
- metro-react-native-babel-preset "0.59.0"
- metro-source-map "0.59.0"
+ metro-babel-transformer "0.64.0"
+ metro-react-native-babel-preset "0.64.0"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
-metro-react-native-babel-transformer@^0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-react-native-babel-transformer/download/metro-react-native-babel-transformer-0.58.0.tgz#5da0e5a1b83c01d11626905fa59f34fda53a21a5"
- integrity sha1-XaDlobg8AdEWJpBfpZ80/aU6IaU=
- dependencies:
- "@babel/core" "^7.0.0"
- babel-preset-fbjs "^3.3.0"
- metro-babel-transformer "0.58.0"
- metro-react-native-babel-preset "0.58.0"
- metro-source-map "0.58.0"
-
-metro-resolver@0.58.0, metro-resolver@^0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.58.0.tgz#4d03edc52e2e25d45f16688adf3b3f268ea60df9"
- integrity sha1-TQPtxS4uJdRfFmiK3zs/Jo6mDfk=
+metro-resolver@0.64.0, metro-resolver@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-resolver/download/metro-resolver-0.64.0.tgz#21126b44f31346ac2ce0b06b77ef65e8c9e2294a"
+ integrity sha1-IRJrRPMTRqws4LBrd+9l6MniKUo=
dependencies:
absolute-path "^0.0.0"
-metro-source-map@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.58.0.tgz#e951b99f4c653239ce9323bb08339c6f1978a112"
- integrity sha1-6VG5n0xlMjnOkyO7CDOcbxl4oRI=
+metro-runtime@0.64.0, metro-runtime@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-runtime/download/metro-runtime-0.64.0.tgz#cdaa1121d91041bf6345f2a69eb7c2fb289eff7b"
+ integrity sha1-zaoRIdkQQb9jRfKmnrfC+yie/3s=
+
+metro-source-map@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.64.0.tgz#4310e17c3d4539c6369688022494ad66fa4d39a1"
+ integrity sha1-QxDhfD1FOcY2logCJJStZvpNOaE=
dependencies:
"@babel/traverse" "^7.0.0"
"@babel/types" "^7.0.0"
invariant "^2.2.4"
- metro-symbolicate "0.58.0"
- ob1 "0.58.0"
+ metro-symbolicate "0.64.0"
+ nullthrows "^1.1.1"
+ ob1 "0.64.0"
source-map "^0.5.6"
vlq "^1.0.0"
-metro-source-map@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-source-map/download/metro-source-map-0.59.0.tgz#e9beb9fc51bfb4e060f95820cf1508fc122d23f7"
- integrity sha1-6b65/FG/tOBg+VggzxUI/BItI/c=
+metro-symbolicate@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-symbolicate/download/metro-symbolicate-0.64.0.tgz#405c21438ab553c29f6841da52ca76ee87bb06ac"
+ integrity sha1-QFwhQ4q1U8KfaEHaUsp27oe7Bqw=
dependencies:
+ invariant "^2.2.4"
+ metro-source-map "0.64.0"
+ nullthrows "^1.1.1"
+ source-map "^0.5.6"
+ through2 "^2.0.1"
+ vlq "^1.0.0"
+
+metro-transform-plugins@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-transform-plugins/download/metro-transform-plugins-0.64.0.tgz#41d3dce0f2966bbd79fea1ecff61bcc8a00e4665"
+ integrity sha1-QdPc4PKWa715/qHs/2G8yKAORmU=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.5.0"
+ "@babel/template" "^7.0.0"
"@babel/traverse" "^7.0.0"
+ nullthrows "^1.1.1"
+
+metro-transform-worker@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro-transform-worker/download/metro-transform-worker-0.64.0.tgz#f94429b2c42b13cb1c93be4c2e25e97f2d27ca60"
+ integrity sha1-+UQpssQrE8sck75MLiXpfy0nymA=
+ dependencies:
+ "@babel/core" "^7.0.0"
+ "@babel/generator" "^7.5.0"
+ "@babel/parser" "^7.0.0"
"@babel/types" "^7.0.0"
- invariant "^2.2.4"
- metro-symbolicate "0.59.0"
- ob1 "0.59.0"
- source-map "^0.5.6"
- vlq "^1.0.0"
+ babel-preset-fbjs "^3.3.0"
+ metro "0.64.0"
+ metro-babel-transformer "0.64.0"
+ metro-cache "0.64.0"
+ metro-cache-key "0.64.0"
+ metro-hermes-compiler "0.64.0"
+ metro-source-map "0.64.0"
+ metro-transform-plugins "0.64.0"
+ nullthrows "^1.1.1"
-metro-symbolicate@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro-symbolicate/download/metro-symbolicate-0.58.0.tgz#ba9fd52549c41fc1b656adaad7c8875726dd5abe"
- integrity sha1-up/VJUnEH8G2Vq2q18iHVybdWr4=
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.58.0"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
-metro-symbolicate@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/metro-symbolicate/download/metro-symbolicate-0.59.0.tgz#fc7f93957a42b02c2bfc57ed1e8f393f5f636a54"
- integrity sha1-/H+TlXpCsCwr/FftHo85P19jalQ=
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.59.0"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
-metro@0.58.0, metro@^0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/metro/download/metro-0.58.0.tgz#c037318c112f80dc96199780c8b401ab72cfd142"
- integrity sha1-wDcxjBEvgNyWGZeAyLQBq3LP0UI=
+metro@0.64.0, metro@^0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/metro/download/metro-0.64.0.tgz#0091a856cfbcc94dd576da563eee466e96186195"
+ integrity sha1-AJGoVs+8yU3VdtpWPu5GbpYYYZU=
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/core" "^7.0.0"
"@babel/generator" "^7.5.0"
"@babel/parser" "^7.0.0"
- "@babel/plugin-external-helpers" "^7.0.0"
"@babel/template" "^7.0.0"
"@babel/traverse" "^7.0.0"
"@babel/types" "^7.0.0"
absolute-path "^0.0.0"
+ accepts "^1.3.7"
async "^2.4.0"
- babel-preset-fbjs "^3.3.0"
- buffer-crc32 "^0.2.13"
- chalk "^2.4.1"
+ chalk "^4.0.0"
ci-info "^2.0.0"
- concat-stream "^1.6.0"
connect "^3.6.5"
debug "^2.2.0"
denodeify "^1.2.1"
- eventemitter3 "^3.0.0"
- fbjs "^1.0.0"
+ error-stack-parser "^2.0.6"
fs-extra "^1.0.0"
graceful-fs "^4.1.3"
image-size "^0.6.0"
invariant "^2.2.4"
- jest-haste-map "^24.7.1"
- jest-worker "^24.6.0"
- json-stable-stringify "^1.0.1"
+ jest-haste-map "^26.5.2"
+ jest-worker "^26.0.0"
lodash.throttle "^4.1.1"
- merge-stream "^1.0.1"
- metro-babel-register "0.58.0"
- metro-babel-transformer "0.58.0"
- metro-cache "0.58.0"
- metro-config "0.58.0"
- metro-core "0.58.0"
- metro-inspector-proxy "0.58.0"
- metro-minify-uglify "0.58.0"
- metro-react-native-babel-preset "0.58.0"
- metro-resolver "0.58.0"
- metro-source-map "0.58.0"
- metro-symbolicate "0.58.0"
- mime-types "2.1.11"
+ metro-babel-register "0.64.0"
+ metro-babel-transformer "0.64.0"
+ metro-cache "0.64.0"
+ metro-cache-key "0.64.0"
+ metro-config "0.64.0"
+ metro-core "0.64.0"
+ metro-hermes-compiler "0.64.0"
+ metro-inspector-proxy "0.64.0"
+ metro-minify-uglify "0.64.0"
+ metro-react-native-babel-preset "0.64.0"
+ metro-resolver "0.64.0"
+ metro-runtime "0.64.0"
+ metro-source-map "0.64.0"
+ metro-symbolicate "0.64.0"
+ metro-transform-plugins "0.64.0"
+ metro-transform-worker "0.64.0"
+ mime-types "^2.1.27"
mkdirp "^0.5.1"
node-fetch "^2.2.0"
nullthrows "^1.1.1"
- resolve "^1.5.0"
rimraf "^2.5.4"
serialize-error "^2.1.0"
source-map "^0.5.6"
- strip-ansi "^4.0.0"
+ strip-ansi "^6.0.0"
temp "0.8.3"
- throat "^4.1.0"
- wordwrap "^1.0.0"
- write-file-atomic "^1.2.0"
+ throat "^5.0.0"
ws "^1.1.5"
- xpipe "^1.0.5"
- yargs "^14.2.0"
+ yargs "^15.3.1"
micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
@@ -5157,17 +5162,10 @@ mime-db@1.42.0, "mime-db@>= 1.40.0 < 2":
resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
integrity sha1-PiUpB7THrbkGWXtLZWNics+ee6w=
-mime-db@~1.23.0:
- version "1.23.0"
- resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.23.0.tgz#a31b4070adaea27d732ea333740a64d0ec9a6659"
- integrity sha1-oxtAcK2uon1zLqMzdApk0OyaZlk=
-
-mime-types@2.1.11:
- version "2.1.11"
- resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.11.tgz?cache=0&sync_timestamp=1573568443876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.11.tgz#c259c471bda808a85d6cd193b430a5fae4473b3c"
- integrity sha1-wlnEcb2oCKhdbNGTtDCl+uRHOzw=
- dependencies:
- mime-db "~1.23.0"
+mime-db@1.47.0:
+ version "1.47.0"
+ resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c"
+ integrity sha1-jLMT5Zll08Bc+/iYkVomevRqM1w=
mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
version "2.1.25"
@@ -5176,6 +5174,13 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
dependencies:
mime-db "1.42.0"
+mime-types@^2.1.27:
+ version "2.1.30"
+ resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.30.tgz?cache=0&sync_timestamp=1617340242028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d"
+ integrity sha1-bnvotMR5gl+F7WMmaV23P5MF1i0=
+ dependencies:
+ mime-db "1.47.0"
+
mime@1.6.0:
version "1.6.0"
resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
@@ -5196,7 +5201,7 @@ mimic-fn@^2.1.0:
resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=
-minimatch@^3.0.4:
+minimatch@^3.0.2, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimatch%2Fdownload%2Fminimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
@@ -5218,21 +5223,6 @@ minimist@^1.2.5:
resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
- version "2.9.0"
- resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
- integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
-minizlib@^1.2.1:
- version "1.3.3"
- resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz?cache=0&sync_timestamp=1570255768285&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminizlib%2Fdownload%2Fminizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
- integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0=
- dependencies:
- minipass "^2.9.0"
-
mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz?cache=0&sync_timestamp=1561436244196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmixin-deep%2Fdownload%2Fmixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@@ -5241,7 +5231,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5.0, mkdirp@^0.5.1:
+mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
@@ -5263,21 +5253,6 @@ ms@^2.1.1:
resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=
-mute-stream@0.0.7:
- version "0.0.7"
- resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
- integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-
-mute-stream@0.0.8:
- version "0.0.8"
- resolved "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
- integrity sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=
-
-nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=
-
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -5300,32 +5275,32 @@ natural-compare@^1.4.0:
resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-needle@^2.2.1:
- version "2.4.0"
- resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneedle%2Fdownload%2Fneedle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
- integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw=
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=
+neo-async@^2.5.0:
+ version "2.6.2"
+ resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317569062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8=
+
nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=
-node-fetch@^1.0.1:
- version "1.7.3"
- resolved "https://registry.npm.taobao.org/node-fetch/download/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
- integrity sha1-mA9vcthSEaU0fGsrwYxbhMPrR+8=
+nocache@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/nocache/download/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
+ integrity sha1-Egyf/sQ7Vymx1d6IzXGqdaC6SR8=
+
+node-dir@^0.1.17:
+ version "0.1.17"
+ resolved "https://registry.npm.taobao.org/node-dir/download/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
+ integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=
dependencies:
- encoding "^0.1.11"
- is-stream "^1.0.1"
+ minimatch "^3.0.2"
node-fetch@^2.2.0, node-fetch@^2.6.0:
version "2.6.0"
@@ -5342,46 +5317,28 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.npm.taobao.org/node-modules-regexp/download/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-node-notifier@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npm.taobao.org/node-notifier/download/node-notifier-6.0.0.tgz?cache=0&sync_timestamp=1597311396290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-notifier%2Fdownload%2Fnode-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
- integrity sha1-zqMZ4GuqFt7sjOXNfxM8Ska2jhI=
+node-notifier@^8.0.0:
+ version "8.0.2"
+ resolved "https://registry.npm.taobao.org/node-notifier/download/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5"
+ integrity sha1-8xZ6OO8NLIqGaoPjGMG6Dv63AsU=
dependencies:
growly "^1.3.0"
- is-wsl "^2.1.1"
- semver "^6.3.0"
+ is-wsl "^2.2.0"
+ semver "^7.3.2"
shellwords "^0.1.1"
- which "^1.3.1"
+ uuid "^8.3.0"
+ which "^2.0.2"
-node-pre-gyp@^0.12.0:
- version "0.12.0"
- resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.12.0.tgz?cache=0&sync_timestamp=1572039159771&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-pre-gyp%2Fdownload%2Fnode-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha1-ObpLsUOdoDApX4meO1ILd4V2YUk=
- dependencies:
- detect-libc "^1.0.2"
- mkdirp "^0.5.1"
- needle "^2.2.1"
- nopt "^4.0.1"
- npm-packlist "^1.1.6"
- npmlog "^4.0.2"
- rc "^1.2.7"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^4"
+node-releases@^1.1.70:
+ version "1.1.71"
+ resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.71.tgz?cache=0&sync_timestamp=1614110313478&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
+ integrity sha1-yxM0sXmJaxyJ7P3UtyX7e738fbs=
node-stream-zip@^1.9.1:
version "1.11.3"
resolved "https://registry.npm.taobao.org/node-stream-zip/download/node-stream-zip-1.11.3.tgz#223892620b4889bce9782b256a76682631c507be"
integrity sha1-IjiSYgtIibzpeCslanZoJjHFB74=
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -5404,19 +5361,6 @@ normalize-path@^3.0.0:
resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=
-npm-bundled@^1.0.1:
- version "1.0.6"
- resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
- integrity sha1-57qarc75YrthJI+RchzZMrP+a90=
-
-npm-packlist@^1.1.6:
- version "1.4.6"
- resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4"
- integrity sha1-U7o+0R+FIwefFFc3bdN57k6kL/Q=
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -5431,26 +5375,11 @@ npm-run-path@^4.0.0:
dependencies:
path-key "^3.0.0"
-npmlog@^4.0.2:
- version "4.1.2"
- resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
- integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=
- dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.7.3"
- set-blocking "~2.0.0"
-
nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/nullthrows/download/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
integrity sha1-eBgliEOFaulx6uQgitfX6xmkMbE=
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
nwsapi@^2.2.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
@@ -5461,17 +5390,12 @@ oauth-sign@~0.9.0:
resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foauth-sign%2Fdownload%2Foauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=
-ob1@0.58.0:
- version "0.58.0"
- resolved "https://registry.npm.taobao.org/ob1/download/ob1-0.58.0.tgz#484a1e9a63a8b79d9ea6f3a83b2a42110faac973"
- integrity sha1-SEoemmOot52epvOoOypCEQ+qyXM=
+ob1@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/ob1/download/ob1-0.64.0.tgz#f254a55a53ca395c4f9090e28a85483eac5eba19"
+ integrity sha1-8lSlWlPKOVxPkJDiioVIPqxeuhk=
-ob1@0.59.0:
- version "0.59.0"
- resolved "https://registry.npm.taobao.org/ob1/download/ob1-0.59.0.tgz#ee103619ef5cb697f2866e3577da6f0ecd565a36"
- integrity sha1-7hA2Ge9ctpfyhm41d9pvDs1WWjY=
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -5485,10 +5409,10 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.7.0, object-inspect@^1.8.0:
- version "1.8.0"
- resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545673681&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
- integrity sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA=
+object-inspect@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804376575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
+ integrity sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
@@ -5512,23 +5436,34 @@ object.assign@^4.1.0:
has-symbols "^1.0.0"
object-keys "^1.0.11"
-object.entries@^1.1.1:
- version "1.1.2"
- resolved "https://registry.npm.taobao.org/object.entries/download/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add"
- integrity sha1-vHPwCstra7FsIDQ0sQ+afnl9Ot0=
+object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115467362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+ integrity sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=
dependencies:
+ call-bind "^1.0.0"
define-properties "^1.1.3"
- es-abstract "^1.17.5"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+object.entries@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/object.entries/download/object.entries-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.entries%2Fdownload%2Fobject.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6"
+ integrity sha1-xgHH8Wi2I3RUGgfdvT4tXk93EaY=
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
has "^1.0.3"
-object.fromentries@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npm.taobao.org/object.fromentries/download/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
- integrity sha1-SgnJubs4Q90PiazbUXp5TU81Wsk=
+object.fromentries@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npm.taobao.org/object.fromentries/download/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8"
+ integrity sha1-JuG6XEVxxcbwiQzvRHMGZFahILg=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
- function-bind "^1.1.1"
+ es-abstract "^1.18.0-next.2"
has "^1.0.3"
object.pick@^1.3.0:
@@ -5538,14 +5473,14 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
-object.values@^1.1.1:
- version "1.1.1"
- resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
- integrity sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=
+object.values@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.3.tgz?cache=0&sync_timestamp=1614058023442&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.values%2Fdownload%2Fobject.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee"
+ integrity sha1-6qix4XWJ8C9pjbCT98Yu4WmXQu4=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
- function-bind "^1.1.1"
+ es-abstract "^1.18.0-next.2"
has "^1.0.3"
on-finished@~2.3.0:
@@ -5588,7 +5523,7 @@ open@^6.2.0:
dependencies:
is-wsl "^1.1.0"
-optionator@^0.8.1, optionator@^0.8.2:
+optionator@^0.8.1:
version "0.8.3"
resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=
@@ -5600,6 +5535,18 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
word-wrap "~1.2.3"
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.9.1.tgz?cache=0&sync_timestamp=1585967009084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+ integrity sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
options@>=0.0.5:
version "0.0.6"
resolved "https://registry.npm.taobao.org/options/download/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
@@ -5617,24 +5564,11 @@ ora@^3.4.0:
strip-ansi "^5.2.0"
wcwidth "^1.0.1"
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
- integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+os-tmpdir@^1.0.0:
version "1.0.2"
resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA=
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
p-each-series@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/p-each-series/download/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
@@ -5645,11 +5579,6 @@ p-finally@^1.0.0:
resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-p-finally@^2.0.0:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
- integrity sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=
-
p-limit@^2.0.0, p-limit@^2.2.0:
version "2.2.1"
resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
@@ -5701,15 +5630,10 @@ parse-json@^5.0.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
-parse-node-version@^1.0.0:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/parse-node-version/download/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
- integrity sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs=
-
-parse5@5.1.0:
- version "5.1.0"
- resolved "https://registry.npm.taobao.org/parse5/download/parse5-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
- integrity sha1-xZNByXI/QUxFKXVWTHwApo1YrNI=
+parse5@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+ integrity sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=
parseurl@~1.3.3:
version "1.3.3"
@@ -5796,27 +5720,16 @@ plist@^3.0.1:
xmlbuilder "^9.0.7"
xmldom "0.1.x"
-plugin-error@^0.1.2:
- version "0.1.2"
- resolved "https://registry.npm.taobao.org/plugin-error/download/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace"
- integrity sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=
- dependencies:
- ansi-cyan "^0.1.1"
- ansi-red "^0.1.1"
- arr-diff "^1.0.1"
- arr-union "^2.0.1"
- extend-shallow "^1.1.2"
-
-pn@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
- integrity sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs=
-
posix-character-classes@^0.1.0:
version "0.1.1"
resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -5834,25 +5747,15 @@ prettier@^2.0.2:
resolved "https://registry.npm.taobao.org/prettier/download/prettier-2.1.1.tgz?cache=0&sync_timestamp=1598414304683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6"
integrity sha1-2Uhd1eSZ2qbLVHAjuHps9RvuN9Y=
-pretty-format@^24.7.0, pretty-format@^24.9.0:
- version "24.9.0"
- resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-24.9.0.tgz?cache=0&sync_timestamp=1566444331777&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
- integrity sha1-EvrDGzcBmk7qPBGqmpWet2KKp8k=
+pretty-format@^26.5.2, pretty-format@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
+ integrity sha1-41wnBfFMt/4v6U+geDRbREEg/JM=
dependencies:
- "@jest/types" "^24.9.0"
- ansi-regex "^4.0.0"
- ansi-styles "^3.2.0"
- react-is "^16.8.4"
-
-pretty-format@^25.1.0, pretty-format@^25.2.0, pretty-format@^25.5.0:
- version "25.5.0"
- resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
- integrity sha1-eHPB13T2gsNLjUi2dDor8qxVeRo=
- dependencies:
- "@jest/types" "^25.5.0"
+ "@jest/types" "^26.6.2"
ansi-regex "^5.0.0"
ansi-styles "^4.0.0"
- react-is "^16.12.0"
+ react-is "^17.0.1"
private@^0.1.6:
version "0.1.8"
@@ -5869,13 +5772,6 @@ progress@^2.0.0:
resolved "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=
-promise@^7.1.1:
- version "7.3.1"
- resolved "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
- integrity sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=
- dependencies:
- asap "~2.0.3"
-
promise@^8.0.3:
version "8.1.0"
resolved "https://registry.npm.taobao.org/promise/download/promise-8.1.0.tgz?cache=0&sync_timestamp=1583147444888&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpromise%2Fdownload%2Fpromise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e"
@@ -5891,7 +5787,15 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.3"
-prop-types@^15.6.2, prop-types@^15.7.2:
+prompts@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.npm.taobao.org/prompts/download/prompts-2.4.1.tgz?cache=0&sync_timestamp=1617241051265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprompts%2Fdownload%2Fprompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+ integrity sha1-vv07EZW6BS+f0v3opIbE6C7nf2E=
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU=
@@ -5900,16 +5804,16 @@ prop-types@^15.6.2, prop-types@^15.7.2:
object-assign "^4.1.1"
react-is "^16.8.1"
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
psl@^1.1.28:
version "1.4.0"
resolved "https://registry.npm.taobao.org/psl/download/psl-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2"
integrity sha1-XdJhVs22n6H9uKsZkWZ9P4DO18I=
+psl@^1.1.33:
+ version "1.8.0"
+ resolved "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -5933,16 +5837,6 @@ range-parser@~1.2.1:
resolved "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
react-devtools-core@^4.6.0:
version "4.8.2"
resolved "https://registry.npm.taobao.org/react-devtools-core/download/react-devtools-core-4.8.2.tgz#4465f2e8de7795564aa20f28b2f3a9737586db23"
@@ -5951,16 +5845,25 @@ react-devtools-core@^4.6.0:
shell-quote "^1.6.1"
ws "^7"
-react-is@^16.12.0, react-is@^16.8.6:
- version "16.13.1"
- resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.13.1.tgz?cache=0&sync_timestamp=1598612915869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
- integrity sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=
+"react-is@^16.12.0 || ^17.0.0", react-is@^17.0.1:
+ version "17.0.2"
+ resolved "https://registry.npm.taobao.org/react-is/download/react-is-17.0.2.tgz?cache=0&sync_timestamp=1617901013869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-is%2Fdownload%2Freact-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ integrity sha1-5pHUqOnHiTZWVVOas3J2Kw77VPA=
-react-is@^16.8.1, react-is@^16.8.4:
+react-is@^16.8.1:
version "16.12.0"
resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
integrity sha1-LMD+D7p0LZf9UnxCoTvsTusGJBw=
+react-native-codegen@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npm.taobao.org/react-native-codegen/download/react-native-codegen-0.0.6.tgz#b3173faa879cf71bfade8d030f9c4698388f6909"
+ integrity sha1-sxc/qoec9xv63o0DD5xGmDiPaQk=
+ dependencies:
+ flow-parser "^0.121.0"
+ jscodeshift "^0.11.0"
+ nullthrows "^1.1.1"
+
"react-native-update@link:../..":
version "0.0.0"
uid ""
@@ -5973,62 +5876,74 @@ react-native-webview@^10.9.2:
escape-string-regexp "2.0.0"
invariant "2.2.4"
-react-native@0.63.3:
- version "0.63.3"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.63.3.tgz#4a7f6540e049ff41810887bbd1125abc4672f3bf"
- integrity sha512-71wq13uNo5W8QVQnFlnzZ3AD+XgUBYGhpsxysQFW/hJ8GAt/J5o+Bvhy81FXichp6IBDJDh/JgfHH2gNji8dFA==
+react-native@0.64.0:
+ version "0.64.0"
+ resolved "https://registry.npm.taobao.org/react-native/download/react-native-0.64.0.tgz#c3bde5b638bf8bcf12bae6e094930d39cb942ab7"
+ integrity sha1-w73ltji/i88SuubglJMNOcuUKrc=
dependencies:
- "@babel/runtime" "^7.0.0"
- "@react-native-community/cli" "^4.10.0"
- "@react-native-community/cli-platform-android" "^4.10.0"
- "@react-native-community/cli-platform-ios" "^4.10.0"
+ "@jest/create-cache-key-function" "^26.5.0"
+ "@react-native-community/cli" "^5.0.1-alpha.0"
+ "@react-native-community/cli-platform-android" "^5.0.1-alpha.0"
+ "@react-native-community/cli-platform-ios" "^5.0.1-alpha.0"
+ "@react-native/assets" "1.0.0"
+ "@react-native/normalize-color" "1.0.0"
+ "@react-native/polyfills" "1.0.0"
abort-controller "^3.0.0"
anser "^1.4.9"
base64-js "^1.1.2"
event-target-shim "^5.0.1"
- fbjs "^1.0.0"
- fbjs-scripts "^1.1.0"
- hermes-engine "~0.5.0"
+ hermes-engine "~0.7.0"
invariant "^2.2.4"
jsc-android "^245459.0.0"
- metro-babel-register "0.59.0"
- metro-react-native-babel-transformer "0.59.0"
- metro-source-map "0.59.0"
+ metro-babel-register "0.64.0"
+ metro-react-native-babel-transformer "0.64.0"
+ metro-runtime "0.64.0"
+ metro-source-map "0.64.0"
nullthrows "^1.1.1"
- pretty-format "^24.9.0"
+ pretty-format "^26.5.2"
promise "^8.0.3"
prop-types "^15.7.2"
react-devtools-core "^4.6.0"
+ react-native-codegen "^0.0.6"
react-refresh "^0.4.0"
regenerator-runtime "^0.13.2"
- scheduler "0.19.1"
+ scheduler "^0.20.1"
+ shelljs "^0.8.4"
stacktrace-parser "^0.1.3"
use-subscription "^1.0.0"
whatwg-fetch "^3.0.0"
+ ws "^6.1.4"
react-refresh@^0.4.0:
version "0.4.2"
resolved "https://registry.npm.taobao.org/react-refresh/download/react-refresh-0.4.2.tgz#54a277a6caaac2803d88f1d6f13c1dcfbd81e334"
integrity sha1-VKJ3psqqwoA9iPHW8Twdz72B4zQ=
-react-test-renderer@16.13.1:
- version "16.13.1"
- resolved "https://registry.npm.taobao.org/react-test-renderer/download/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
- integrity sha1-3iXqNY2QEmBt5R4BLZdC5/Deq8E=
+react-shallow-renderer@^16.13.1:
+ version "16.14.1"
+ resolved "https://registry.npm.taobao.org/react-shallow-renderer/download/react-shallow-renderer-16.14.1.tgz#bf0d02df8a519a558fd9b8215442efa5c840e124"
+ integrity sha1-vw0C34pRmlWP2bghVELvpchA4SQ=
dependencies:
object-assign "^4.1.1"
- prop-types "^15.6.2"
- react-is "^16.8.6"
- scheduler "^0.19.1"
+ react-is "^16.12.0 || ^17.0.0"
-react@16.13.1:
- version "16.13.1"
- resolved "https://registry.npm.taobao.org/react/download/react-16.13.1.tgz?cache=0&sync_timestamp=1598612919839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact%2Fdownload%2Freact-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
- integrity sha1-LoGIIvGpdDEiwGPWQQ2FweOv5I4=
+react-test-renderer@17.0.1:
+ version "17.0.1"
+ resolved "https://registry.npm.taobao.org/react-test-renderer/download/react-test-renderer-17.0.1.tgz#3187e636c3063e6ae498aedf21ecf972721574c7"
+ integrity sha1-MYfmNsMGPmrkmK7fIez5cnIVdMc=
+ dependencies:
+ object-assign "^4.1.1"
+ react-is "^17.0.1"
+ react-shallow-renderer "^16.13.1"
+ scheduler "^0.20.1"
+
+react@17.0.1:
+ version "17.0.1"
+ resolved "https://registry.npm.taobao.org/react/download/react-17.0.1.tgz?cache=0&sync_timestamp=1617901072698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact%2Fdownload%2Freact-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
+ integrity sha1-bgYAQWvVdXTj+G2S7bo9kAhyYSc=
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
- prop-types "^15.6.2"
read-pkg-up@^7.0.1:
version "7.0.1"
@@ -6049,7 +5964,7 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
-readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@~2.3.6:
+readable-stream@~2.3.6:
version "2.3.6"
resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
integrity sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=
@@ -6062,10 +5977,22 @@ readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.2.2, readable
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-realpath-native@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/realpath-native/download/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
- integrity sha1-c3esQptuH9WZ3DjQjtlC0Ne+uGY=
+recast@^0.20.3:
+ version "0.20.4"
+ resolved "https://registry.npm.taobao.org/recast/download/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc"
+ integrity sha1-21WYPqxwxGs//5bI5GfWX/tKerw=
+ dependencies:
+ ast-types "0.14.2"
+ esprima "~4.0.0"
+ source-map "~0.6.1"
+ tslib "^2.0.1"
+
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npm.taobao.org/rechoir/download/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
+ dependencies:
+ resolve "^1.1.6"
regenerate-unicode-properties@^8.1.0:
version "8.1.0"
@@ -6104,20 +6031,15 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexp.prototype.flags@^1.3.0:
- version "1.3.0"
- resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388236739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
- integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U=
+regexp.prototype.flags@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610725814145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
+ integrity sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
-regexpp@^2.0.1:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz?cache=0&sync_timestamp=1567134130597&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
- integrity sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=
-
-regexpp@^3.0.0:
+regexpp@^3.0.0, regexpp@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/regexpp/download/regexpp-3.1.0.tgz?cache=0&sync_timestamp=1586019316504&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpp%2Fdownload%2Fregexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
integrity sha1-IG0K0KVkjP+9uK5GQ489xRyfeOI=
@@ -6168,7 +6090,7 @@ request-promise-core@1.1.4:
dependencies:
lodash "^4.17.19"
-request-promise-native@^1.0.7:
+request-promise-native@^1.0.9:
version "1.0.9"
resolved "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
integrity sha1-5AcSBSal79yaObKKVnm/R7nZ3Cg=
@@ -6177,7 +6099,7 @@ request-promise-native@^1.0.7:
stealthy-require "^1.1.1"
tough-cookie "^2.3.3"
-request@^2.88.0:
+request@^2.88.2:
version "2.88.2"
resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
integrity sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=
@@ -6240,25 +6162,36 @@ resolve-url@^0.2.1:
resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@1.1.7:
- version "1.1.7"
- resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz?cache=0&sync_timestamp=1564641467397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
- integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
+resolve@^1.1.6, resolve@^1.18.1:
+ version "1.20.0"
+ resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
-resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
+resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1:
version "1.12.0"
resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.12.0.tgz?cache=0&sync_timestamp=1564641467397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
integrity sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=
dependencies:
path-parse "^1.0.6"
-resolve@^1.12.0, resolve@^1.15.1, resolve@^1.17.0:
+resolve@^1.12.0:
version "1.17.0"
resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&sync_timestamp=1587596377049&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=
dependencies:
path-parse "^1.0.6"
+resolve@^2.0.0-next.3:
+ version "2.0.0-next.3"
+ resolved "https://registry.npm.taobao.org/resolve/download/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
+ integrity sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY=
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
@@ -6267,27 +6200,19 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
-restore-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
- integrity sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=
- dependencies:
- onetime "^5.1.0"
- signal-exit "^3.0.2"
-
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=
-rimraf@2.6.3:
+rimraf@2.6.3, rimraf@~2.6.2:
version "2.6.3"
resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs=
dependencies:
glob "^7.1.3"
-rimraf@^2.5.4, rimraf@^2.6.1:
+rimraf@^2.5.4:
version "2.7.1"
resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=
@@ -6311,39 +6236,6 @@ rsvp@^4.8.4:
resolved "https://registry.npm.taobao.org/rsvp/download/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha1-yPFVMR0Wf2jyHhaN9x7FsIMRNzQ=
-run-async@^2.2.0:
- version "2.3.0"
- resolved "https://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
- integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
- dependencies:
- is-promise "^2.1.0"
-
-rx-lite-aggregates@^4.0.8:
- version "4.0.8"
- resolved "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
- integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
- dependencies:
- rx-lite "*"
-
-rx-lite@*, rx-lite@^4.0.8:
- version "4.0.8"
- resolved "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
- integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
-
-rxjs@^5.4.3:
- version "5.5.12"
- resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
- integrity sha1-b6YbinfD15PbrycL7i9D9lLXQcw=
- dependencies:
- symbol-observable "1.0.1"
-
-rxjs@^6.4.0:
- version "6.5.3"
- resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
- integrity sha1-UQ4mMX9NuRp+sd532d2boKSJmjo=
- dependencies:
- tslib "^1.9.0"
-
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -6381,36 +6273,43 @@ sane@^4.0.3:
minimist "^1.1.1"
walker "~1.0.5"
-sax@^1.2.1, sax@^1.2.4:
+sax@^1.2.1:
version "1.2.4"
resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk=
-saxes@^3.1.9:
- version "3.1.11"
- resolved "https://registry.npm.taobao.org/saxes/download/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
- integrity sha1-1Z0f0zLskq2YouCy7mRHAjhLHFs=
+saxes@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npm.taobao.org/saxes/download/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
+ integrity sha1-7rq5U/o7dgjb6U5drbFciI+maW0=
dependencies:
- xmlchars "^2.1.1"
+ xmlchars "^2.2.0"
-scheduler@0.19.1, scheduler@^0.19.1:
- version "0.19.1"
- resolved "https://registry.npm.taobao.org/scheduler/download/scheduler-0.19.1.tgz?cache=0&sync_timestamp=1598612918129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscheduler%2Fdownload%2Fscheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
- integrity sha1-Tz4u0sGn1laB9MhU+oxaHMtA8ZY=
+scheduler@^0.20.1:
+ version "0.20.2"
+ resolved "https://registry.npm.taobao.org/scheduler/download/scheduler-0.20.2.tgz?cache=0&sync_timestamp=1617901111952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscheduler%2Fdownload%2Fscheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+ integrity sha1-S67jlDbjSqk7SHS93L8P6Li1DpE=
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
-"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=
-semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
+semver@^6.0.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=
+semver@^7.2.1:
+ version "7.3.5"
+ resolved "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+ integrity sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=
+ dependencies:
+ lru-cache "^6.0.0"
+
semver@^7.3.2:
version "7.3.2"
resolved "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886267748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
@@ -6450,7 +6349,7 @@ serve-static@^1.13.1:
parseurl "~1.3.3"
send "0.17.1"
-set-blocking@^2.0.0, set-blocking@~2.0.0:
+set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
@@ -6465,11 +6364,6 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setimmediate@^1.0.5:
- version "1.0.5"
- resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
- integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
-
setprototypeof@1.1.1:
version "1.1.1"
resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
@@ -6514,18 +6408,28 @@ shell-quote@^1.6.1:
resolved "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=
+shelljs@^0.8.4:
+ version "0.8.4"
+ resolved "https://registry.npm.taobao.org/shelljs/download/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
+ integrity sha1-3naE/ut2f4cWsyYHiooAh1iQ48I=
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha1-1rkYHBpI05cyTISHHvvPxz/AZUs=
-side-channel@^1.0.2:
- version "1.0.3"
- resolved "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3"
- integrity sha1-zcRrBXVQu6tjcGIQg4311MGVGcM=
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/side-channel/download/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha1-785cj9wQTudRslxY1CkAEfpeos8=
dependencies:
- es-abstract "^1.18.0-next.0"
- object-inspect "^1.8.0"
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
@@ -6546,10 +6450,10 @@ sisteransi@^1.0.3:
resolved "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.4.tgz?cache=0&sync_timestamp=1573411519991&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsisteransi%2Fdownload%2Fsisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3"
integrity sha1-OGcT8e9ojHwDBNxMBjKJiUHK0uM=
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
- integrity sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npm.taobao.org/sisteransi/download/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha1-E01oEpd1ZDfMBcoBNw06elcQde0=
slash@^3.0.0:
version "3.0.0"
@@ -6565,11 +6469,6 @@ slice-ansi@^2.0.0, slice-ansi@^2.1.0:
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
-slide@^1.1.5:
- version "1.1.6"
- resolved "https://registry.npm.taobao.org/slide/download/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
- integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=
-
snapdragon-node@^2.0.1:
version "2.1.1"
resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -6692,10 +6591,17 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
-stack-utils@^1.0.1:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
- integrity sha1-M+ujiXeIVYvr/C2wWdwVjsNs67g=
+stack-utils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.npm.taobao.org/stack-utils/download/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277"
+ integrity sha1-zV8DASb/EWt4zLPAJ/4wJxO2Enc=
+ dependencies:
+ escape-string-regexp "^2.0.0"
+
+stackframe@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
+ integrity sha1-UkKUktY8YuuYmATBFVLj0i53kwM=
stacktrace-parser@^0.1.3:
version "0.1.7"
@@ -6727,32 +6633,15 @@ stream-buffers@~2.2.0:
resolved "https://registry.npm.taobao.org/stream-buffers/download/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
integrity sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=
-string-length@^3.1.0:
- version "3.1.0"
- resolved "https://registry.npm.taobao.org/string-length/download/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
- integrity sha1-EH74wjRW4Yeoq9SmEWL/SsbiWDc=
+string-length@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npm.taobao.org/string-length/download/string-length-4.0.2.tgz?cache=0&sync_timestamp=1615964368100&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-length%2Fdownload%2Fstring-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"
+ integrity sha1-qKjce9XBqCubPIuH4SX2aHG25Xo=
dependencies:
- astral-regex "^1.0.0"
- strip-ansi "^5.2.0"
+ char-regex "^1.0.2"
+ strip-ansi "^6.0.0"
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-"string-width@^1.0.2 || 2", string-width@^2.1.0:
- version "2.1.1"
- resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string-width@^3.0.0, string-width@^3.1.0:
+string-width@^3.0.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE=
@@ -6770,33 +6659,34 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
-string.prototype.matchall@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npm.taobao.org/string.prototype.matchall/download/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
- integrity sha1-SLtRAyb7n962ozzqqBpuoE73ZI4=
+string.prototype.matchall@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.npm.taobao.org/string.prototype.matchall/download/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29"
+ integrity sha1-YI8lXpPgchB/XeBm+Bot+3jPayk=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.0"
+ es-abstract "^1.18.0-next.2"
has-symbols "^1.0.1"
- internal-slot "^1.0.2"
- regexp.prototype.flags "^1.3.0"
- side-channel "^1.0.2"
+ internal-slot "^1.0.3"
+ regexp.prototype.flags "^1.3.1"
+ side-channel "^1.0.4"
-string.prototype.trimend@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465675852&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
- integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=
+string.prototype.trimend@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+ integrity sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.5"
-string.prototype.trimstart@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
- integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=
+string.prototype.trimstart@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz?cache=0&sync_timestamp=1614127461366&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+ integrity sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=
dependencies:
+ call-bind "^1.0.2"
define-properties "^1.1.3"
- es-abstract "^1.17.5"
string_decoder@~1.1.1:
version "1.1.1"
@@ -6805,20 +6695,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -6848,15 +6724,10 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=
-strip-json-comments@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
- integrity sha1-hXE5dakfuHvxswXMp3OV5A0qZKc=
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1594567665371&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=
sudo-prompt@^9.0.0:
version "9.1.1"
@@ -6870,13 +6741,6 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^6.1.0:
- version "6.1.0"
- resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557363805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
- integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=
- dependencies:
- has-flag "^3.0.0"
-
supports-color@^7.0.0, supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611787364&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
@@ -6892,12 +6756,7 @@ supports-hyperlinks@^2.0.0:
has-flag "^4.0.0"
supports-color "^7.0.0"
-symbol-observable@1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
- integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
-
-symbol-tree@^3.2.2:
+symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=
@@ -6912,19 +6771,6 @@ table@^5.2.3:
slice-ansi "^2.1.0"
string-width "^3.0.0"
-tar@^4:
- version "4.4.13"
- resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz?cache=0&sync_timestamp=1570258715063&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
- integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=
- dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.8.6"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
-
temp@0.8.3:
version "0.8.3"
resolved "https://registry.npm.taobao.org/temp/download/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
@@ -6933,6 +6779,13 @@ temp@0.8.3:
os-tmpdir "^1.0.0"
rimraf "~2.2.6"
+temp@^0.8.1:
+ version "0.8.4"
+ resolved "https://registry.npm.taobao.org/temp/download/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
+ integrity sha1-jJejOkdwBy4KBfkZOWx2ZafdWfI=
+ dependencies:
+ rimraf "~2.6.2"
+
terminal-link@^2.0.0:
version "2.1.1"
resolved "https://registry.npm.taobao.org/terminal-link/download/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
@@ -6955,17 +6808,12 @@ text-table@^0.2.0:
resolved "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throat@^4.1.0:
- version "4.1.0"
- resolved "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
- integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
-
throat@^5.0.0:
version "5.0.0"
resolved "https://registry.npm.taobao.org/throat/download/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
integrity sha1-xRmSNYA6rRh1SmZ9ZZtecs4Wdks=
-through2@^2.0.0, through2@^2.0.1:
+through2@^2.0.1:
version "2.0.5"
resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=
@@ -6973,23 +6821,6 @@ through2@^2.0.0, through2@^2.0.1:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@^2.3.6:
- version "2.3.8"
- resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-time-stamp@^1.0.0:
- version "1.1.0"
- resolved "https://registry.npm.taobao.org/time-stamp/download/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
- integrity sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- integrity sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=
- dependencies:
- os-tmpdir "~1.0.2"
-
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
@@ -7045,27 +6876,32 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
- integrity sha1-nfT1fnOcJpMKAYGEiH9K233Kc7I=
+tough-cookie@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
+ integrity sha1-2CIjTuyogvmR8PkIgkrSYi3b7OQ=
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.1.2"
+
+tr46@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npm.taobao.org/tr46/download/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
+ integrity sha1-Ayc1ht7xWVrgj+2zjXczzukdJHk=
dependencies:
- ip-regex "^2.1.0"
- psl "^1.1.28"
punycode "^2.1.1"
-tr46@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
- integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
- dependencies:
- punycode "^2.1.0"
-
-tslib@^1.8.1, tslib@^1.9.0:
+tslib@^1.8.1:
version "1.10.0"
resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=
+tslib@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.npm.taobao.org/tslib/download/tslib-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
+ integrity sha1-+yxHWXfjXiQTEe3iaTzuHsZpj1w=
+
tsutils@^3.17.1:
version "3.17.1"
resolved "https://registry.npm.taobao.org/tsutils/download/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
@@ -7085,6 +6921,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=
+ dependencies:
+ prelude-ls "^1.2.1"
+
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
@@ -7124,16 +6967,6 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-ua-parser-js@^0.7.18:
- version "0.7.20"
- resolved "https://registry.npm.taobao.org/ua-parser-js/download/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
- integrity sha1-dScXi4L2pioPJD0flP0w4+PCEJg=
-
uglify-es@^3.1.9:
version "3.3.9"
resolved "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
@@ -7147,6 +6980,16 @@ ultron@1.0.x:
resolved "https://registry.npm.taobao.org/ultron/download/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
+unbox-primitive@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+ integrity sha1-CF4hViXsMWJXTciFmr7nilmxRHE=
+ dependencies:
+ function-bind "^1.1.1"
+ has-bigints "^1.0.1"
+ has-symbols "^1.0.2"
+ which-boxed-primitive "^1.0.2"
+
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -7180,7 +7023,7 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
-universalify@^0.1.0:
+universalify@^0.1.0, universalify@^0.1.2:
version "0.1.2"
resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=
@@ -7242,15 +7085,20 @@ uuid@^3.3.2:
resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
integrity sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY=
+uuid@^8.3.0:
+ version "8.3.2"
+ resolved "https://registry.npm.taobao.org/uuid/download/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=
+
v8-compile-cache@^2.0.3:
version "2.1.0"
resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
integrity sha1-4U3jezGm0ZT1aQ1n78Tn9vxqsw4=
-v8-to-istanbul@^4.1.3:
- version "4.1.4"
- resolved "https://registry.npm.taobao.org/v8-to-istanbul/download/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6"
- integrity sha1-uXk28hwOLZmW1JheXFFW6dTknNY=
+v8-to-istanbul@^7.0.0:
+ version "7.1.1"
+ resolved "https://registry.npm.taobao.org/v8-to-istanbul/download/v8-to-istanbul-7.1.1.tgz?cache=0&sync_timestamp=1617080441752&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-to-istanbul%2Fdownload%2Fv8-to-istanbul-7.1.1.tgz#04bfd1026ba4577de5472df4f5e89af49de5edda"
+ integrity sha1-BL/RAmukV33lRy309eia9J3l7do=
dependencies:
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
@@ -7283,20 +7131,18 @@ vlq@^1.0.0:
resolved "https://registry.npm.taobao.org/vlq/download/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468"
integrity sha1-wAP258C0we3WI/1u5Qu8DWod5Gg=
-w3c-hr-time@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
- integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+w3c-hr-time@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=
dependencies:
- browser-process-hrtime "^0.1.2"
+ browser-process-hrtime "^1.0.0"
-w3c-xmlserializer@^1.1.2:
- version "1.1.2"
- resolved "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
- integrity sha1-MEhcp9cKb9BSQgo9Ev2Q5jOc55Q=
+w3c-xmlserializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
+ integrity sha1-PnEEoFt1FGzGD1ZDgLf2g6zxAgo=
dependencies:
- domexception "^1.0.1"
- webidl-conversions "^4.0.2"
xml-name-validator "^3.0.0"
walker@^1.0.7, walker@~1.0.5:
@@ -7313,43 +7159,59 @@ wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
-webidl-conversions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
- integrity sha1-qFWYCx8LazWbodXZ+zmulB+qY60=
+webidl-conversions@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
+ integrity sha1-rlnIoAsSFUOirMZcBDT1ew/BGv8=
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
+webidl-conversions@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
+ integrity sha1-kRG01+qArNQPUnDWZmIa+ni2lRQ=
+
+whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
integrity sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=
dependencies:
iconv-lite "0.4.24"
-whatwg-fetch@>=0.10.0, whatwg-fetch@^3.0.0:
+whatwg-fetch@^3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/whatwg-fetch/download/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb"
integrity sha1-/IBORYzEYACbGiuWa8iBfSV4rvs=
-whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
+whatwg-mimetype@^2.3.0:
version "2.3.0"
resolved "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
integrity sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=
-whatwg-url@^7.0.0:
- version "7.1.0"
- resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
- integrity sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY=
+whatwg-url@^8.0.0, whatwg-url@^8.5.0:
+ version "8.5.0"
+ resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3"
+ integrity sha1-d1K4Rk/AkD/siaqYRvye/gc1H9M=
dependencies:
- lodash.sortby "^4.7.0"
- tr46 "^1.0.1"
- webidl-conversions "^4.0.2"
+ lodash "^4.7.0"
+ tr46 "^2.0.2"
+ webidl-conversions "^6.1.0"
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz?cache=0&sync_timestamp=1614855818709&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-boxed-primitive%2Fdownload%2Fwhich-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+ integrity sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@^1.2.9, which@^1.3.1:
+which@^1.2.9:
version "1.3.1"
resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=
@@ -7363,32 +7225,11 @@ which@^2.0.1, which@^2.0.2:
dependencies:
isexe "^2.0.0"
-wide-align@^1.1.0:
- version "1.1.3"
- resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
- integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=
- dependencies:
- string-width "^1.0.2 || 2"
-
-word-wrap@~1.2.3:
+word-wrap@^1.2.3, word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=
-wordwrap@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
- integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
-
-wrap-ansi@^5.1.0:
- version "5.1.0"
- resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
- integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=
- dependencies:
- ansi-styles "^3.2.0"
- string-width "^3.0.0"
- strip-ansi "^5.0.0"
-
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
@@ -7403,14 +7244,14 @@ wrappy@1:
resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^1.2.0:
- version "1.3.4"
- resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-1.3.4.tgz?cache=0&sync_timestamp=1571200001498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrite-file-atomic%2Fdownload%2Fwrite-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
- integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=
+write-file-atomic@^2.3.0:
+ version "2.4.3"
+ resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
+ integrity sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
- slide "^1.1.5"
+ signal-exit "^3.0.2"
write-file-atomic@^3.0.0:
version "3.0.3"
@@ -7437,11 +7278,23 @@ ws@^1.1.0, ws@^1.1.5:
options ">=0.0.5"
ultron "1.0.x"
-ws@^7, ws@^7.0.0:
+ws@^6.1.4:
+ version "6.2.1"
+ resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1615064692884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
+ integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=
+ dependencies:
+ async-limiter "~1.0.0"
+
+ws@^7:
version "7.3.1"
resolved "https://registry.npm.taobao.org/ws/download/ws-7.3.1.tgz?cache=0&sync_timestamp=1593925670988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
integrity sha1-0FR79n985PEqct/jEmLGjX3FUcg=
+ws@^7.4.4:
+ version "7.4.4"
+ resolved "https://registry.npm.taobao.org/ws/download/ws-7.4.4.tgz?cache=0&sync_timestamp=1615064692884&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59"
+ integrity sha1-ODvJdCyyAikskHfOq29gR7F/LVk=
+
xcode@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/xcode/download/xcode-2.0.0.tgz#134f1f94c26fbfe8a9aaa9724bfb2772419da1a2"
@@ -7460,7 +7313,7 @@ xmlbuilder@^9.0.7:
resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
-xmlchars@^2.1.1:
+xmlchars@^2.2.0:
version "2.2.0"
resolved "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxmlchars%2Fdownload%2Fxmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=
@@ -7477,18 +7330,6 @@ xmldom@0.1.x:
resolved "https://registry.npm.taobao.org/xmldom/download/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
integrity sha1-1QH5ezvbQDr4757MIFcxh6rawOk=
-xpipe@^1.0.5:
- version "1.0.5"
- resolved "https://registry.npm.taobao.org/xpipe/download/xpipe-1.0.5.tgz#8dd8bf45fc3f7f55f0e054b878f43a62614dafdf"
- integrity sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98=
-
-xregexp@^4.3.0:
- version "4.3.0"
- resolved "https://registry.npm.taobao.org/xregexp/download/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50"
- integrity sha1-fpLnPZF0qZpZdD9npM6HmgS1rlA=
- dependencies:
- "@babel/runtime-corejs3" "^7.8.3"
-
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxtend%2Fdownload%2Fxtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@@ -7499,23 +7340,10 @@ y18n@^4.0.0:
resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms=
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
-yallist@^3.0.0, yallist@^3.0.3:
- version "3.1.1"
- resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=
-
-yargs-parser@^15.0.1:
- version "15.0.1"
- resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-15.0.1.tgz?cache=0&sync_timestamp=1598505163672&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3"
- integrity sha1-VHhq9AuCDcsvuAJbEbTWWddjI7M=
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=
yargs-parser@^18.1.2:
version "18.1.3"
@@ -7525,24 +7353,7 @@ yargs-parser@^18.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs@^14.2.0:
- version "14.2.3"
- resolved "https://registry.npm.taobao.org/yargs/download/yargs-14.2.3.tgz?cache=0&sync_timestamp=1598505679964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"
- integrity sha1-Ghw+3O0a+yov6jNgS8bR2NaIpBQ=
- dependencies:
- cliui "^5.0.0"
- decamelize "^1.2.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^15.0.1"
-
-yargs@^15.1.0, yargs@^15.3.1:
+yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1:
version "15.4.1"
resolved "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1598505679964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=
diff --git a/README.md b/README.md
index 29f1c24..0dd0c41 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
### 优势
1. 命令行工具&网页双端管理,版本发布过程简单便捷,完全可以集成 CI。
-2. 基于 bsdiff 算法创建的**超小更新包**,通常版本迭代后在 1-10KB 之间,避免数百 KB 的流量消耗。
+2. 基于 bsdiff/hdiff 算法创建的**超小更新包**,通常版本迭代后在 1-10KB 之间,避免数百 KB 的流量消耗。
3. 支持崩溃回滚,安全可靠。
4. meta 信息及开放 API,提供更高扩展性。
5. 跨越多个版本进行更新时,只需要下载**一个更新包**,不需要逐版本依次更新。
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index 6871e9f..acb8996 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -3,15 +3,16 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := rnupdate
+
+Hdp_Files := \
+ hpatch.c \
+ HDiffPatch/libHDiffPatch/HPatch/patch.c \
+ HDiffPatch/file_for_patch.c \
+ lzma/C/LzmaDec.c \
+ lzma/C/Lzma2Dec.c
+
LOCAL_SRC_FILES := \
DownloadTask.c \
- blocksort.c \
- bspatch.c \
- bzlib.c \
- crctable.c \
- compress.c \
- decompress.c \
- huffman.c \
- randtable.c
+ $(Hdp_Files)
include $(BUILD_SHARED_LIBRARY)
\ No newline at end of file
diff --git a/android/jni/Application.mk b/android/jni/Application.mk
new file mode 100644
index 0000000..3c3e329
--- /dev/null
+++ b/android/jni/Application.mk
@@ -0,0 +1,7 @@
+APP_PLATFORM := android-16
+APP_CFLAGS += -Wno-error=format-security
+APP_CFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
+APP_CFLAGS += -ffunction-sections -fdata-sections
+APP_LDFLAGS += -Wl,--gc-sections
+APP_BUILD_SCRIPT := Android.mk
+APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
diff --git a/android/jni/DownloadTask.c b/android/jni/DownloadTask.c
index 32491f8..a8a7f1f 100644
--- a/android/jni/DownloadTask.c
+++ b/android/jni/DownloadTask.c
@@ -3,109 +3,54 @@
//
#include "cn_reactnative_modules_update_DownloadTask.h"
-#include
-#include "bzlib.h"
-#include "bspatch.h"
-#include
-static int64_t offtin(uint8_t *buf)
-{
- int64_t y;
+#include "hpatch.h"
+#define _check(v,errInfo) do{ if (!(v)) { _isError=hpatch_TRUE; _errInfo=errInfo; goto _clear; } }while(0)
- y=buf[7]&0x7F;
- y=y*256;y+=buf[6];
- y=y*256;y+=buf[5];
- y=y*256;y+=buf[4];
- y=y*256;y+=buf[3];
- y=y*256;y+=buf[2];
- y=y*256;y+=buf[1];
- y=y*256;y+=buf[0];
-
- if(buf[7]&0x80) y=-y;
-
- return y;
-}
-
-const size_t BUFFER_SIZE = 4096;
-
-static int bz2_read(const struct bspatch_stream* stream, void* buffer, int length)
-{
- int n;
- int bz2err;
- bz_stream* zip;
-
- if (length == 0) {
- return 0;
- }
-
- zip = (bz_stream*)stream->opaque;
- zip->next_out = (char*)buffer;
- zip->avail_out = length;
-
- int bz2Ret = BZ2_bzDecompress(zip);
-
- if (bz2Ret != BZ_OK && (bz2Ret != BZ_STREAM_END || zip->avail_out > 0))
- return -1;
-
- return 0;
-}
-
-JNIEXPORT jbyteArray JNICALL Java_cn_reactnative_modules_update_DownloadTask_bsdiffPatch
+JNIEXPORT jbyteArray JNICALL Java_cn_reactnative_modules_update_DownloadTask_hdiffPatch
(JNIEnv *env, jobject self, jbyteArray origin, jbyteArray patch){
- jclass newExcCls;
- jbyte* outPtr;
- struct bspatch_stream stream;
- bz_stream zip;
+ hpatch_BOOL _isError=hpatch_FALSE;
+ const char* _errInfo="";
jbyte* originPtr = (*env)->GetByteArrayElements(env, origin, NULL);
size_t originLength = (*env)->GetArrayLength(env, origin);
jbyte* patchPtr = (*env)->GetByteArrayElements(env, patch, NULL);
size_t patchLength = (*env)->GetArrayLength(env, patch);
jbyteArray ret = NULL;
+ jbyte* outPtr = NULL;
+ size_t newsize = 0;
+ hpatch_singleCompressedDiffInfo patInfo;
- if (patchLength < 32) {
- newExcCls = (*env)->FindClass(env,"java/lang/Error");
- if (newExcCls != NULL) /* Unable to find the new exception class, give up. */
- (*env)->ThrowNew(env,newExcCls, "Corrupt patch");
- (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);
- (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);
- return NULL;
+ _check(((originLength==0)||originPtr) && patchPtr && (patchLength>0),"Corrupt patch");
+ _check(kHPatch_ok==hpatch_getInfo_by_mem(&patInfo,(const uint8_t*)patchPtr,patchLength),"Error info in hpatch");
+ _check(originLength==patInfo.oldDataSize,"Error oldDataSize in hpatch");
+ newsize=(size_t)patInfo.newDataSize;
+ if (sizeof(size_t)!=sizeof(hpatch_StreamPos_t))
+ _check(newsize==patInfo.newDataSize,"Error newDataSize in hpatch");
+
+ ret = (*env)->NewByteArray(env,newsize);
+ _check(ret,"Error JNIEnv::NewByteArray()");
+ if (newsize>0) {
+ outPtr = (*env)->GetByteArrayElements(env, ret, NULL);
+ _check(outPtr,"Corrupt JNIEnv::GetByteArrayElements");
}
- int64_t newsize=offtin((uint8_t*)patchPtr + 16);
- if (memcmp(patchPtr, "ENDSLEY/BSDIFF43", 16) != 0 || newsize<0) {
+
+ _check(kHPatch_ok==hpatch_by_mem((const uint8_t*)originPtr,originLength,(uint8_t*)outPtr,newsize,
+ (const uint8_t*)patchPtr,patchLength,&patInfo),"hpacth");
+
+_clear:
+ if (outPtr) (*env)->ReleaseByteArrayElements(env, ret, outPtr, (_isError?JNI_ABORT:0));
+ if (originPtr) (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);
+ if (patchPtr) (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);
+ if (_isError){
+ jclass newExcCls = NULL;
+ if (ret){
+ (*env)->DeleteLocalRef(env, ret);
+ ret = NULL;
+ }
newExcCls = (*env)->FindClass(env, "java/lang/Error");
- if (newExcCls != NULL) /* Unable to find the new exception class, give up. */
- (*env)->ThrowNew(env, newExcCls, "Corrupt patch");
- (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);
- (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);
- return NULL;
+ if (newExcCls != NULL) // Unable to find the new exception class, give up.
+ (*env)->ThrowNew(env, newExcCls, _errInfo);
}
- ret = (*env)->NewByteArray(env, newsize);
- if (ret == NULL) {
- return NULL; // out of memory error thrown
- }
- outPtr = (*env)->GetByteArrayElements(env, ret, NULL);
-
- zip.bzalloc = NULL;
- zip.bzfree = NULL;
- zip.opaque = NULL;
- BZ2_bzDecompressInit(&zip, 0, 1);
-
- zip.next_in = (char*)patchPtr + 32;
- zip.avail_in = patchLength - 32;
-
- stream.read = bz2_read;
- stream.opaque = &zip;
- if (bspatch((const uint8_t*)originPtr, originLength, (uint8_t*)outPtr, newsize, &stream)) {
- newExcCls = (*env)->FindClass(env, "java/lang/Error");
- if (newExcCls != NULL) /* Unable to find the new exception class, give up. */
- (*env)->ThrowNew(env, newExcCls, "bspatch");
- }
-
- BZ2_bzDecompressEnd(&zip);
-
- (*env)->ReleaseByteArrayElements(env, ret, outPtr, 0);
- (*env)->ReleaseByteArrayElements(env, origin, originPtr, JNI_ABORT);
- (*env)->ReleaseByteArrayElements(env, patch, patchPtr, JNI_ABORT);
return ret;
-}
\ No newline at end of file
+}
diff --git a/android/jni/HDiffPatch b/android/jni/HDiffPatch
new file mode 160000
index 0000000..eb959d6
--- /dev/null
+++ b/android/jni/HDiffPatch
@@ -0,0 +1 @@
+Subproject commit eb959d671cd94281ca763d609f638b5d248df3a3
diff --git a/android/jni/blocksort.c b/android/jni/blocksort.c
deleted file mode 100644
index d0d662c..0000000
--- a/android/jni/blocksort.c
+++ /dev/null
@@ -1,1094 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Block sorting machinery ---*/
-/*--- blocksort.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------*/
-/*--- Fallback O(N log(N)^2) sorting ---*/
-/*--- algorithm, for repetitive blocks ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-__inline__
-void fallbackSimpleSort ( UInt32* fmap,
- UInt32* eclass,
- Int32 lo,
- Int32 hi )
-{
- Int32 i, j, tmp;
- UInt32 ec_tmp;
-
- if (lo == hi) return;
-
- if (hi - lo > 3) {
- for ( i = hi-4; i >= lo; i-- ) {
- tmp = fmap[i];
- ec_tmp = eclass[tmp];
- for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
- fmap[j-4] = fmap[j];
- fmap[j-4] = tmp;
- }
- }
-
- for ( i = hi-1; i >= lo; i-- ) {
- tmp = fmap[i];
- ec_tmp = eclass[tmp];
- for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
- fmap[j-1] = fmap[j];
- fmap[j-1] = tmp;
- }
-}
-
-
-/*---------------------------------------------*/
-#define fswap(zz1, zz2) \
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define fvswap(zzp1, zzp2, zzn) \
-{ \
- Int32 yyp1 = (zzp1); \
- Int32 yyp2 = (zzp2); \
- Int32 yyn = (zzn); \
- while (yyn > 0) { \
- fswap(fmap[yyp1], fmap[yyp2]); \
- yyp1++; yyp2++; yyn--; \
- } \
-}
-
-
-#define fmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define fpush(lz,hz) { stackLo[sp] = lz; \
- stackHi[sp] = hz; \
- sp++; }
-
-#define fpop(lz,hz) { sp--; \
- lz = stackLo[sp]; \
- hz = stackHi[sp]; }
-
-#define FALLBACK_QSORT_SMALL_THRESH 10
-#define FALLBACK_QSORT_STACK_SIZE 100
-
-
-static
-void fallbackQSort3 ( UInt32* fmap,
- UInt32* eclass,
- Int32 loSt,
- Int32 hiSt )
-{
- Int32 unLo, unHi, ltLo, gtHi, n, m;
- Int32 sp, lo, hi;
- UInt32 med, r, r3;
- Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
- Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
-
- r = 0;
-
- sp = 0;
- fpush ( loSt, hiSt );
-
- while (sp > 0) {
-
- AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
-
- fpop ( lo, hi );
- if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
- fallbackSimpleSort ( fmap, eclass, lo, hi );
- continue;
- }
-
- /* Random partitioning. Median of 3 sometimes fails to
- avoid bad cases. Median of 9 seems to help but
- looks rather expensive. This too seems to work but
- is cheaper. Guidance for the magic constants
- 7621 and 32768 is taken from Sedgewick's algorithms
- book, chapter 35.
- */
- r = ((r * 7621) + 1) % 32768;
- r3 = r % 3;
- if (r3 == 0) med = eclass[fmap[lo]]; else
- if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
- med = eclass[fmap[hi]];
-
- unLo = ltLo = lo;
- unHi = gtHi = hi;
-
- while (1) {
- while (1) {
- if (unLo > unHi) break;
- n = (Int32)eclass[fmap[unLo]] - (Int32)med;
- if (n == 0) {
- fswap(fmap[unLo], fmap[ltLo]);
- ltLo++; unLo++;
- continue;
- };
- if (n > 0) break;
- unLo++;
- }
- while (1) {
- if (unLo > unHi) break;
- n = (Int32)eclass[fmap[unHi]] - (Int32)med;
- if (n == 0) {
- fswap(fmap[unHi], fmap[gtHi]);
- gtHi--; unHi--;
- continue;
- };
- if (n < 0) break;
- unHi--;
- }
- if (unLo > unHi) break;
- fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
- }
-
- AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
-
- if (gtHi < ltLo) continue;
-
- n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
- m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
-
- n = lo + unLo - ltLo - 1;
- m = hi - (gtHi - unHi) + 1;
-
- if (n - lo > hi - m) {
- fpush ( lo, n );
- fpush ( m, hi );
- } else {
- fpush ( m, hi );
- fpush ( lo, n );
- }
- }
-}
-
-#undef fmin
-#undef fpush
-#undef fpop
-#undef fswap
-#undef fvswap
-#undef FALLBACK_QSORT_SMALL_THRESH
-#undef FALLBACK_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > 0
- eclass exists for [0 .. nblock-1]
- ((UChar*)eclass) [0 .. nblock-1] holds block
- ptr exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)eclass) [0 .. nblock-1] holds block
- All other areas of eclass destroyed
- fmap [0 .. nblock-1] holds sorted order
- bhtab [ 0 .. 2+(nblock/32) ] destroyed
-*/
-
-#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
-#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
-#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
-#define WORD_BH(zz) bhtab[(zz) >> 5]
-#define UNALIGNED_BH(zz) ((zz) & 0x01f)
-
-static
-void fallbackSort ( UInt32* fmap,
- UInt32* eclass,
- UInt32* bhtab,
- Int32 nblock,
- Int32 verb )
-{
- Int32 ftab[257];
- Int32 ftabCopy[256];
- Int32 H, i, j, k, l, r, cc, cc1;
- Int32 nNotDone;
- Int32 nBhtab;
- UChar* eclass8 = (UChar*)eclass;
-
- /*--
- Initial 1-char radix sort to generate
- initial fmap and initial BH bits.
- --*/
- if (verb >= 4)
- VPrintf0 ( " bucket sorting ...\n" );
- for (i = 0; i < 257; i++) ftab[i] = 0;
- for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
- for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
- for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
-
- for (i = 0; i < nblock; i++) {
- j = eclass8[i];
- k = ftab[j] - 1;
- ftab[j] = k;
- fmap[k] = i;
- }
-
- nBhtab = 2 + (nblock / 32);
- for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
- for (i = 0; i < 256; i++) SET_BH(ftab[i]);
-
- /*--
- Inductively refine the buckets. Kind-of an
- "exponential radix sort" (!), inspired by the
- Manber-Myers suffix array construction algorithm.
- --*/
-
- /*-- set sentinel bits for block-end detection --*/
- for (i = 0; i < 32; i++) {
- SET_BH(nblock + 2*i);
- CLEAR_BH(nblock + 2*i + 1);
- }
-
- /*-- the log(N) loop --*/
- H = 1;
- while (1) {
-
- if (verb >= 4)
- VPrintf1 ( " depth %6d has ", H );
-
- j = 0;
- for (i = 0; i < nblock; i++) {
- if (ISSET_BH(i)) j = i;
- k = fmap[i] - H; if (k < 0) k += nblock;
- eclass[k] = j;
- }
-
- nNotDone = 0;
- r = -1;
- while (1) {
-
- /*-- find the next non-singleton bucket --*/
- k = r + 1;
- while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
- if (ISSET_BH(k)) {
- while (WORD_BH(k) == 0xffffffff) k += 32;
- while (ISSET_BH(k)) k++;
- }
- l = k - 1;
- if (l >= nblock) break;
- while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
- if (!ISSET_BH(k)) {
- while (WORD_BH(k) == 0x00000000) k += 32;
- while (!ISSET_BH(k)) k++;
- }
- r = k - 1;
- if (r >= nblock) break;
-
- /*-- now [l, r] bracket current bucket --*/
- if (r > l) {
- nNotDone += (r - l + 1);
- fallbackQSort3 ( fmap, eclass, l, r );
-
- /*-- scan bucket and generate header bits-- */
- cc = -1;
- for (i = l; i <= r; i++) {
- cc1 = eclass[fmap[i]];
- if (cc != cc1) { SET_BH(i); cc = cc1; };
- }
- }
- }
-
- if (verb >= 4)
- VPrintf1 ( "%6d unresolved strings\n", nNotDone );
-
- H *= 2;
- if (H > nblock || nNotDone == 0) break;
- }
-
- /*--
- Reconstruct the original block in
- eclass8 [0 .. nblock-1], since the
- previous phase destroyed it.
- --*/
- if (verb >= 4)
- VPrintf0 ( " reconstructing block ...\n" );
- j = 0;
- for (i = 0; i < nblock; i++) {
- while (ftabCopy[j] == 0) j++;
- ftabCopy[j]--;
- eclass8[fmap[i]] = (UChar)j;
- }
- AssertH ( j < 256, 1005 );
-}
-
-#undef SET_BH
-#undef CLEAR_BH
-#undef ISSET_BH
-#undef WORD_BH
-#undef UNALIGNED_BH
-
-
-/*---------------------------------------------*/
-/*--- The main, O(N^2 log(N)) sorting ---*/
-/*--- algorithm. Faster for "normal" ---*/
-/*--- non-repetitive blocks. ---*/
-/*---------------------------------------------*/
-
-/*---------------------------------------------*/
-static
-__inline__
-Bool mainGtU ( UInt32 i1,
- UInt32 i2,
- UChar* block,
- UInt16* quadrant,
- UInt32 nblock,
- Int32* budget )
-{
- Int32 k;
- UChar c1, c2;
- UInt16 s1, s2;
-
- AssertD ( i1 != i2, "mainGtU" );
- /* 1 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 2 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 3 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 4 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 5 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 6 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 7 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 8 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 9 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 10 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 11 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
- /* 12 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- i1++; i2++;
-
- k = nblock + 8;
-
- do {
- /* 1 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 2 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 3 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 4 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 5 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 6 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 7 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
- /* 8 */
- c1 = block[i1]; c2 = block[i2];
- if (c1 != c2) return (c1 > c2);
- s1 = quadrant[i1]; s2 = quadrant[i2];
- if (s1 != s2) return (s1 > s2);
- i1++; i2++;
-
- if (i1 >= nblock) i1 -= nblock;
- if (i2 >= nblock) i2 -= nblock;
-
- k -= 8;
- (*budget)--;
- }
- while (k >= 0);
-
- return False;
-}
-
-
-/*---------------------------------------------*/
-/*--
- Knuth's increments seem to work better
- than Incerpi-Sedgewick here. Possibly
- because the number of elems to sort is
- usually small, typically <= 20.
---*/
-static
-Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
- 9841, 29524, 88573, 265720,
- 797161, 2391484 };
-
-static
-void mainSimpleSort ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- Int32 nblock,
- Int32 lo,
- Int32 hi,
- Int32 d,
- Int32* budget )
-{
- Int32 i, j, h, bigN, hp;
- UInt32 v;
-
- bigN = hi - lo + 1;
- if (bigN < 2) return;
-
- hp = 0;
- while (incs[hp] < bigN) hp++;
- hp--;
-
- for (; hp >= 0; hp--) {
- h = incs[hp];
-
- i = lo + h;
- while (True) {
-
- /*-- copy 1 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- /*-- copy 2 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- /*-- copy 3 --*/
- if (i > hi) break;
- v = ptr[i];
- j = i;
- while ( mainGtU (
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
- ) ) {
- ptr[j] = ptr[j-h];
- j = j - h;
- if (j <= (lo + h - 1)) break;
- }
- ptr[j] = v;
- i++;
-
- if (*budget < 0) return;
- }
- }
-}
-
-
-/*---------------------------------------------*/
-/*--
- The following is an implementation of
- an elegant 3-way quicksort for strings,
- described in a paper "Fast Algorithms for
- Sorting and Searching Strings", by Robert
- Sedgewick and Jon L. Bentley.
---*/
-
-#define mswap(zz1, zz2) \
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
-
-#define mvswap(zzp1, zzp2, zzn) \
-{ \
- Int32 yyp1 = (zzp1); \
- Int32 yyp2 = (zzp2); \
- Int32 yyn = (zzn); \
- while (yyn > 0) { \
- mswap(ptr[yyp1], ptr[yyp2]); \
- yyp1++; yyp2++; yyn--; \
- } \
-}
-
-static
-__inline__
-UChar mmed3 ( UChar a, UChar b, UChar c )
-{
- UChar t;
- if (a > b) { t = a; a = b; b = t; };
- if (b > c) {
- b = c;
- if (a > b) b = a;
- }
- return b;
-}
-
-#define mmin(a,b) ((a) < (b)) ? (a) : (b)
-
-#define mpush(lz,hz,dz) { stackLo[sp] = lz; \
- stackHi[sp] = hz; \
- stackD [sp] = dz; \
- sp++; }
-
-#define mpop(lz,hz,dz) { sp--; \
- lz = stackLo[sp]; \
- hz = stackHi[sp]; \
- dz = stackD [sp]; }
-
-
-#define mnextsize(az) (nextHi[az]-nextLo[az])
-
-#define mnextswap(az,bz) \
- { Int32 tz; \
- tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
- tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
- tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
-
-
-#define MAIN_QSORT_SMALL_THRESH 20
-#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
-#define MAIN_QSORT_STACK_SIZE 100
-
-static
-void mainQSort3 ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- Int32 nblock,
- Int32 loSt,
- Int32 hiSt,
- Int32 dSt,
- Int32* budget )
-{
- Int32 unLo, unHi, ltLo, gtHi, n, m, med;
- Int32 sp, lo, hi, d;
-
- Int32 stackLo[MAIN_QSORT_STACK_SIZE];
- Int32 stackHi[MAIN_QSORT_STACK_SIZE];
- Int32 stackD [MAIN_QSORT_STACK_SIZE];
-
- Int32 nextLo[3];
- Int32 nextHi[3];
- Int32 nextD [3];
-
- sp = 0;
- mpush ( loSt, hiSt, dSt );
-
- while (sp > 0) {
-
- AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
-
- mpop ( lo, hi, d );
- if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
- d > MAIN_QSORT_DEPTH_THRESH) {
- mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
- if (*budget < 0) return;
- continue;
- }
-
- med = (Int32)
- mmed3 ( block[ptr[ lo ]+d],
- block[ptr[ hi ]+d],
- block[ptr[ (lo+hi)>>1 ]+d] );
-
- unLo = ltLo = lo;
- unHi = gtHi = hi;
-
- while (True) {
- while (True) {
- if (unLo > unHi) break;
- n = ((Int32)block[ptr[unLo]+d]) - med;
- if (n == 0) {
- mswap(ptr[unLo], ptr[ltLo]);
- ltLo++; unLo++; continue;
- };
- if (n > 0) break;
- unLo++;
- }
- while (True) {
- if (unLo > unHi) break;
- n = ((Int32)block[ptr[unHi]+d]) - med;
- if (n == 0) {
- mswap(ptr[unHi], ptr[gtHi]);
- gtHi--; unHi--; continue;
- };
- if (n < 0) break;
- unHi--;
- }
- if (unLo > unHi) break;
- mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
- }
-
- AssertD ( unHi == unLo-1, "mainQSort3(2)" );
-
- if (gtHi < ltLo) {
- mpush(lo, hi, d+1 );
- continue;
- }
-
- n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
- m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
-
- n = lo + unLo - ltLo - 1;
- m = hi - (gtHi - unHi) + 1;
-
- nextLo[0] = lo; nextHi[0] = n; nextD[0] = d;
- nextLo[1] = m; nextHi[1] = hi; nextD[1] = d;
- nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
-
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
- if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
-
- AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
- AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
-
- mpush (nextLo[0], nextHi[0], nextD[0]);
- mpush (nextLo[1], nextHi[1], nextD[1]);
- mpush (nextLo[2], nextHi[2], nextD[2]);
- }
-}
-
-#undef mswap
-#undef mvswap
-#undef mpush
-#undef mpop
-#undef mmin
-#undef mnextsize
-#undef mnextswap
-#undef MAIN_QSORT_SMALL_THRESH
-#undef MAIN_QSORT_DEPTH_THRESH
-#undef MAIN_QSORT_STACK_SIZE
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > N_OVERSHOOT
- block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
- ((UChar*)block32) [0 .. nblock-1] holds block
- ptr exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)block32) [0 .. nblock-1] holds block
- All other areas of block32 destroyed
- ftab [0 .. 65536 ] destroyed
- ptr [0 .. nblock-1] holds sorted order
- if (*budget < 0), sorting was abandoned
-*/
-
-#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
-#define SETMASK (1 << 21)
-#define CLEARMASK (~(SETMASK))
-
-static
-void mainSort ( UInt32* ptr,
- UChar* block,
- UInt16* quadrant,
- UInt32* ftab,
- Int32 nblock,
- Int32 verb,
- Int32* budget )
-{
- Int32 i, j, k, ss, sb;
- Int32 runningOrder[256];
- Bool bigDone[256];
- Int32 copyStart[256];
- Int32 copyEnd [256];
- UChar c1;
- Int32 numQSorted;
- UInt16 s;
- if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" );
-
- /*-- set up the 2-byte frequency table --*/
- for (i = 65536; i >= 0; i--) ftab[i] = 0;
-
- j = block[0] << 8;
- i = nblock-1;
- for (; i >= 3; i -= 4) {
- quadrant[i] = 0;
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
- ftab[j]++;
- quadrant[i-1] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
- ftab[j]++;
- quadrant[i-2] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
- ftab[j]++;
- quadrant[i-3] = 0;
- j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
- ftab[j]++;
- }
- for (; i >= 0; i--) {
- quadrant[i] = 0;
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
- ftab[j]++;
- }
-
- /*-- (emphasises close relationship of block & quadrant) --*/
- for (i = 0; i < BZ_N_OVERSHOOT; i++) {
- block [nblock+i] = block[i];
- quadrant[nblock+i] = 0;
- }
-
- if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" );
-
- /*-- Complete the initial radix sort --*/
- for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
-
- s = block[0] << 8;
- i = nblock-1;
- for (; i >= 3; i -= 4) {
- s = (s >> 8) | (block[i] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i;
- s = (s >> 8) | (block[i-1] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-1;
- s = (s >> 8) | (block[i-2] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-2;
- s = (s >> 8) | (block[i-3] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i-3;
- }
- for (; i >= 0; i--) {
- s = (s >> 8) | (block[i] << 8);
- j = ftab[s] -1;
- ftab[s] = j;
- ptr[j] = i;
- }
-
- /*--
- Now ftab contains the first loc of every small bucket.
- Calculate the running order, from smallest to largest
- big bucket.
- --*/
- for (i = 0; i <= 255; i++) {
- bigDone [i] = False;
- runningOrder[i] = i;
- }
-
- {
- Int32 vv;
- Int32 h = 1;
- do h = 3 * h + 1; while (h <= 256);
- do {
- h = h / 3;
- for (i = h; i <= 255; i++) {
- vv = runningOrder[i];
- j = i;
- while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
- runningOrder[j] = runningOrder[j-h];
- j = j - h;
- if (j <= (h - 1)) goto zero;
- }
- zero:
- runningOrder[j] = vv;
- }
- } while (h != 1);
- }
-
- /*--
- The main sorting loop.
- --*/
-
- numQSorted = 0;
-
- for (i = 0; i <= 255; i++) {
-
- /*--
- Process big buckets, starting with the least full.
- Basically this is a 3-step process in which we call
- mainQSort3 to sort the small buckets [ss, j], but
- also make a big effort to avoid the calls if we can.
- --*/
- ss = runningOrder[i];
-
- /*--
- Step 1:
- Complete the big bucket [ss] by quicksorting
- any unsorted small buckets [ss, j], for j != ss.
- Hopefully previous pointer-scanning phases have already
- completed many of the small buckets [ss, j], so
- we don't have to sort them at all.
- --*/
- for (j = 0; j <= 255; j++) {
- if (j != ss) {
- sb = (ss << 8) + j;
- if ( ! (ftab[sb] & SETMASK) ) {
- Int32 lo = ftab[sb] & CLEARMASK;
- Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
- if (hi > lo) {
- if (verb >= 4)
- VPrintf4 ( " qsort [0x%x, 0x%x] "
- "done %d this %d\n",
- ss, j, numQSorted, hi - lo + 1 );
- mainQSort3 (
- ptr, block, quadrant, nblock,
- lo, hi, BZ_N_RADIX, budget
- );
- numQSorted += (hi - lo + 1);
- if (*budget < 0) return;
- }
- }
- ftab[sb] |= SETMASK;
- }
- }
-
- AssertH ( !bigDone[ss], 1006 );
-
- /*--
- Step 2:
- Now scan this big bucket [ss] so as to synthesise the
- sorted order for small buckets [t, ss] for all t,
- including, magically, the bucket [ss,ss] too.
- This will avoid doing Real Work in subsequent Step 1's.
- --*/
- {
- for (j = 0; j <= 255; j++) {
- copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK;
- copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
- }
- for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
- k = ptr[j]-1; if (k < 0) k += nblock;
- c1 = block[k];
- if (!bigDone[c1])
- ptr[ copyStart[c1]++ ] = k;
- }
- for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
- k = ptr[j]-1; if (k < 0) k += nblock;
- c1 = block[k];
- if (!bigDone[c1])
- ptr[ copyEnd[c1]-- ] = k;
- }
- }
-
- AssertH ( (copyStart[ss]-1 == copyEnd[ss])
- ||
- /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
- Necessity for this case is demonstrated by compressing
- a sequence of approximately 48.5 million of character
- 251; 1.0.0/1.0.1 will then die here. */
- (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
- 1007 )
-
- for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
-
- /*--
- Step 3:
- The [ss] big bucket is now done. Record this fact,
- and update the quadrant descriptors. Remember to
- update quadrants in the overshoot area too, if
- necessary. The "if (i < 255)" test merely skips
- this updating for the last bucket processed, since
- updating for the last bucket is pointless.
-
- The quadrant array provides a way to incrementally
- cache sort orderings, as they appear, so as to
- make subsequent comparisons in fullGtU() complete
- faster. For repetitive blocks this makes a big
- difference (but not big enough to be able to avoid
- the fallback sorting mechanism, exponential radix sort).
-
- The precise meaning is: at all times:
-
- for 0 <= i < nblock and 0 <= j <= nblock
-
- if block[i] != block[j],
-
- then the relative values of quadrant[i] and
- quadrant[j] are meaningless.
-
- else {
- if quadrant[i] < quadrant[j]
- then the string starting at i lexicographically
- precedes the string starting at j
-
- else if quadrant[i] > quadrant[j]
- then the string starting at j lexicographically
- precedes the string starting at i
-
- else
- the relative ordering of the strings starting
- at i and j has not yet been determined.
- }
- --*/
- bigDone[ss] = True;
-
- if (i < 255) {
- Int32 bbStart = ftab[ss << 8] & CLEARMASK;
- Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
- Int32 shifts = 0;
-
- while ((bbSize >> shifts) > 65534) shifts++;
-
- for (j = bbSize-1; j >= 0; j--) {
- Int32 a2update = ptr[bbStart + j];
- UInt16 qVal = (UInt16)(j >> shifts);
- quadrant[a2update] = qVal;
- if (a2update < BZ_N_OVERSHOOT)
- quadrant[a2update + nblock] = qVal;
- }
- AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
- }
-
- }
-
- if (verb >= 4)
- VPrintf3 ( " %d pointers, %d sorted, %d scanned\n",
- nblock, numQSorted, nblock - numQSorted );
-}
-
-#undef BIGFREQ
-#undef SETMASK
-#undef CLEARMASK
-
-
-/*---------------------------------------------*/
-/* Pre:
- nblock > 0
- arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
- ((UChar*)arr2) [0 .. nblock-1] holds block
- arr1 exists for [0 .. nblock-1]
-
- Post:
- ((UChar*)arr2) [0 .. nblock-1] holds block
- All other areas of block destroyed
- ftab [ 0 .. 65536 ] destroyed
- arr1 [0 .. nblock-1] holds sorted order
-*/
-void BZ2_blockSort ( EState* s )
-{
- UInt32* ptr = s->ptr;
- UChar* block = s->block;
- UInt32* ftab = s->ftab;
- Int32 nblock = s->nblock;
- Int32 verb = s->verbosity;
- Int32 wfact = s->workFactor;
- UInt16* quadrant;
- Int32 budget;
- Int32 budgetInit;
- Int32 i;
-
- if (nblock < 10000) {
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
- } else {
- /* Calculate the location for quadrant, remembering to get
- the alignment right. Assumes that &(block[0]) is at least
- 2-byte aligned -- this should be ok since block is really
- the first section of arr2.
- */
- i = nblock+BZ_N_OVERSHOOT;
- if (i & 1) i++;
- quadrant = (UInt16*)(&(block[i]));
-
- /* (wfact-1) / 3 puts the default-factor-30
- transition point at very roughly the same place as
- with v0.1 and v0.9.0.
- Not that it particularly matters any more, since the
- resulting compressed stream is now the same regardless
- of whether or not we use the main sort or fallback sort.
- */
- if (wfact < 1 ) wfact = 1;
- if (wfact > 100) wfact = 100;
- budgetInit = nblock * ((wfact-1) / 3);
- budget = budgetInit;
-
- mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
- if (verb >= 3)
- VPrintf3 ( " %d work, %d block, ratio %5.2f\n",
- budgetInit - budget,
- nblock,
- (float)(budgetInit - budget) /
- (float)(nblock==0 ? 1 : nblock) );
- if (budget < 0) {
- if (verb >= 2)
- VPrintf0 ( " too repetitive; using fallback"
- " sorting algorithm\n" );
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
- }
- }
-
- s->origPtr = -1;
- for (i = 0; i < s->nblock; i++)
- if (ptr[i] == 0)
- { s->origPtr = i; break; };
-
- AssertH( s->origPtr != -1, 1003 );
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end blocksort.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/bspatch.c b/android/jni/bspatch.c
deleted file mode 100644
index b29f81d..0000000
--- a/android/jni/bspatch.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*-
- * Copyright 2003-2005 Colin Percival
- * Copyright 2012 Matthew Endsley
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted providing that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "bspatch.h"
-
-static int64_t offtin(uint8_t *buf)
-{
- int64_t y;
-
- y=buf[7]&0x7F;
- y=y*256;y+=buf[6];
- y=y*256;y+=buf[5];
- y=y*256;y+=buf[4];
- y=y*256;y+=buf[3];
- y=y*256;y+=buf[2];
- y=y*256;y+=buf[1];
- y=y*256;y+=buf[0];
-
- if(buf[7]&0x80) y=-y;
-
- return y;
-}
-
-int bspatch(const uint8_t* old, int64_t oldsize, uint8_t* new, int64_t newsize, struct bspatch_stream* stream)
-{
- uint8_t buf[8];
- int64_t oldpos,newpos;
- int64_t ctrl[3];
- int64_t i;
-
- oldpos=0;newpos=0;
- while(newposread(stream, buf, 8))
- return -1;
- ctrl[i]=offtin(buf);
- };
-
- /* Sanity-check */
- if(newpos+ctrl[0]>newsize)
- return -1;
-
- /* Read diff string */
- if (stream->read(stream, new + newpos, ctrl[0]))
- return -1;
-
- /* Add old data to diff string */
- for(i=0;i=0) && (oldpos+inewsize)
- return -1;
-
- /* Read extra string */
- if (stream->read(stream, new + newpos, ctrl[1]))
- return -1;
-
- /* Adjust pointers */
- newpos+=ctrl[1];
- oldpos+=ctrl[2];
- };
-
- return 0;
-}
-
-#if defined(BSPATCH_EXECUTABLE)
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-static int bz2_read(const struct bspatch_stream* stream, void* buffer, int length)
-{
- int n;
- int bz2err;
- BZFILE* bz2;
-
- bz2 = (BZFILE*)stream->opaque;
- n = BZ2_bzRead(&bz2err, bz2, buffer, length);
- if (n != length)
- return -1;
-
- return 0;
-}
-
-int main(int argc,char * argv[])
-{
- FILE * f;
- int fd;
- int bz2err;
- uint8_t header[24];
- uint8_t *old, *new;
- int64_t oldsize, newsize;
- BZFILE* bz2;
- struct bspatch_stream stream;
-
- if(argc!=4) errx(1,"usage: %s oldfile newfile patchfile\n",argv[0]);
-
- /* Open patch file */
- if ((f = fopen(argv[3], "r")) == NULL)
- err(1, "fopen(%s)", argv[3]);
-
- /* Read header */
- if (fread(header, 1, 24, f) != 24) {
- if (feof(f))
- errx(1, "Corrupt patch\n");
- err(1, "fread(%s)", argv[3]);
- }
-
- /* Check for appropriate magic */
- if (memcmp(header, "ENDSLEY/BSDIFF43", 16) != 0)
- errx(1, "Corrupt patch\n");
-
- /* Read lengths from header */
- newsize=offtin(header+16);
- if(newsize<0)
- errx(1,"Corrupt patch\n");
-
- /* Close patch file and re-open it via libbzip2 at the right places */
- if(((fd=open(argv[1],O_RDONLY,0))<0) ||
- ((oldsize=lseek(fd,0,SEEK_END))==-1) ||
- ((old=malloc(oldsize+1))==NULL) ||
- (lseek(fd,0,SEEK_SET)!=0) ||
- (read(fd,old,oldsize)!=oldsize) ||
- (close(fd)==-1)) err(1,"%s",argv[1]);
- if((new=malloc(newsize+1))==NULL) err(1,NULL);
-
- if (NULL == (bz2 = BZ2_bzReadOpen(&bz2err, f, 0, 0, NULL, 0)))
- errx(1, "BZ2_bzReadOpen, bz2err=%d", bz2err);
-
- stream.read = bz2_read;
- stream.opaque = bz2;
- if (bspatch(old, oldsize, new, newsize, &stream))
- errx(1, "bspatch");
-
- /* Clean up the bzip2 reads */
- BZ2_bzReadClose(&bz2err, bz2);
- fclose(f);
-
- /* Write the new file */
- if(((fd=open(argv[2],O_CREAT|O_TRUNC|O_WRONLY,0666))<0) ||
- (write(fd,new,newsize)!=newsize) || (close(fd)==-1))
- err(1,"%s",argv[2]);
-
- free(new);
- free(old);
-
- return 0;
-}
-
-#endif
\ No newline at end of file
diff --git a/android/jni/bspatch.h b/android/jni/bspatch.h
deleted file mode 100644
index 08e78bd..0000000
--- a/android/jni/bspatch.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * Copyright 2003-2005 Colin Percival
- * Copyright 2012 Matthew Endsley
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted providing that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BSPATCH_H
-# define BSPATCH_H
-
-# include
-
-struct bspatch_stream
-{
- void* opaque;
- int (*read)(const struct bspatch_stream* stream, void* buffer, int length);
-};
-
-int bspatch(const uint8_t* old, int64_t oldsize, uint8_t* newBuf, int64_t newsize, struct bspatch_stream* stream);
-
-#endif
\ No newline at end of file
diff --git a/android/jni/bzlib.c b/android/jni/bzlib.c
deleted file mode 100644
index cf33558..0000000
--- a/android/jni/bzlib.c
+++ /dev/null
@@ -1,1573 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Library top-level functions. ---*/
-/*--- bzlib.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-/* CHANGES
- 0.9.0 -- original version.
- 0.9.0a/b -- no changes in this file.
- 0.9.0c -- made zero-length BZ_FLUSH work correctly in bzCompress().
- fixed bzWrite/bzRead to ignore zero-length requests.
- fixed bzread to correctly handle read requests after EOF.
- wrong parameter order in call to bzDecompressInit in
- bzBuffToBuffDecompress. Fixed.
-*/
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Compression stuff ---*/
-/*---------------------------------------------------*/
-
-
-/*---------------------------------------------------*/
-#ifndef BZ_NO_STDIO
-void BZ2_bz__AssertH__fail ( int errcode )
-{
- fprintf(stderr,
- "\n\nbzip2/libbzip2: internal error number %d.\n"
- "This is a bug in bzip2/libbzip2, %s.\n"
- "Please report it to me at: jseward@bzip.org. If this happened\n"
- "when you were using some program which uses libbzip2 as a\n"
- "component, you should also report this bug to the author(s)\n"
- "of that program. Please make an effort to report this bug;\n"
- "timely and accurate bug reports eventually lead to higher\n"
- "quality software. Thanks. Julian Seward, 10 December 2007.\n\n",
- errcode,
- BZ2_bzlibVersion()
- );
-
- if (errcode == 1007) {
- fprintf(stderr,
- "\n*** A special note about internal error number 1007 ***\n"
- "\n"
- "Experience suggests that a common cause of i.e. 1007\n"
- "is unreliable memory or other hardware. The 1007 assertion\n"
- "just happens to cross-check the results of huge numbers of\n"
- "memory reads/writes, and so acts (unintendedly) as a stress\n"
- "test of your memory system.\n"
- "\n"
- "I suggest the following: try compressing the file again,\n"
- "possibly monitoring progress in detail with the -vv flag.\n"
- "\n"
- "* If the error cannot be reproduced, and/or happens at different\n"
- " points in compression, you may have a flaky memory system.\n"
- " Try a memory-test program. I have used Memtest86\n"
- " (www.memtest86.com). At the time of writing it is free (GPLd).\n"
- " Memtest86 tests memory much more thorougly than your BIOSs\n"
- " power-on test, and may find failures that the BIOS doesn't.\n"
- "\n"
- "* If the error can be repeatably reproduced, this is a bug in\n"
- " bzip2, and I would very much like to hear about it. Please\n"
- " let me know, and, ideally, save a copy of the file causing the\n"
- " problem -- without which I will be unable to investigate it.\n"
- "\n"
- );
- }
-
- exit(3);
-}
-#endif
-
-
-/*---------------------------------------------------*/
-static
-int bz_config_ok ( void )
-{
- if (sizeof(int) != 4) return 0;
- if (sizeof(short) != 2) return 0;
- if (sizeof(char) != 1) return 0;
- return 1;
-}
-
-
-/*---------------------------------------------------*/
-static
-void* default_bzalloc ( void* opaque, Int32 items, Int32 size )
-{
- void* v = malloc ( items * size );
- return v;
-}
-
-static
-void default_bzfree ( void* opaque, void* addr )
-{
- if (addr != NULL) free ( addr );
-}
-
-
-/*---------------------------------------------------*/
-static
-void prepare_new_block ( EState* s )
-{
- Int32 i;
- s->nblock = 0;
- s->numZ = 0;
- s->state_out_pos = 0;
- BZ_INITIALISE_CRC ( s->blockCRC );
- for (i = 0; i < 256; i++) s->inUse[i] = False;
- s->blockNo++;
-}
-
-
-/*---------------------------------------------------*/
-static
-void init_RL ( EState* s )
-{
- s->state_in_ch = 256;
- s->state_in_len = 0;
-}
-
-
-static
-Bool isempty_RL ( EState* s )
-{
- if (s->state_in_ch < 256 && s->state_in_len > 0)
- return False; else
- return True;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressInit)
- ( bz_stream* strm,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- Int32 n;
- EState* s;
-
- if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
- if (strm == NULL ||
- blockSize100k < 1 || blockSize100k > 9 ||
- workFactor < 0 || workFactor > 250)
- return BZ_PARAM_ERROR;
-
- if (workFactor == 0) workFactor = 30;
- if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
- if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
- s = BZALLOC( sizeof(EState) );
- if (s == NULL) return BZ_MEM_ERROR;
- s->strm = strm;
-
- s->arr1 = NULL;
- s->arr2 = NULL;
- s->ftab = NULL;
-
- n = 100000 * blockSize100k;
- s->arr1 = BZALLOC( n * sizeof(UInt32) );
- s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) );
- s->ftab = BZALLOC( 65537 * sizeof(UInt32) );
-
- if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) {
- if (s->arr1 != NULL) BZFREE(s->arr1);
- if (s->arr2 != NULL) BZFREE(s->arr2);
- if (s->ftab != NULL) BZFREE(s->ftab);
- if (s != NULL) BZFREE(s);
- return BZ_MEM_ERROR;
- }
-
- s->blockNo = 0;
- s->state = BZ_S_INPUT;
- s->mode = BZ_M_RUNNING;
- s->combinedCRC = 0;
- s->blockSize100k = blockSize100k;
- s->nblockMAX = 100000 * blockSize100k - 19;
- s->verbosity = verbosity;
- s->workFactor = workFactor;
-
- s->block = (UChar*)s->arr2;
- s->mtfv = (UInt16*)s->arr1;
- s->zbits = NULL;
- s->ptr = (UInt32*)s->arr1;
-
- strm->state = s;
- strm->total_in_lo32 = 0;
- strm->total_in_hi32 = 0;
- strm->total_out_lo32 = 0;
- strm->total_out_hi32 = 0;
- init_RL ( s );
- prepare_new_block ( s );
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-static
-void add_pair_to_block ( EState* s )
-{
- Int32 i;
- UChar ch = (UChar)(s->state_in_ch);
- for (i = 0; i < s->state_in_len; i++) {
- BZ_UPDATE_CRC( s->blockCRC, ch );
- }
- s->inUse[s->state_in_ch] = True;
- switch (s->state_in_len) {
- case 1:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- case 2:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- case 3:
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- break;
- default:
- s->inUse[s->state_in_len-4] = True;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = (UChar)ch; s->nblock++;
- s->block[s->nblock] = ((UChar)(s->state_in_len-4));
- s->nblock++;
- break;
- }
-}
-
-
-/*---------------------------------------------------*/
-static
-void flush_RL ( EState* s )
-{
- if (s->state_in_ch < 256) add_pair_to_block ( s );
- init_RL ( s );
-}
-
-
-/*---------------------------------------------------*/
-#define ADD_CHAR_TO_BLOCK(zs,zchh0) \
-{ \
- UInt32 zchh = (UInt32)(zchh0); \
- /*-- fast track the common case --*/ \
- if (zchh != zs->state_in_ch && \
- zs->state_in_len == 1) { \
- UChar ch = (UChar)(zs->state_in_ch); \
- BZ_UPDATE_CRC( zs->blockCRC, ch ); \
- zs->inUse[zs->state_in_ch] = True; \
- zs->block[zs->nblock] = (UChar)ch; \
- zs->nblock++; \
- zs->state_in_ch = zchh; \
- } \
- else \
- /*-- general, uncommon cases --*/ \
- if (zchh != zs->state_in_ch || \
- zs->state_in_len == 255) { \
- if (zs->state_in_ch < 256) \
- add_pair_to_block ( zs ); \
- zs->state_in_ch = zchh; \
- zs->state_in_len = 1; \
- } else { \
- zs->state_in_len++; \
- } \
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_input_until_stop ( EState* s )
-{
- Bool progress_in = False;
-
- if (s->mode == BZ_M_RUNNING) {
-
- /*-- fast track the common case --*/
- while (True) {
- /*-- block full? --*/
- if (s->nblock >= s->nblockMAX) break;
- /*-- no input? --*/
- if (s->strm->avail_in == 0) break;
- progress_in = True;
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
- s->strm->next_in++;
- s->strm->avail_in--;
- s->strm->total_in_lo32++;
- if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
- }
-
- } else {
-
- /*-- general, uncommon case --*/
- while (True) {
- /*-- block full? --*/
- if (s->nblock >= s->nblockMAX) break;
- /*-- no input? --*/
- if (s->strm->avail_in == 0) break;
- /*-- flush/finish end? --*/
- if (s->avail_in_expect == 0) break;
- progress_in = True;
- ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) );
- s->strm->next_in++;
- s->strm->avail_in--;
- s->strm->total_in_lo32++;
- if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++;
- s->avail_in_expect--;
- }
- }
- return progress_in;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool copy_output_until_stop ( EState* s )
-{
- Bool progress_out = False;
-
- while (True) {
-
- /*-- no output space? --*/
- if (s->strm->avail_out == 0) break;
-
- /*-- block done? --*/
- if (s->state_out_pos >= s->numZ) break;
-
- progress_out = True;
- *(s->strm->next_out) = s->zbits[s->state_out_pos];
- s->state_out_pos++;
- s->strm->avail_out--;
- s->strm->next_out++;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- return progress_out;
-}
-
-
-/*---------------------------------------------------*/
-static
-Bool handle_compress ( bz_stream* strm )
-{
- Bool progress_in = False;
- Bool progress_out = False;
- EState* s = strm->state;
-
- while (True) {
-
- if (s->state == BZ_S_OUTPUT) {
- progress_out |= copy_output_until_stop ( s );
- if (s->state_out_pos < s->numZ) break;
- if (s->mode == BZ_M_FINISHING &&
- s->avail_in_expect == 0 &&
- isempty_RL(s)) break;
- prepare_new_block ( s );
- s->state = BZ_S_INPUT;
- if (s->mode == BZ_M_FLUSHING &&
- s->avail_in_expect == 0 &&
- isempty_RL(s)) break;
- }
-
- if (s->state == BZ_S_INPUT) {
- progress_in |= copy_input_until_stop ( s );
- if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) {
- flush_RL ( s );
- BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) );
- s->state = BZ_S_OUTPUT;
- }
- else
- if (s->nblock >= s->nblockMAX) {
- BZ2_compressBlock ( s, False );
- s->state = BZ_S_OUTPUT;
- }
- else
- if (s->strm->avail_in == 0) {
- break;
- }
- }
-
- }
-
- return progress_in || progress_out;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action )
-{
- Bool progress;
- EState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- preswitch:
- switch (s->mode) {
-
- case BZ_M_IDLE:
- return BZ_SEQUENCE_ERROR;
-
- case BZ_M_RUNNING:
- if (action == BZ_RUN) {
- progress = handle_compress ( strm );
- return progress ? BZ_RUN_OK : BZ_PARAM_ERROR;
- }
- else
- if (action == BZ_FLUSH) {
- s->avail_in_expect = strm->avail_in;
- s->mode = BZ_M_FLUSHING;
- goto preswitch;
- }
- else
- if (action == BZ_FINISH) {
- s->avail_in_expect = strm->avail_in;
- s->mode = BZ_M_FINISHING;
- goto preswitch;
- }
- else
- return BZ_PARAM_ERROR;
-
- case BZ_M_FLUSHING:
- if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect != s->strm->avail_in)
- return BZ_SEQUENCE_ERROR;
- progress = handle_compress ( strm );
- if (s->avail_in_expect > 0 || !isempty_RL(s) ||
- s->state_out_pos < s->numZ) return BZ_FLUSH_OK;
- s->mode = BZ_M_RUNNING;
- return BZ_RUN_OK;
-
- case BZ_M_FINISHING:
- if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect != s->strm->avail_in)
- return BZ_SEQUENCE_ERROR;
- progress = handle_compress ( strm );
- if (!progress) return BZ_SEQUENCE_ERROR;
- if (s->avail_in_expect > 0 || !isempty_RL(s) ||
- s->state_out_pos < s->numZ) return BZ_FINISH_OK;
- s->mode = BZ_M_IDLE;
- return BZ_STREAM_END;
- }
- return BZ_OK; /*--not reached--*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm )
-{
- EState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- if (s->arr1 != NULL) BZFREE(s->arr1);
- if (s->arr2 != NULL) BZFREE(s->arr2);
- if (s->ftab != NULL) BZFREE(s->ftab);
- BZFREE(strm->state);
-
- strm->state = NULL;
-
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-/*--- Decompression stuff ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressInit)
- ( bz_stream* strm,
- int verbosity,
- int small )
-{
- DState* s;
-
- if (!bz_config_ok()) return BZ_CONFIG_ERROR;
-
- if (strm == NULL) return BZ_PARAM_ERROR;
- if (small != 0 && small != 1) return BZ_PARAM_ERROR;
- if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR;
-
- if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc;
- if (strm->bzfree == NULL) strm->bzfree = default_bzfree;
-
- s = BZALLOC( sizeof(DState) );
- if (s == NULL) return BZ_MEM_ERROR;
-
- s->strm = strm;
- strm->state = s;
- s->state = BZ_X_MAGIC_1;
- s->bsLive = 0;
- s->bsBuff = 0;
- s->calculatedCombinedCRC = 0;
- strm->total_in_lo32 = 0;
- strm->total_in_hi32 = 0;
- strm->total_out_lo32 = 0;
- strm->total_out_hi32 = 0;
- s->smallDecompress = (Bool)small;
- s->ll4 = NULL;
- s->ll16 = NULL;
- s->tt = NULL;
- s->currBlockNo = 0;
- s->verbosity = verbosity;
-
- return BZ_OK;
-}
-
-
-/*---------------------------------------------------*/
-/* Return True iff data corruption is discovered.
- Returns False if there is no problem.
-*/
-static
-Bool unRLE_obuf_to_output_FAST ( DState* s )
-{
- UChar k1;
-
- if (s->blockRandomised) {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return False;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return False;
-
- /* Only caused by corrupt data stream? */
- if (s->nblock_used > s->save_nblock+1)
- return True;
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_FAST(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK;
- s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
- }
-
- } else {
-
- /* restore */
- UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC;
- UChar c_state_out_ch = s->state_out_ch;
- Int32 c_state_out_len = s->state_out_len;
- Int32 c_nblock_used = s->nblock_used;
- Int32 c_k0 = s->k0;
- UInt32* c_tt = s->tt;
- UInt32 c_tPos = s->tPos;
- char* cs_next_out = s->strm->next_out;
- unsigned int cs_avail_out = s->strm->avail_out;
- Int32 ro_blockSize100k = s->blockSize100k;
- /* end restore */
-
- UInt32 avail_out_INIT = cs_avail_out;
- Int32 s_save_nblockPP = s->save_nblock+1;
- unsigned int total_out_lo32_old;
-
- while (True) {
-
- /* try to finish existing run */
- if (c_state_out_len > 0) {
- while (True) {
- if (cs_avail_out == 0) goto return_notr;
- if (c_state_out_len == 1) break;
- *( (UChar*)(cs_next_out) ) = c_state_out_ch;
- BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
- c_state_out_len--;
- cs_next_out++;
- cs_avail_out--;
- }
- s_state_out_len_eq_one:
- {
- if (cs_avail_out == 0) {
- c_state_out_len = 1; goto return_notr;
- };
- *( (UChar*)(cs_next_out) ) = c_state_out_ch;
- BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch );
- cs_next_out++;
- cs_avail_out--;
- }
- }
- /* Only caused by corrupt data stream? */
- if (c_nblock_used > s_save_nblockPP)
- return True;
-
- /* can a new run be started? */
- if (c_nblock_used == s_save_nblockPP) {
- c_state_out_len = 0; goto return_notr;
- };
- c_state_out_ch = c_k0;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (k1 != c_k0) {
- c_k0 = k1; goto s_state_out_len_eq_one;
- };
- if (c_nblock_used == s_save_nblockPP)
- goto s_state_out_len_eq_one;
-
- c_state_out_len = 2;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (c_nblock_used == s_save_nblockPP) continue;
- if (k1 != c_k0) { c_k0 = k1; continue; };
-
- c_state_out_len = 3;
- BZ_GET_FAST_C(k1); c_nblock_used++;
- if (c_nblock_used == s_save_nblockPP) continue;
- if (k1 != c_k0) { c_k0 = k1; continue; };
-
- BZ_GET_FAST_C(k1); c_nblock_used++;
- c_state_out_len = ((Int32)k1) + 4;
- BZ_GET_FAST_C(c_k0); c_nblock_used++;
- }
-
- return_notr:
- total_out_lo32_old = s->strm->total_out_lo32;
- s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out);
- if (s->strm->total_out_lo32 < total_out_lo32_old)
- s->strm->total_out_hi32++;
-
- /* save */
- s->calculatedBlockCRC = c_calculatedBlockCRC;
- s->state_out_ch = c_state_out_ch;
- s->state_out_len = c_state_out_len;
- s->nblock_used = c_nblock_used;
- s->k0 = c_k0;
- s->tt = c_tt;
- s->tPos = c_tPos;
- s->strm->next_out = cs_next_out;
- s->strm->avail_out = cs_avail_out;
- /* end save */
- }
- return False;
-}
-
-
-
-/*---------------------------------------------------*/
-__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab )
-{
- Int32 nb, na, mid;
- nb = 0;
- na = 256;
- do {
- mid = (nb + na) >> 1;
- if (indx >= cftab[mid]) nb = mid; else na = mid;
- }
- while (na - nb != 1);
- return nb;
-}
-
-
-/*---------------------------------------------------*/
-/* Return True iff data corruption is discovered.
- Returns False if there is no problem.
-*/
-static
-Bool unRLE_obuf_to_output_SMALL ( DState* s )
-{
- UChar k1;
-
- if (s->blockRandomised) {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return False;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return False;
-
- /* Only caused by corrupt data stream? */
- if (s->nblock_used > s->save_nblock+1)
- return True;
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK;
- k1 ^= BZ_RAND_MASK; s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK;
- s->k0 ^= BZ_RAND_MASK; s->nblock_used++;
- }
-
- } else {
-
- while (True) {
- /* try to finish existing run */
- while (True) {
- if (s->strm->avail_out == 0) return False;
- if (s->state_out_len == 0) break;
- *( (UChar*)(s->strm->next_out) ) = s->state_out_ch;
- BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch );
- s->state_out_len--;
- s->strm->next_out++;
- s->strm->avail_out--;
- s->strm->total_out_lo32++;
- if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++;
- }
-
- /* can a new run be started? */
- if (s->nblock_used == s->save_nblock+1) return False;
-
- /* Only caused by corrupt data stream? */
- if (s->nblock_used > s->save_nblock+1)
- return True;
-
- s->state_out_len = 1;
- s->state_out_ch = s->k0;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 2;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- s->state_out_len = 3;
- BZ_GET_SMALL(k1); s->nblock_used++;
- if (s->nblock_used == s->save_nblock+1) continue;
- if (k1 != s->k0) { s->k0 = k1; continue; };
-
- BZ_GET_SMALL(k1); s->nblock_used++;
- s->state_out_len = ((Int32)k1) + 4;
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- }
-
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompress) ( bz_stream *strm )
-{
- Bool corrupt;
- DState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- while (True) {
- if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR;
- if (s->state == BZ_X_OUTPUT) {
- if (s->smallDecompress)
- corrupt = unRLE_obuf_to_output_SMALL ( s ); else
- corrupt = unRLE_obuf_to_output_FAST ( s );
- if (corrupt) return BZ_DATA_ERROR;
- if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) {
- BZ_FINALISE_CRC ( s->calculatedBlockCRC );
- if (s->verbosity >= 3)
- VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC,
- s->calculatedBlockCRC );
- if (s->verbosity >= 2) VPrintf0 ( "]" );
- if (s->calculatedBlockCRC != s->storedBlockCRC)
- return BZ_DATA_ERROR;
- s->calculatedCombinedCRC
- = (s->calculatedCombinedCRC << 1) |
- (s->calculatedCombinedCRC >> 31);
- s->calculatedCombinedCRC ^= s->calculatedBlockCRC;
- s->state = BZ_X_BLKHDR_1;
- } else {
- return BZ_OK;
- }
- }
- if (s->state >= BZ_X_MAGIC_1) {
- Int32 r = BZ2_decompress ( s );
- if (r == BZ_STREAM_END) {
- if (s->verbosity >= 3)
- VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x",
- s->storedCombinedCRC, s->calculatedCombinedCRC );
- if (s->calculatedCombinedCRC != s->storedCombinedCRC)
- return BZ_DATA_ERROR;
- return r;
- }
- if (s->state != BZ_X_OUTPUT) return r;
- }
- }
-
- AssertH ( 0, 6001 );
-
- return 0; /*NOTREACHED*/
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm )
-{
- DState* s;
- if (strm == NULL) return BZ_PARAM_ERROR;
- s = strm->state;
- if (s == NULL) return BZ_PARAM_ERROR;
- if (s->strm != strm) return BZ_PARAM_ERROR;
-
- if (s->tt != NULL) BZFREE(s->tt);
- if (s->ll16 != NULL) BZFREE(s->ll16);
- if (s->ll4 != NULL) BZFREE(s->ll4);
-
- BZFREE(strm->state);
- strm->state = NULL;
-
- return BZ_OK;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-/*--- File I/O stuff ---*/
-/*---------------------------------------------------*/
-
-#define BZ_SETERR(eee) \
-{ \
- if (bzerror != NULL) *bzerror = eee; \
- if (bzf != NULL) bzf->lastErr = eee; \
-}
-
-typedef
- struct {
- FILE* handle;
- Char buf[BZ_MAX_UNUSED];
- Int32 bufN;
- Bool writing;
- bz_stream strm;
- Int32 lastErr;
- Bool initialisedOk;
- }
- bzFile;
-
-
-/*---------------------------------------------*/
-static Bool myfeof ( FILE* f )
-{
- Int32 c = fgetc ( f );
- if (c == EOF) return True;
- ungetc ( c, f );
- return False;
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzWriteOpen)
- ( int* bzerror,
- FILE* f,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- Int32 ret;
- bzFile* bzf = NULL;
-
- BZ_SETERR(BZ_OK);
-
- if (f == NULL ||
- (blockSize100k < 1 || blockSize100k > 9) ||
- (workFactor < 0 || workFactor > 250) ||
- (verbosity < 0 || verbosity > 4))
- { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
- if (ferror(f))
- { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
- bzf = malloc ( sizeof(bzFile) );
- if (bzf == NULL)
- { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
- BZ_SETERR(BZ_OK);
- bzf->initialisedOk = False;
- bzf->bufN = 0;
- bzf->handle = f;
- bzf->writing = True;
- bzf->strm.bzalloc = NULL;
- bzf->strm.bzfree = NULL;
- bzf->strm.opaque = NULL;
-
- if (workFactor == 0) workFactor = 30;
- ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k,
- verbosity, workFactor );
- if (ret != BZ_OK)
- { BZ_SETERR(ret); free(bzf); return NULL; };
-
- bzf->strm.avail_in = 0;
- bzf->initialisedOk = True;
- return bzf;
-}
-
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWrite)
- ( int* bzerror,
- BZFILE* b,
- void* buf,
- int len )
-{
- Int32 n, n2, ret;
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
- if (bzf == NULL || buf == NULL || len < 0)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
- if (!(bzf->writing))
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
-
- if (len == 0)
- { BZ_SETERR(BZ_OK); return; };
-
- bzf->strm.avail_in = len;
- bzf->strm.next_in = buf;
-
- while (True) {
- bzf->strm.avail_out = BZ_MAX_UNUSED;
- bzf->strm.next_out = bzf->buf;
- ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN );
- if (ret != BZ_RUN_OK)
- { BZ_SETERR(ret); return; };
-
- if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
- n = BZ_MAX_UNUSED - bzf->strm.avail_out;
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
- n, bzf->handle );
- if (n != n2 || ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (bzf->strm.avail_in == 0)
- { BZ_SETERR(BZ_OK); return; };
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzWriteClose)
- ( int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in,
- unsigned int* nbytes_out )
-{
- BZ2_bzWriteClose64 ( bzerror, b, abandon,
- nbytes_in, NULL, nbytes_out, NULL );
-}
-
-
-void BZ_API(BZ2_bzWriteClose64)
- ( int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in_lo32,
- unsigned int* nbytes_in_hi32,
- unsigned int* nbytes_out_lo32,
- unsigned int* nbytes_out_hi32 )
-{
- Int32 n, n2, ret;
- bzFile* bzf = (bzFile*)b;
-
- if (bzf == NULL)
- { BZ_SETERR(BZ_OK); return; };
- if (!(bzf->writing))
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
-
- if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0;
- if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0;
- if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0;
- if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0;
-
- if ((!abandon) && bzf->lastErr == BZ_OK) {
- while (True) {
- bzf->strm.avail_out = BZ_MAX_UNUSED;
- bzf->strm.next_out = bzf->buf;
- ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH );
- if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END)
- { BZ_SETERR(ret); return; };
-
- if (bzf->strm.avail_out < BZ_MAX_UNUSED) {
- n = BZ_MAX_UNUSED - bzf->strm.avail_out;
- n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar),
- n, bzf->handle );
- if (n != n2 || ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (ret == BZ_STREAM_END) break;
- }
- }
-
- if ( !abandon && !ferror ( bzf->handle ) ) {
- fflush ( bzf->handle );
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return; };
- }
-
- if (nbytes_in_lo32 != NULL)
- *nbytes_in_lo32 = bzf->strm.total_in_lo32;
- if (nbytes_in_hi32 != NULL)
- *nbytes_in_hi32 = bzf->strm.total_in_hi32;
- if (nbytes_out_lo32 != NULL)
- *nbytes_out_lo32 = bzf->strm.total_out_lo32;
- if (nbytes_out_hi32 != NULL)
- *nbytes_out_hi32 = bzf->strm.total_out_hi32;
-
- BZ_SETERR(BZ_OK);
- BZ2_bzCompressEnd ( &(bzf->strm) );
- free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-BZFILE* BZ_API(BZ2_bzReadOpen)
- ( int* bzerror,
- FILE* f,
- int verbosity,
- int small,
- void* unused,
- int nUnused )
-{
- bzFile* bzf = NULL;
- int ret;
-
- BZ_SETERR(BZ_OK);
-
- if (f == NULL ||
- (small != 0 && small != 1) ||
- (verbosity < 0 || verbosity > 4) ||
- (unused == NULL && nUnused != 0) ||
- (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED)))
- { BZ_SETERR(BZ_PARAM_ERROR); return NULL; };
-
- if (ferror(f))
- { BZ_SETERR(BZ_IO_ERROR); return NULL; };
-
- bzf = malloc ( sizeof(bzFile) );
- if (bzf == NULL)
- { BZ_SETERR(BZ_MEM_ERROR); return NULL; };
-
- BZ_SETERR(BZ_OK);
-
- bzf->initialisedOk = False;
- bzf->handle = f;
- bzf->bufN = 0;
- bzf->writing = False;
- bzf->strm.bzalloc = NULL;
- bzf->strm.bzfree = NULL;
- bzf->strm.opaque = NULL;
-
- while (nUnused > 0) {
- bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++;
- unused = ((void*)( 1 + ((UChar*)(unused)) ));
- nUnused--;
- }
-
- ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small );
- if (ret != BZ_OK)
- { BZ_SETERR(ret); free(bzf); return NULL; };
-
- bzf->strm.avail_in = bzf->bufN;
- bzf->strm.next_in = bzf->buf;
-
- bzf->initialisedOk = True;
- return bzf;
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b )
-{
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
- if (bzf == NULL)
- { BZ_SETERR(BZ_OK); return; };
-
- if (bzf->writing)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
-
- if (bzf->initialisedOk)
- (void)BZ2_bzDecompressEnd ( &(bzf->strm) );
- free ( bzf );
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzRead)
- ( int* bzerror,
- BZFILE* b,
- void* buf,
- int len )
-{
- Int32 n, ret;
- bzFile* bzf = (bzFile*)b;
-
- BZ_SETERR(BZ_OK);
-
- if (bzf == NULL || buf == NULL || len < 0)
- { BZ_SETERR(BZ_PARAM_ERROR); return 0; };
-
- if (bzf->writing)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; };
-
- if (len == 0)
- { BZ_SETERR(BZ_OK); return 0; };
-
- bzf->strm.avail_out = len;
- bzf->strm.next_out = buf;
-
- while (True) {
-
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return 0; };
-
- if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) {
- n = fread ( bzf->buf, sizeof(UChar),
- BZ_MAX_UNUSED, bzf->handle );
- if (ferror(bzf->handle))
- { BZ_SETERR(BZ_IO_ERROR); return 0; };
- bzf->bufN = n;
- bzf->strm.avail_in = bzf->bufN;
- bzf->strm.next_in = bzf->buf;
- }
-
- ret = BZ2_bzDecompress ( &(bzf->strm) );
-
- if (ret != BZ_OK && ret != BZ_STREAM_END)
- { BZ_SETERR(ret); return 0; };
-
- if (ret == BZ_OK && myfeof(bzf->handle) &&
- bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0)
- { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; };
-
- if (ret == BZ_STREAM_END)
- { BZ_SETERR(BZ_STREAM_END);
- return len - bzf->strm.avail_out; };
- if (bzf->strm.avail_out == 0)
- { BZ_SETERR(BZ_OK); return len; };
-
- }
-
- return 0; /*not reached*/
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzReadGetUnused)
- ( int* bzerror,
- BZFILE* b,
- void** unused,
- int* nUnused )
-{
- bzFile* bzf = (bzFile*)b;
- if (bzf == NULL)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
- if (bzf->lastErr != BZ_STREAM_END)
- { BZ_SETERR(BZ_SEQUENCE_ERROR); return; };
- if (unused == NULL || nUnused == NULL)
- { BZ_SETERR(BZ_PARAM_ERROR); return; };
-
- BZ_SETERR(BZ_OK);
- *nUnused = bzf->strm.avail_in;
- *unused = bzf->strm.next_in;
-}
-#endif
-
-
-/*---------------------------------------------------*/
-/*--- Misc convenience stuff ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffCompress)
- ( char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int blockSize100k,
- int verbosity,
- int workFactor )
-{
- bz_stream strm;
- int ret;
-
- if (dest == NULL || destLen == NULL ||
- source == NULL ||
- blockSize100k < 1 || blockSize100k > 9 ||
- verbosity < 0 || verbosity > 4 ||
- workFactor < 0 || workFactor > 250)
- return BZ_PARAM_ERROR;
-
- if (workFactor == 0) workFactor = 30;
- strm.bzalloc = NULL;
- strm.bzfree = NULL;
- strm.opaque = NULL;
- ret = BZ2_bzCompressInit ( &strm, blockSize100k,
- verbosity, workFactor );
- if (ret != BZ_OK) return ret;
-
- strm.next_in = source;
- strm.next_out = dest;
- strm.avail_in = sourceLen;
- strm.avail_out = *destLen;
-
- ret = BZ2_bzCompress ( &strm, BZ_FINISH );
- if (ret == BZ_FINISH_OK) goto output_overflow;
- if (ret != BZ_STREAM_END) goto errhandler;
-
- /* normal termination */
- *destLen -= strm.avail_out;
- BZ2_bzCompressEnd ( &strm );
- return BZ_OK;
-
- output_overflow:
- BZ2_bzCompressEnd ( &strm );
- return BZ_OUTBUFF_FULL;
-
- errhandler:
- BZ2_bzCompressEnd ( &strm );
- return ret;
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzBuffToBuffDecompress)
- ( char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int small,
- int verbosity )
-{
- bz_stream strm;
- int ret;
-
- if (dest == NULL || destLen == NULL ||
- source == NULL ||
- (small != 0 && small != 1) ||
- verbosity < 0 || verbosity > 4)
- return BZ_PARAM_ERROR;
-
- strm.bzalloc = NULL;
- strm.bzfree = NULL;
- strm.opaque = NULL;
- ret = BZ2_bzDecompressInit ( &strm, verbosity, small );
- if (ret != BZ_OK) return ret;
-
- strm.next_in = source;
- strm.next_out = dest;
- strm.avail_in = sourceLen;
- strm.avail_out = *destLen;
-
- ret = BZ2_bzDecompress ( &strm );
- if (ret == BZ_OK) goto output_overflow_or_eof;
- if (ret != BZ_STREAM_END) goto errhandler;
-
- /* normal termination */
- *destLen -= strm.avail_out;
- BZ2_bzDecompressEnd ( &strm );
- return BZ_OK;
-
- output_overflow_or_eof:
- if (strm.avail_out > 0) {
- BZ2_bzDecompressEnd ( &strm );
- return BZ_UNEXPECTED_EOF;
- } else {
- BZ2_bzDecompressEnd ( &strm );
- return BZ_OUTBUFF_FULL;
- };
-
- errhandler:
- BZ2_bzDecompressEnd ( &strm );
- return ret;
-}
-
-
-/*---------------------------------------------------*/
-/*--
- Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
- to support better zlib compatibility.
- This code is not _officially_ part of libbzip2 (yet);
- I haven't tested it, documented it, or considered the
- threading-safeness of it.
- If this code breaks, please contact both Yoshioka and me.
---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-/*--
- return version like "0.9.5d, 4-Sept-1999".
---*/
-const char * BZ_API(BZ2_bzlibVersion)(void)
-{
- return BZ_VERSION;
-}
-
-
-#ifndef BZ_NO_STDIO
-/*---------------------------------------------------*/
-
-#if defined(_WIN32) || defined(OS2) || defined(MSDOS)
-# include
-# include
-# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY)
-#else
-# define SET_BINARY_MODE(file)
-#endif
-static
-BZFILE * bzopen_or_bzdopen
- ( const char *path, /* no use when bzdopen */
- int fd, /* no use when bzdopen */
- const char *mode,
- int open_mode) /* bzopen: 0, bzdopen:1 */
-{
- int bzerr;
- char unused[BZ_MAX_UNUSED];
- int blockSize100k = 9;
- int writing = 0;
- char mode2[10] = "";
- FILE *fp = NULL;
- BZFILE *bzfp = NULL;
- int verbosity = 0;
- int workFactor = 30;
- int smallMode = 0;
- int nUnused = 0;
-
- if (mode == NULL) return NULL;
- while (*mode) {
- switch (*mode) {
- case 'r':
- writing = 0; break;
- case 'w':
- writing = 1; break;
- case 's':
- smallMode = 1; break;
- default:
- if (isdigit((int)(*mode))) {
- blockSize100k = *mode-BZ_HDR_0;
- }
- }
- mode++;
- }
- strcat(mode2, writing ? "w" : "r" );
- strcat(mode2,"b"); /* binary mode */
-
- if (open_mode==0) {
- if (path==NULL || strcmp(path,"")==0) {
- fp = (writing ? stdout : stdin);
- SET_BINARY_MODE(fp);
- } else {
- fp = fopen(path,mode2);
- }
- } else {
-#ifdef BZ_STRICT_ANSI
- fp = NULL;
-#else
- fp = fdopen(fd,mode2);
-#endif
- }
- if (fp == NULL) return NULL;
-
- if (writing) {
- /* Guard against total chaos and anarchy -- JRS */
- if (blockSize100k < 1) blockSize100k = 1;
- if (blockSize100k > 9) blockSize100k = 9;
- bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k,
- verbosity,workFactor);
- } else {
- bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode,
- unused,nUnused);
- }
- if (bzfp == NULL) {
- if (fp != stdin && fp != stdout) fclose(fp);
- return NULL;
- }
- return bzfp;
-}
-
-
-/*---------------------------------------------------*/
-/*--
- open file for read or write.
- ex) bzopen("file","w9")
- case path="" or NULL => use stdin or stdout.
---*/
-BZFILE * BZ_API(BZ2_bzopen)
- ( const char *path,
- const char *mode )
-{
- return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0);
-}
-
-
-/*---------------------------------------------------*/
-BZFILE * BZ_API(BZ2_bzdopen)
- ( int fd,
- const char *mode )
-{
- return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1);
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len )
-{
- int bzerr, nread;
- if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0;
- nread = BZ2_bzRead(&bzerr,b,buf,len);
- if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) {
- return nread;
- } else {
- return -1;
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len )
-{
- int bzerr;
-
- BZ2_bzWrite(&bzerr,b,buf,len);
- if(bzerr == BZ_OK){
- return len;
- }else{
- return -1;
- }
-}
-
-
-/*---------------------------------------------------*/
-int BZ_API(BZ2_bzflush) (BZFILE *b)
-{
- /* do nothing now... */
- return 0;
-}
-
-
-/*---------------------------------------------------*/
-void BZ_API(BZ2_bzclose) (BZFILE* b)
-{
- int bzerr;
- FILE *fp;
-
- if (b==NULL) {return;}
- fp = ((bzFile *)b)->handle;
- if(((bzFile*)b)->writing){
- BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL);
- if(bzerr != BZ_OK){
- BZ2_bzWriteClose(NULL,b,1,NULL,NULL);
- }
- }else{
- BZ2_bzReadClose(&bzerr,b);
- }
- if(fp!=stdin && fp!=stdout){
- fclose(fp);
- }
-}
-
-
-/*---------------------------------------------------*/
-/*--
- return last error code
---*/
-static const char *bzerrorstrings[] = {
- "OK"
- ,"SEQUENCE_ERROR"
- ,"PARAM_ERROR"
- ,"MEM_ERROR"
- ,"DATA_ERROR"
- ,"DATA_ERROR_MAGIC"
- ,"IO_ERROR"
- ,"UNEXPECTED_EOF"
- ,"OUTBUFF_FULL"
- ,"CONFIG_ERROR"
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
- ,"???" /* for future */
-};
-
-
-const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum)
-{
- int err = ((bzFile *)b)->lastErr;
-
- if(err>0) err = 0;
- *errnum = err;
- return bzerrorstrings[err*-1];
-}
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/bzlib.h b/android/jni/bzlib.h
deleted file mode 100644
index 8277123..0000000
--- a/android/jni/bzlib.h
+++ /dev/null
@@ -1,282 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Public header file for the library. ---*/
-/*--- bzlib.h ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#ifndef _BZLIB_H
-#define _BZLIB_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define BZ_RUN 0
-#define BZ_FLUSH 1
-#define BZ_FINISH 2
-
-#define BZ_OK 0
-#define BZ_RUN_OK 1
-#define BZ_FLUSH_OK 2
-#define BZ_FINISH_OK 3
-#define BZ_STREAM_END 4
-#define BZ_SEQUENCE_ERROR (-1)
-#define BZ_PARAM_ERROR (-2)
-#define BZ_MEM_ERROR (-3)
-#define BZ_DATA_ERROR (-4)
-#define BZ_DATA_ERROR_MAGIC (-5)
-#define BZ_IO_ERROR (-6)
-#define BZ_UNEXPECTED_EOF (-7)
-#define BZ_OUTBUFF_FULL (-8)
-#define BZ_CONFIG_ERROR (-9)
-
-typedef
- struct {
- char *next_in;
- unsigned int avail_in;
- unsigned int total_in_lo32;
- unsigned int total_in_hi32;
-
- char *next_out;
- unsigned int avail_out;
- unsigned int total_out_lo32;
- unsigned int total_out_hi32;
-
- void *state;
-
- void *(*bzalloc)(void *,int,int);
- void (*bzfree)(void *,void *);
- void *opaque;
- }
- bz_stream;
-
-
-#ifndef BZ_IMPORT
-#define BZ_EXPORT
-#endif
-
-#ifndef BZ_NO_STDIO
-/* Need a definitition for FILE */
-#include
-#endif
-
-#ifdef _WIN32
-# include
-# ifdef small
- /* windows.h define small to char */
-# undef small
-# endif
-# ifdef BZ_EXPORT
-# define BZ_API(func) WINAPI func
-# define BZ_EXTERN extern
-# else
- /* import windows dll dynamically */
-# define BZ_API(func) (WINAPI * func)
-# define BZ_EXTERN
-# endif
-#else
-# define BZ_API(func) func
-# define BZ_EXTERN extern
-#endif
-
-
-/*-- Core (low-level) library functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressInit) (
- bz_stream* strm,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompress) (
- bz_stream* strm,
- int action
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) (
- bz_stream* strm
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) (
- bz_stream *strm,
- int verbosity,
- int small
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompress) (
- bz_stream* strm
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) (
- bz_stream *strm
- );
-
-
-
-/*-- High(er) level library functions --*/
-
-#ifndef BZ_NO_STDIO
-#define BZ_MAX_UNUSED 5000
-
-typedef void BZFILE;
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) (
- int* bzerror,
- FILE* f,
- int verbosity,
- int small,
- void* unused,
- int nUnused
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadClose) (
- int* bzerror,
- BZFILE* b
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) (
- int* bzerror,
- BZFILE* b,
- void** unused,
- int* nUnused
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzRead) (
- int* bzerror,
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) (
- int* bzerror,
- FILE* f,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWrite) (
- int* bzerror,
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose) (
- int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in,
- unsigned int* nbytes_out
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) (
- int* bzerror,
- BZFILE* b,
- int abandon,
- unsigned int* nbytes_in_lo32,
- unsigned int* nbytes_in_hi32,
- unsigned int* nbytes_out_lo32,
- unsigned int* nbytes_out_hi32
- );
-#endif
-
-
-/*-- Utility functions --*/
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) (
- char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int blockSize100k,
- int verbosity,
- int workFactor
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) (
- char* dest,
- unsigned int* destLen,
- char* source,
- unsigned int sourceLen,
- int small,
- int verbosity
- );
-
-
-/*--
- Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp)
- to support better zlib compatibility.
- This code is not _officially_ part of libbzip2 (yet);
- I haven't tested it, documented it, or considered the
- threading-safeness of it.
- If this code breaks, please contact both Yoshioka and me.
---*/
-
-BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) (
- void
- );
-
-#ifndef BZ_NO_STDIO
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) (
- const char *path,
- const char *mode
- );
-
-BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) (
- int fd,
- const char *mode
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzread) (
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzwrite) (
- BZFILE* b,
- void* buf,
- int len
- );
-
-BZ_EXTERN int BZ_API(BZ2_bzflush) (
- BZFILE* b
- );
-
-BZ_EXTERN void BZ_API(BZ2_bzclose) (
- BZFILE* b
- );
-
-BZ_EXTERN const char * BZ_API(BZ2_bzerror) (
- BZFILE *b,
- int *errnum
- );
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/bzlib_private.h b/android/jni/bzlib_private.h
deleted file mode 100644
index 5d0217f..0000000
--- a/android/jni/bzlib_private.h
+++ /dev/null
@@ -1,509 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Private header file for the library. ---*/
-/*--- bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#ifndef _BZLIB_PRIVATE_H
-#define _BZLIB_PRIVATE_H
-
-#include
-
-#ifndef BZ_NO_STDIO
-#include
-#include
-#include
-#endif
-
-#include "bzlib.h"
-
-
-
-/*-- General stuff. --*/
-
-#define BZ_VERSION "1.0.6, 6-Sept-2010"
-
-typedef char Char;
-typedef unsigned char Bool;
-typedef unsigned char UChar;
-typedef int Int32;
-typedef unsigned int UInt32;
-typedef short Int16;
-typedef unsigned short UInt16;
-
-#define True ((Bool)1)
-#define False ((Bool)0)
-
-#ifndef __GNUC__
-#define __inline__ /* */
-#endif
-
-#ifndef BZ_NO_STDIO
-
-extern void BZ2_bz__AssertH__fail ( int errcode );
-#define AssertH(cond,errcode) \
- { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); }
-
-#if BZ_DEBUG
-#define AssertD(cond,msg) \
- { if (!(cond)) { \
- fprintf ( stderr, \
- "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\
- exit(1); \
- }}
-#else
-#define AssertD(cond,msg) /* */
-#endif
-
-#define VPrintf0(zf) \
- fprintf(stderr,zf)
-#define VPrintf1(zf,za1) \
- fprintf(stderr,zf,za1)
-#define VPrintf2(zf,za1,za2) \
- fprintf(stderr,zf,za1,za2)
-#define VPrintf3(zf,za1,za2,za3) \
- fprintf(stderr,zf,za1,za2,za3)
-#define VPrintf4(zf,za1,za2,za3,za4) \
- fprintf(stderr,zf,za1,za2,za3,za4)
-#define VPrintf5(zf,za1,za2,za3,za4,za5) \
- fprintf(stderr,zf,za1,za2,za3,za4,za5)
-
-#else
-
-extern void bz_internal_error ( int errcode );
-#define AssertH(cond,errcode) \
- { if (!(cond)) bz_internal_error ( errcode ); }
-#define AssertD(cond,msg) do { } while (0)
-#define VPrintf0(zf) do { } while (0)
-#define VPrintf1(zf,za1) do { } while (0)
-#define VPrintf2(zf,za1,za2) do { } while (0)
-#define VPrintf3(zf,za1,za2,za3) do { } while (0)
-#define VPrintf4(zf,za1,za2,za3,za4) do { } while (0)
-#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0)
-
-#endif
-
-
-#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1)
-#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp))
-
-
-/*-- Header bytes. --*/
-
-#define BZ_HDR_B 0x42 /* 'B' */
-#define BZ_HDR_Z 0x5a /* 'Z' */
-#define BZ_HDR_h 0x68 /* 'h' */
-#define BZ_HDR_0 0x30 /* '0' */
-
-/*-- Constants for the back end. --*/
-
-#define BZ_MAX_ALPHA_SIZE 258
-#define BZ_MAX_CODE_LEN 23
-
-#define BZ_RUNA 0
-#define BZ_RUNB 1
-
-#define BZ_N_GROUPS 6
-#define BZ_G_SIZE 50
-#define BZ_N_ITERS 4
-
-#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE))
-
-
-
-/*-- Stuff for randomising repetitive blocks. --*/
-
-extern Int32 BZ2_rNums[512];
-
-#define BZ_RAND_DECLS \
- Int32 rNToGo; \
- Int32 rTPos \
-
-#define BZ_RAND_INIT_MASK \
- s->rNToGo = 0; \
- s->rTPos = 0 \
-
-#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)
-
-#define BZ_RAND_UPD_MASK \
- if (s->rNToGo == 0) { \
- s->rNToGo = BZ2_rNums[s->rTPos]; \
- s->rTPos++; \
- if (s->rTPos == 512) s->rTPos = 0; \
- } \
- s->rNToGo--;
-
-
-
-/*-- Stuff for doing CRCs. --*/
-
-extern UInt32 BZ2_crc32Table[256];
-
-#define BZ_INITIALISE_CRC(crcVar) \
-{ \
- crcVar = 0xffffffffL; \
-}
-
-#define BZ_FINALISE_CRC(crcVar) \
-{ \
- crcVar = ~(crcVar); \
-}
-
-#define BZ_UPDATE_CRC(crcVar,cha) \
-{ \
- crcVar = (crcVar << 8) ^ \
- BZ2_crc32Table[(crcVar >> 24) ^ \
- ((UChar)cha)]; \
-}
-
-
-
-/*-- States and modes for compression. --*/
-
-#define BZ_M_IDLE 1
-#define BZ_M_RUNNING 2
-#define BZ_M_FLUSHING 3
-#define BZ_M_FINISHING 4
-
-#define BZ_S_OUTPUT 1
-#define BZ_S_INPUT 2
-
-#define BZ_N_RADIX 2
-#define BZ_N_QSORT 12
-#define BZ_N_SHELL 18
-#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2)
-
-
-
-
-/*-- Structure holding all the compression-side stuff. --*/
-
-typedef
- struct {
- /* pointer back to the struct bz_stream */
- bz_stream* strm;
-
- /* mode this stream is in, and whether inputting */
- /* or outputting data */
- Int32 mode;
- Int32 state;
-
- /* remembers avail_in when flush/finish requested */
- UInt32 avail_in_expect;
-
- /* for doing the block sorting */
- UInt32* arr1;
- UInt32* arr2;
- UInt32* ftab;
- Int32 origPtr;
-
- /* aliases for arr1 and arr2 */
- UInt32* ptr;
- UChar* block;
- UInt16* mtfv;
- UChar* zbits;
-
- /* for deciding when to use the fallback sorting algorithm */
- Int32 workFactor;
-
- /* run-length-encoding of the input */
- UInt32 state_in_ch;
- Int32 state_in_len;
- BZ_RAND_DECLS;
-
- /* input and output limits and current posns */
- Int32 nblock;
- Int32 nblockMAX;
- Int32 numZ;
- Int32 state_out_pos;
-
- /* map of bytes used in block */
- Int32 nInUse;
- Bool inUse[256];
- UChar unseqToSeq[256];
-
- /* the buffer for bit stream creation */
- UInt32 bsBuff;
- Int32 bsLive;
-
- /* block and combined CRCs */
- UInt32 blockCRC;
- UInt32 combinedCRC;
-
- /* misc administratium */
- Int32 verbosity;
- Int32 blockNo;
- Int32 blockSize100k;
-
- /* stuff for coding the MTF values */
- Int32 nMTF;
- Int32 mtfFreq [BZ_MAX_ALPHA_SIZE];
- UChar selector [BZ_MAX_SELECTORS];
- UChar selectorMtf[BZ_MAX_SELECTORS];
-
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- /* second dimension: only 3 needed; 4 makes index calculations faster */
- UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4];
-
- }
- EState;
-
-
-
-/*-- externs for compression. --*/
-
-extern void
-BZ2_blockSort ( EState* );
-
-extern void
-BZ2_compressBlock ( EState*, Bool );
-
-extern void
-BZ2_bsInitWrite ( EState* );
-
-extern void
-BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 );
-
-extern void
-BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 );
-
-
-
-/*-- states for decompression. --*/
-
-#define BZ_X_IDLE 1
-#define BZ_X_OUTPUT 2
-
-#define BZ_X_MAGIC_1 10
-#define BZ_X_MAGIC_2 11
-#define BZ_X_MAGIC_3 12
-#define BZ_X_MAGIC_4 13
-#define BZ_X_BLKHDR_1 14
-#define BZ_X_BLKHDR_2 15
-#define BZ_X_BLKHDR_3 16
-#define BZ_X_BLKHDR_4 17
-#define BZ_X_BLKHDR_5 18
-#define BZ_X_BLKHDR_6 19
-#define BZ_X_BCRC_1 20
-#define BZ_X_BCRC_2 21
-#define BZ_X_BCRC_3 22
-#define BZ_X_BCRC_4 23
-#define BZ_X_RANDBIT 24
-#define BZ_X_ORIGPTR_1 25
-#define BZ_X_ORIGPTR_2 26
-#define BZ_X_ORIGPTR_3 27
-#define BZ_X_MAPPING_1 28
-#define BZ_X_MAPPING_2 29
-#define BZ_X_SELECTOR_1 30
-#define BZ_X_SELECTOR_2 31
-#define BZ_X_SELECTOR_3 32
-#define BZ_X_CODING_1 33
-#define BZ_X_CODING_2 34
-#define BZ_X_CODING_3 35
-#define BZ_X_MTF_1 36
-#define BZ_X_MTF_2 37
-#define BZ_X_MTF_3 38
-#define BZ_X_MTF_4 39
-#define BZ_X_MTF_5 40
-#define BZ_X_MTF_6 41
-#define BZ_X_ENDHDR_2 42
-#define BZ_X_ENDHDR_3 43
-#define BZ_X_ENDHDR_4 44
-#define BZ_X_ENDHDR_5 45
-#define BZ_X_ENDHDR_6 46
-#define BZ_X_CCRC_1 47
-#define BZ_X_CCRC_2 48
-#define BZ_X_CCRC_3 49
-#define BZ_X_CCRC_4 50
-
-
-
-/*-- Constants for the fast MTF decoder. --*/
-
-#define MTFA_SIZE 4096
-#define MTFL_SIZE 16
-
-
-
-/*-- Structure holding all the decompression-side stuff. --*/
-
-typedef
- struct {
- /* pointer back to the struct bz_stream */
- bz_stream* strm;
-
- /* state indicator for this stream */
- Int32 state;
-
- /* for doing the final run-length decoding */
- UChar state_out_ch;
- Int32 state_out_len;
- Bool blockRandomised;
- BZ_RAND_DECLS;
-
- /* the buffer for bit stream reading */
- UInt32 bsBuff;
- Int32 bsLive;
-
- /* misc administratium */
- Int32 blockSize100k;
- Bool smallDecompress;
- Int32 currBlockNo;
- Int32 verbosity;
-
- /* for undoing the Burrows-Wheeler transform */
- Int32 origPtr;
- UInt32 tPos;
- Int32 k0;
- Int32 unzftab[256];
- Int32 nblock_used;
- Int32 cftab[257];
- Int32 cftabCopy[257];
-
- /* for undoing the Burrows-Wheeler transform (FAST) */
- UInt32 *tt;
-
- /* for undoing the Burrows-Wheeler transform (SMALL) */
- UInt16 *ll16;
- UChar *ll4;
-
- /* stored and calculated CRCs */
- UInt32 storedBlockCRC;
- UInt32 storedCombinedCRC;
- UInt32 calculatedBlockCRC;
- UInt32 calculatedCombinedCRC;
-
- /* map of bytes used in block */
- Int32 nInUse;
- Bool inUse[256];
- Bool inUse16[16];
- UChar seqToUnseq[256];
-
- /* for decoding the MTF values */
- UChar mtfa [MTFA_SIZE];
- Int32 mtfbase[256 / MTFL_SIZE];
- UChar selector [BZ_MAX_SELECTORS];
- UChar selectorMtf[BZ_MAX_SELECTORS];
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
-
- Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 minLens[BZ_N_GROUPS];
-
- /* save area for scalars in the main decompress code */
- Int32 save_i;
- Int32 save_j;
- Int32 save_t;
- Int32 save_alphaSize;
- Int32 save_nGroups;
- Int32 save_nSelectors;
- Int32 save_EOB;
- Int32 save_groupNo;
- Int32 save_groupPos;
- Int32 save_nextSym;
- Int32 save_nblockMAX;
- Int32 save_nblock;
- Int32 save_es;
- Int32 save_N;
- Int32 save_curr;
- Int32 save_zt;
- Int32 save_zn;
- Int32 save_zvec;
- Int32 save_zj;
- Int32 save_gSel;
- Int32 save_gMinlen;
- Int32* save_gLimit;
- Int32* save_gBase;
- Int32* save_gPerm;
-
- }
- DState;
-
-
-
-/*-- Macros for decompression. --*/
-
-#define BZ_GET_FAST(cccc) \
- /* c_tPos is unsigned, hence test < 0 is pointless. */ \
- if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
- s->tPos = s->tt[s->tPos]; \
- cccc = (UChar)(s->tPos & 0xff); \
- s->tPos >>= 8;
-
-#define BZ_GET_FAST_C(cccc) \
- /* c_tPos is unsigned, hence test < 0 is pointless. */ \
- if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \
- c_tPos = c_tt[c_tPos]; \
- cccc = (UChar)(c_tPos & 0xff); \
- c_tPos >>= 8;
-
-#define SET_LL4(i,n) \
- { if (((i) & 0x1) == 0) \
- s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \
- s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \
- }
-
-#define GET_LL4(i) \
- ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF)
-
-#define SET_LL(i,n) \
- { s->ll16[i] = (UInt16)(n & 0x0000ffff); \
- SET_LL4(i, n >> 16); \
- }
-
-#define GET_LL(i) \
- (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16))
-
-#define BZ_GET_SMALL(cccc) \
- /* c_tPos is unsigned, hence test < 0 is pointless. */ \
- if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \
- cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \
- s->tPos = GET_LL(s->tPos);
-
-
-/*-- externs for decompression. --*/
-
-extern Int32
-BZ2_indexIntoF ( Int32, Int32* );
-
-extern Int32
-BZ2_decompress ( DState* );
-
-extern void
-BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*,
- Int32, Int32, Int32 );
-
-
-#endif
-
-
-/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/
-
-#ifdef BZ_NO_STDIO
-#ifndef NULL
-#define NULL 0
-#endif
-#endif
-
-
-/*-------------------------------------------------------------*/
-/*--- end bzlib_private.h ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/cn_reactnative_modules_update_DownloadTask.h b/android/jni/cn_reactnative_modules_update_DownloadTask.h
index fc08c72..b4b8771 100644
--- a/android/jni/cn_reactnative_modules_update_DownloadTask.h
+++ b/android/jni/cn_reactnative_modules_update_DownloadTask.h
@@ -9,10 +9,10 @@ extern "C" {
#endif
/*
* Class: cn_reactnative_modules_update_DownloadTask
- * Method: bsdiffPatch
+ * Method: hdiffPatch
* Signature: ([B[B)[B
*/
-JNIEXPORT jbyteArray JNICALL Java_cn_reactnative_modules_update_DownloadTask_bsdiffPatch
+JNIEXPORT jbyteArray JNICALL Java_cn_reactnative_modules_update_DownloadTask_hdiffPatch
(JNIEnv *, jclass, jbyteArray, jbyteArray);
#ifdef __cplusplus
diff --git a/android/jni/compress.c b/android/jni/compress.c
deleted file mode 100644
index caf7696..0000000
--- a/android/jni/compress.c
+++ /dev/null
@@ -1,672 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Compression machinery (not incl block sorting) ---*/
-/*--- compress.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-/* CHANGES
- 0.9.0 -- original version.
- 0.9.0a/b -- no changes in this file.
- 0.9.0c -- changed setting of nGroups in sendMTFValues()
- so as to do a bit better on small files
-*/
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-/*--- Bit stream I/O ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-void BZ2_bsInitWrite ( EState* s )
-{
- s->bsLive = 0;
- s->bsBuff = 0;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsFinishWrite ( EState* s )
-{
- while (s->bsLive > 0) {
- s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24);
- s->numZ++;
- s->bsBuff <<= 8;
- s->bsLive -= 8;
- }
-}
-
-
-/*---------------------------------------------------*/
-#define bsNEEDW(nz) \
-{ \
- while (s->bsLive >= 8) { \
- s->zbits[s->numZ] \
- = (UChar)(s->bsBuff >> 24); \
- s->numZ++; \
- s->bsBuff <<= 8; \
- s->bsLive -= 8; \
- } \
-}
-
-
-/*---------------------------------------------------*/
-static
-__inline__
-void bsW ( EState* s, Int32 n, UInt32 v )
-{
- bsNEEDW ( n );
- s->bsBuff |= (v << (32 - s->bsLive - n));
- s->bsLive += n;
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUInt32 ( EState* s, UInt32 u )
-{
- bsW ( s, 8, (u >> 24) & 0xffL );
- bsW ( s, 8, (u >> 16) & 0xffL );
- bsW ( s, 8, (u >> 8) & 0xffL );
- bsW ( s, 8, u & 0xffL );
-}
-
-
-/*---------------------------------------------------*/
-static
-void bsPutUChar ( EState* s, UChar c )
-{
- bsW( s, 8, (UInt32)c );
-}
-
-
-/*---------------------------------------------------*/
-/*--- The back end proper ---*/
-/*---------------------------------------------------*/
-
-/*---------------------------------------------------*/
-static
-void makeMaps_e ( EState* s )
-{
- Int32 i;
- s->nInUse = 0;
- for (i = 0; i < 256; i++)
- if (s->inUse[i]) {
- s->unseqToSeq[i] = s->nInUse;
- s->nInUse++;
- }
-}
-
-
-/*---------------------------------------------------*/
-static
-void generateMTFValues ( EState* s )
-{
- UChar yy[256];
- Int32 i, j;
- Int32 zPend;
- Int32 wr;
- Int32 EOB;
-
- /*
- After sorting (eg, here),
- s->arr1 [ 0 .. s->nblock-1 ] holds sorted order,
- and
- ((UChar*)s->arr2) [ 0 .. s->nblock-1 ]
- holds the original block data.
-
- The first thing to do is generate the MTF values,
- and put them in
- ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ].
- Because there are strictly fewer or equal MTF values
- than block values, ptr values in this area are overwritten
- with MTF values only when they are no longer needed.
-
- The final compressed bitstream is generated into the
- area starting at
- (UChar*) (&((UChar*)s->arr2)[s->nblock])
-
- These storage aliases are set up in bzCompressInit(),
- except for the last one, which is arranged in
- compressBlock().
- */
- UInt32* ptr = s->ptr;
- UChar* block = s->block;
- UInt16* mtfv = s->mtfv;
-
- makeMaps_e ( s );
- EOB = s->nInUse+1;
-
- for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0;
-
- wr = 0;
- zPend = 0;
- for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i;
-
- for (i = 0; i < s->nblock; i++) {
- UChar ll_i;
- AssertD ( wr <= i, "generateMTFValues(1)" );
- j = ptr[i]-1; if (j < 0) j += s->nblock;
- ll_i = s->unseqToSeq[block[j]];
- AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" );
-
- if (yy[0] == ll_i) {
- zPend++;
- } else {
-
- if (zPend > 0) {
- zPend--;
- while (True) {
- if (zPend & 1) {
- mtfv[wr] = BZ_RUNB; wr++;
- s->mtfFreq[BZ_RUNB]++;
- } else {
- mtfv[wr] = BZ_RUNA; wr++;
- s->mtfFreq[BZ_RUNA]++;
- }
- if (zPend < 2) break;
- zPend = (zPend - 2) / 2;
- };
- zPend = 0;
- }
- {
- register UChar rtmp;
- register UChar* ryy_j;
- register UChar rll_i;
- rtmp = yy[1];
- yy[1] = yy[0];
- ryy_j = &(yy[1]);
- rll_i = ll_i;
- while ( rll_i != rtmp ) {
- register UChar rtmp2;
- ryy_j++;
- rtmp2 = rtmp;
- rtmp = *ryy_j;
- *ryy_j = rtmp2;
- };
- yy[0] = rtmp;
- j = ryy_j - &(yy[0]);
- mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++;
- }
-
- }
- }
-
- if (zPend > 0) {
- zPend--;
- while (True) {
- if (zPend & 1) {
- mtfv[wr] = BZ_RUNB; wr++;
- s->mtfFreq[BZ_RUNB]++;
- } else {
- mtfv[wr] = BZ_RUNA; wr++;
- s->mtfFreq[BZ_RUNA]++;
- }
- if (zPend < 2) break;
- zPend = (zPend - 2) / 2;
- };
- zPend = 0;
- }
-
- mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++;
-
- s->nMTF = wr;
-}
-
-
-/*---------------------------------------------------*/
-#define BZ_LESSER_ICOST 0
-#define BZ_GREATER_ICOST 15
-
-static
-void sendMTFValues ( EState* s )
-{
- Int32 v, t, i, j, gs, ge, totc, bt, bc, iter;
- Int32 nSelectors, alphaSize, minLen, maxLen, selCtr;
- Int32 nGroups, nBytes;
-
- /*--
- UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- is a global since the decoder also needs it.
-
- Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE];
- are also globals only used in this proc.
- Made global to keep stack frame size small.
- --*/
-
-
- UInt16 cost[BZ_N_GROUPS];
- Int32 fave[BZ_N_GROUPS];
-
- UInt16* mtfv = s->mtfv;
-
- if (s->verbosity >= 3)
- VPrintf3( " %d in block, %d after MTF & 1-2 coding, "
- "%d+2 syms in use\n",
- s->nblock, s->nMTF, s->nInUse );
-
- alphaSize = s->nInUse+2;
- for (t = 0; t < BZ_N_GROUPS; t++)
- for (v = 0; v < alphaSize; v++)
- s->len[t][v] = BZ_GREATER_ICOST;
-
- /*--- Decide how many coding tables to use ---*/
- AssertH ( s->nMTF > 0, 3001 );
- if (s->nMTF < 200) nGroups = 2; else
- if (s->nMTF < 600) nGroups = 3; else
- if (s->nMTF < 1200) nGroups = 4; else
- if (s->nMTF < 2400) nGroups = 5; else
- nGroups = 6;
-
- /*--- Generate an initial set of coding tables ---*/
- {
- Int32 nPart, remF, tFreq, aFreq;
-
- nPart = nGroups;
- remF = s->nMTF;
- gs = 0;
- while (nPart > 0) {
- tFreq = remF / nPart;
- ge = gs-1;
- aFreq = 0;
- while (aFreq < tFreq && ge < alphaSize-1) {
- ge++;
- aFreq += s->mtfFreq[ge];
- }
-
- if (ge > gs
- && nPart != nGroups && nPart != 1
- && ((nGroups-nPart) % 2 == 1)) {
- aFreq -= s->mtfFreq[ge];
- ge--;
- }
-
- if (s->verbosity >= 3)
- VPrintf5( " initial group %d, [%d .. %d], "
- "has %d syms (%4.1f%%)\n",
- nPart, gs, ge, aFreq,
- (100.0 * (float)aFreq) / (float)(s->nMTF) );
-
- for (v = 0; v < alphaSize; v++)
- if (v >= gs && v <= ge)
- s->len[nPart-1][v] = BZ_LESSER_ICOST; else
- s->len[nPart-1][v] = BZ_GREATER_ICOST;
-
- nPart--;
- gs = ge+1;
- remF -= aFreq;
- }
- }
-
- /*---
- Iterate up to BZ_N_ITERS times to improve the tables.
- ---*/
- for (iter = 0; iter < BZ_N_ITERS; iter++) {
-
- for (t = 0; t < nGroups; t++) fave[t] = 0;
-
- for (t = 0; t < nGroups; t++)
- for (v = 0; v < alphaSize; v++)
- s->rfreq[t][v] = 0;
-
- /*---
- Set up an auxiliary length table which is used to fast-track
- the common case (nGroups == 6).
- ---*/
- if (nGroups == 6) {
- for (v = 0; v < alphaSize; v++) {
- s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v];
- s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v];
- s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v];
- }
- }
-
- nSelectors = 0;
- totc = 0;
- gs = 0;
- while (True) {
-
- /*--- Set group start & end marks. --*/
- if (gs >= s->nMTF) break;
- ge = gs + BZ_G_SIZE - 1;
- if (ge >= s->nMTF) ge = s->nMTF-1;
-
- /*--
- Calculate the cost of this group as coded
- by each of the coding tables.
- --*/
- for (t = 0; t < nGroups; t++) cost[t] = 0;
-
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
- register UInt32 cost01, cost23, cost45;
- register UInt16 icv;
- cost01 = cost23 = cost45 = 0;
-
-# define BZ_ITER(nn) \
- icv = mtfv[gs+(nn)]; \
- cost01 += s->len_pack[icv][0]; \
- cost23 += s->len_pack[icv][1]; \
- cost45 += s->len_pack[icv][2]; \
-
- BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4);
- BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9);
- BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14);
- BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19);
- BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24);
- BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29);
- BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34);
- BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39);
- BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44);
- BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49);
-
-# undef BZ_ITER
-
- cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16;
- cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16;
- cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16;
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++) {
- UInt16 icv = mtfv[i];
- for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv];
- }
- }
-
- /*--
- Find the coding table which is best for this group,
- and record its identity in the selector table.
- --*/
- bc = 999999999; bt = -1;
- for (t = 0; t < nGroups; t++)
- if (cost[t] < bc) { bc = cost[t]; bt = t; };
- totc += bc;
- fave[bt]++;
- s->selector[nSelectors] = bt;
- nSelectors++;
-
- /*--
- Increment the symbol frequencies for the selected table.
- --*/
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
-
-# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++
-
- BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4);
- BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9);
- BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14);
- BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19);
- BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24);
- BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29);
- BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34);
- BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39);
- BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44);
- BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49);
-
-# undef BZ_ITUR
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++)
- s->rfreq[bt][ mtfv[i] ]++;
- }
-
- gs = ge+1;
- }
- if (s->verbosity >= 3) {
- VPrintf2 ( " pass %d: size is %d, grp uses are ",
- iter+1, totc/8 );
- for (t = 0; t < nGroups; t++)
- VPrintf1 ( "%d ", fave[t] );
- VPrintf0 ( "\n" );
- }
-
- /*--
- Recompute the tables based on the accumulated frequencies.
- --*/
- /* maxLen was changed from 20 to 17 in bzip2-1.0.3. See
- comment in huffman.c for details. */
- for (t = 0; t < nGroups; t++)
- BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]),
- alphaSize, 17 /*20*/ );
- }
-
-
- AssertH( nGroups < 8, 3002 );
- AssertH( nSelectors < 32768 &&
- nSelectors <= (2 + (900000 / BZ_G_SIZE)),
- 3003 );
-
-
- /*--- Compute MTF values for the selectors. ---*/
- {
- UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp;
- for (i = 0; i < nGroups; i++) pos[i] = i;
- for (i = 0; i < nSelectors; i++) {
- ll_i = s->selector[i];
- j = 0;
- tmp = pos[j];
- while ( ll_i != tmp ) {
- j++;
- tmp2 = tmp;
- tmp = pos[j];
- pos[j] = tmp2;
- };
- pos[0] = tmp;
- s->selectorMtf[i] = j;
- }
- };
-
- /*--- Assign actual codes for the tables. --*/
- for (t = 0; t < nGroups; t++) {
- minLen = 32;
- maxLen = 0;
- for (i = 0; i < alphaSize; i++) {
- if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
- if (s->len[t][i] < minLen) minLen = s->len[t][i];
- }
- AssertH ( !(maxLen > 17 /*20*/ ), 3004 );
- AssertH ( !(minLen < 1), 3005 );
- BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]),
- minLen, maxLen, alphaSize );
- }
-
- /*--- Transmit the mapping table. ---*/
- {
- Bool inUse16[16];
- for (i = 0; i < 16; i++) {
- inUse16[i] = False;
- for (j = 0; j < 16; j++)
- if (s->inUse[i * 16 + j]) inUse16[i] = True;
- }
-
- nBytes = s->numZ;
- for (i = 0; i < 16; i++)
- if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0);
-
- for (i = 0; i < 16; i++)
- if (inUse16[i])
- for (j = 0; j < 16; j++) {
- if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0);
- }
-
- if (s->verbosity >= 3)
- VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes );
- }
-
- /*--- Now the selectors. ---*/
- nBytes = s->numZ;
- bsW ( s, 3, nGroups );
- bsW ( s, 15, nSelectors );
- for (i = 0; i < nSelectors; i++) {
- for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1);
- bsW(s,1,0);
- }
- if (s->verbosity >= 3)
- VPrintf1( "selectors %d, ", s->numZ-nBytes );
-
- /*--- Now the coding tables. ---*/
- nBytes = s->numZ;
-
- for (t = 0; t < nGroups; t++) {
- Int32 curr = s->len[t][0];
- bsW ( s, 5, curr );
- for (i = 0; i < alphaSize; i++) {
- while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ };
- while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ };
- bsW ( s, 1, 0 );
- }
- }
-
- if (s->verbosity >= 3)
- VPrintf1 ( "code lengths %d, ", s->numZ-nBytes );
-
- /*--- And finally, the block data proper ---*/
- nBytes = s->numZ;
- selCtr = 0;
- gs = 0;
- while (True) {
- if (gs >= s->nMTF) break;
- ge = gs + BZ_G_SIZE - 1;
- if (ge >= s->nMTF) ge = s->nMTF-1;
- AssertH ( s->selector[selCtr] < nGroups, 3006 );
-
- if (nGroups == 6 && 50 == ge-gs+1) {
- /*--- fast track the common case ---*/
- UInt16 mtfv_i;
- UChar* s_len_sel_selCtr
- = &(s->len[s->selector[selCtr]][0]);
- Int32* s_code_sel_selCtr
- = &(s->code[s->selector[selCtr]][0]);
-
-# define BZ_ITAH(nn) \
- mtfv_i = mtfv[gs+(nn)]; \
- bsW ( s, \
- s_len_sel_selCtr[mtfv_i], \
- s_code_sel_selCtr[mtfv_i] )
-
- BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4);
- BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9);
- BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14);
- BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19);
- BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24);
- BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29);
- BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34);
- BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39);
- BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44);
- BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49);
-
-# undef BZ_ITAH
-
- } else {
- /*--- slow version which correctly handles all situations ---*/
- for (i = gs; i <= ge; i++) {
- bsW ( s,
- s->len [s->selector[selCtr]] [mtfv[i]],
- s->code [s->selector[selCtr]] [mtfv[i]] );
- }
- }
-
-
- gs = ge+1;
- selCtr++;
- }
- AssertH( selCtr == nSelectors, 3007 );
-
- if (s->verbosity >= 3)
- VPrintf1( "codes %d\n", s->numZ-nBytes );
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_compressBlock ( EState* s, Bool is_last_block )
-{
- if (s->nblock > 0) {
-
- BZ_FINALISE_CRC ( s->blockCRC );
- s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31);
- s->combinedCRC ^= s->blockCRC;
- if (s->blockNo > 1) s->numZ = 0;
-
- if (s->verbosity >= 2)
- VPrintf4( " block %d: crc = 0x%08x, "
- "combined CRC = 0x%08x, size = %d\n",
- s->blockNo, s->blockCRC, s->combinedCRC, s->nblock );
-
- BZ2_blockSort ( s );
- }
-
- s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]);
-
- /*-- If this is the first block, create the stream header. --*/
- if (s->blockNo == 1) {
- BZ2_bsInitWrite ( s );
- bsPutUChar ( s, BZ_HDR_B );
- bsPutUChar ( s, BZ_HDR_Z );
- bsPutUChar ( s, BZ_HDR_h );
- bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) );
- }
-
- if (s->nblock > 0) {
-
- bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 );
- bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 );
- bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 );
-
- /*-- Now the block's CRC, so it is in a known place. --*/
- bsPutUInt32 ( s, s->blockCRC );
-
- /*--
- Now a single bit indicating (non-)randomisation.
- As of version 0.9.5, we use a better sorting algorithm
- which makes randomisation unnecessary. So always set
- the randomised bit to 'no'. Of course, the decoder
- still needs to be able to handle randomised blocks
- so as to maintain backwards compatibility with
- older versions of bzip2.
- --*/
- bsW(s,1,0);
-
- bsW ( s, 24, s->origPtr );
- generateMTFValues ( s );
- sendMTFValues ( s );
- }
-
-
- /*-- If this is the last block, add the stream trailer. --*/
- if (is_last_block) {
-
- bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 );
- bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 );
- bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 );
- bsPutUInt32 ( s, s->combinedCRC );
- if (s->verbosity >= 2)
- VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC );
- bsFinishWrite ( s );
- }
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end compress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/crctable.c b/android/jni/crctable.c
deleted file mode 100644
index 1fea7e9..0000000
--- a/android/jni/crctable.c
+++ /dev/null
@@ -1,104 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for doing CRCs ---*/
-/*--- crctable.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*--
- I think this is an implementation of the AUTODIN-II,
- Ethernet & FDDI 32-bit CRC standard. Vaguely derived
- from code by Rob Warnock, in Section 51 of the
- comp.compression FAQ.
---*/
-
-UInt32 BZ2_crc32Table[256] = {
-
- /*-- Ugly, innit? --*/
-
- 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L,
- 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L,
- 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L,
- 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL,
- 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L,
- 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L,
- 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L,
- 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL,
- 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L,
- 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L,
- 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L,
- 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL,
- 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L,
- 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L,
- 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L,
- 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL,
- 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL,
- 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L,
- 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L,
- 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL,
- 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL,
- 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L,
- 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L,
- 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL,
- 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL,
- 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L,
- 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L,
- 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL,
- 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL,
- 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L,
- 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L,
- 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL,
- 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L,
- 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL,
- 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL,
- 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L,
- 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L,
- 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL,
- 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL,
- 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L,
- 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L,
- 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL,
- 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL,
- 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L,
- 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L,
- 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL,
- 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL,
- 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L,
- 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L,
- 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL,
- 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L,
- 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L,
- 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L,
- 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL,
- 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L,
- 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L,
- 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L,
- 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL,
- 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L,
- 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L,
- 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L,
- 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL,
- 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L,
- 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end crctable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/decompress.c b/android/jni/decompress.c
deleted file mode 100644
index 311f566..0000000
--- a/android/jni/decompress.c
+++ /dev/null
@@ -1,646 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Decompression machinery ---*/
-/*--- decompress.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------------*/
-static
-void makeMaps_d ( DState* s )
-{
- Int32 i;
- s->nInUse = 0;
- for (i = 0; i < 256; i++)
- if (s->inUse[i]) {
- s->seqToUnseq[s->nInUse] = i;
- s->nInUse++;
- }
-}
-
-
-/*---------------------------------------------------*/
-#define RETURN(rrr) \
- { retVal = rrr; goto save_state_and_return; };
-
-#define GET_BITS(lll,vvv,nnn) \
- case lll: s->state = lll; \
- while (True) { \
- if (s->bsLive >= nnn) { \
- UInt32 v; \
- v = (s->bsBuff >> \
- (s->bsLive-nnn)) & ((1 << nnn)-1); \
- s->bsLive -= nnn; \
- vvv = v; \
- break; \
- } \
- if (s->strm->avail_in == 0) RETURN(BZ_OK); \
- s->bsBuff \
- = (s->bsBuff << 8) | \
- ((UInt32) \
- (*((UChar*)(s->strm->next_in)))); \
- s->bsLive += 8; \
- s->strm->next_in++; \
- s->strm->avail_in--; \
- s->strm->total_in_lo32++; \
- if (s->strm->total_in_lo32 == 0) \
- s->strm->total_in_hi32++; \
- }
-
-#define GET_UCHAR(lll,uuu) \
- GET_BITS(lll,uuu,8)
-
-#define GET_BIT(lll,uuu) \
- GET_BITS(lll,uuu,1)
-
-/*---------------------------------------------------*/
-#define GET_MTF_VAL(label1,label2,lval) \
-{ \
- if (groupPos == 0) { \
- groupNo++; \
- if (groupNo >= nSelectors) \
- RETURN(BZ_DATA_ERROR); \
- groupPos = BZ_G_SIZE; \
- gSel = s->selector[groupNo]; \
- gMinlen = s->minLens[gSel]; \
- gLimit = &(s->limit[gSel][0]); \
- gPerm = &(s->perm[gSel][0]); \
- gBase = &(s->base[gSel][0]); \
- } \
- groupPos--; \
- zn = gMinlen; \
- GET_BITS(label1, zvec, zn); \
- while (1) { \
- if (zn > 20 /* the longest code */) \
- RETURN(BZ_DATA_ERROR); \
- if (zvec <= gLimit[zn]) break; \
- zn++; \
- GET_BIT(label2, zj); \
- zvec = (zvec << 1) | zj; \
- }; \
- if (zvec - gBase[zn] < 0 \
- || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \
- RETURN(BZ_DATA_ERROR); \
- lval = gPerm[zvec - gBase[zn]]; \
-}
-
-
-/*---------------------------------------------------*/
-Int32 BZ2_decompress ( DState* s )
-{
- UChar uc;
- Int32 retVal;
- Int32 minLen, maxLen;
- bz_stream* strm = s->strm;
-
- /* stuff that needs to be saved/restored */
- Int32 i;
- Int32 j;
- Int32 t;
- Int32 alphaSize;
- Int32 nGroups;
- Int32 nSelectors;
- Int32 EOB;
- Int32 groupNo;
- Int32 groupPos;
- Int32 nextSym;
- Int32 nblockMAX;
- Int32 nblock;
- Int32 es;
- Int32 N;
- Int32 curr;
- Int32 zt;
- Int32 zn;
- Int32 zvec;
- Int32 zj;
- Int32 gSel;
- Int32 gMinlen;
- Int32* gLimit;
- Int32* gBase;
- Int32* gPerm;
-
- if (s->state == BZ_X_MAGIC_1) {
- /*initialise the save area*/
- s->save_i = 0;
- s->save_j = 0;
- s->save_t = 0;
- s->save_alphaSize = 0;
- s->save_nGroups = 0;
- s->save_nSelectors = 0;
- s->save_EOB = 0;
- s->save_groupNo = 0;
- s->save_groupPos = 0;
- s->save_nextSym = 0;
- s->save_nblockMAX = 0;
- s->save_nblock = 0;
- s->save_es = 0;
- s->save_N = 0;
- s->save_curr = 0;
- s->save_zt = 0;
- s->save_zn = 0;
- s->save_zvec = 0;
- s->save_zj = 0;
- s->save_gSel = 0;
- s->save_gMinlen = 0;
- s->save_gLimit = NULL;
- s->save_gBase = NULL;
- s->save_gPerm = NULL;
- }
-
- /*restore from the save area*/
- i = s->save_i;
- j = s->save_j;
- t = s->save_t;
- alphaSize = s->save_alphaSize;
- nGroups = s->save_nGroups;
- nSelectors = s->save_nSelectors;
- EOB = s->save_EOB;
- groupNo = s->save_groupNo;
- groupPos = s->save_groupPos;
- nextSym = s->save_nextSym;
- nblockMAX = s->save_nblockMAX;
- nblock = s->save_nblock;
- es = s->save_es;
- N = s->save_N;
- curr = s->save_curr;
- zt = s->save_zt;
- zn = s->save_zn;
- zvec = s->save_zvec;
- zj = s->save_zj;
- gSel = s->save_gSel;
- gMinlen = s->save_gMinlen;
- gLimit = s->save_gLimit;
- gBase = s->save_gBase;
- gPerm = s->save_gPerm;
-
- retVal = BZ_OK;
-
- switch (s->state) {
-
- GET_UCHAR(BZ_X_MAGIC_1, uc);
- if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_UCHAR(BZ_X_MAGIC_2, uc);
- if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_UCHAR(BZ_X_MAGIC_3, uc)
- if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC);
-
- GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
- if (s->blockSize100k < (BZ_HDR_0 + 1) ||
- s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC);
- s->blockSize100k -= BZ_HDR_0;
-
- if (s->smallDecompress) {
- s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
- s->ll4 = BZALLOC(
- ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
- );
- if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
- } else {
- s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
- if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
- }
-
- GET_UCHAR(BZ_X_BLKHDR_1, uc);
-
- if (uc == 0x17) goto endhdr_2;
- if (uc != 0x31) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_2, uc);
- if (uc != 0x41) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_3, uc);
- if (uc != 0x59) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_4, uc);
- if (uc != 0x26) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_5, uc);
- if (uc != 0x53) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_BLKHDR_6, uc);
- if (uc != 0x59) RETURN(BZ_DATA_ERROR);
-
- s->currBlockNo++;
- if (s->verbosity >= 2)
- VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo );
-
- s->storedBlockCRC = 0;
- GET_UCHAR(BZ_X_BCRC_1, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_2, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_3, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_BCRC_4, uc);
- s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
-
- GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
-
- s->origPtr = 0;
- GET_UCHAR(BZ_X_ORIGPTR_1, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
- GET_UCHAR(BZ_X_ORIGPTR_2, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
- GET_UCHAR(BZ_X_ORIGPTR_3, uc);
- s->origPtr = (s->origPtr << 8) | ((Int32)uc);
-
- if (s->origPtr < 0)
- RETURN(BZ_DATA_ERROR);
- if (s->origPtr > 10 + 100000*s->blockSize100k)
- RETURN(BZ_DATA_ERROR);
-
- /*--- Receive the mapping table ---*/
- for (i = 0; i < 16; i++) {
- GET_BIT(BZ_X_MAPPING_1, uc);
- if (uc == 1)
- s->inUse16[i] = True; else
- s->inUse16[i] = False;
- }
-
- for (i = 0; i < 256; i++) s->inUse[i] = False;
-
- for (i = 0; i < 16; i++)
- if (s->inUse16[i])
- for (j = 0; j < 16; j++) {
- GET_BIT(BZ_X_MAPPING_2, uc);
- if (uc == 1) s->inUse[i * 16 + j] = True;
- }
- makeMaps_d ( s );
- if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
- alphaSize = s->nInUse+2;
-
- /*--- Now the selectors ---*/
- GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
- if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
- GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
- if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
- for (i = 0; i < nSelectors; i++) {
- j = 0;
- while (True) {
- GET_BIT(BZ_X_SELECTOR_3, uc);
- if (uc == 0) break;
- j++;
- if (j >= nGroups) RETURN(BZ_DATA_ERROR);
- }
- s->selectorMtf[i] = j;
- }
-
- /*--- Undo the MTF values for the selectors. ---*/
- {
- UChar pos[BZ_N_GROUPS], tmp, v;
- for (v = 0; v < nGroups; v++) pos[v] = v;
-
- for (i = 0; i < nSelectors; i++) {
- v = s->selectorMtf[i];
- tmp = pos[v];
- while (v > 0) { pos[v] = pos[v-1]; v--; }
- pos[0] = tmp;
- s->selector[i] = tmp;
- }
- }
-
- /*--- Now the coding tables ---*/
- for (t = 0; t < nGroups; t++) {
- GET_BITS(BZ_X_CODING_1, curr, 5);
- for (i = 0; i < alphaSize; i++) {
- while (True) {
- if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
- GET_BIT(BZ_X_CODING_2, uc);
- if (uc == 0) break;
- GET_BIT(BZ_X_CODING_3, uc);
- if (uc == 0) curr++; else curr--;
- }
- s->len[t][i] = curr;
- }
- }
-
- /*--- Create the Huffman decoding tables ---*/
- for (t = 0; t < nGroups; t++) {
- minLen = 32;
- maxLen = 0;
- for (i = 0; i < alphaSize; i++) {
- if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
- if (s->len[t][i] < minLen) minLen = s->len[t][i];
- }
- BZ2_hbCreateDecodeTables (
- &(s->limit[t][0]),
- &(s->base[t][0]),
- &(s->perm[t][0]),
- &(s->len[t][0]),
- minLen, maxLen, alphaSize
- );
- s->minLens[t] = minLen;
- }
-
- /*--- Now the MTF values ---*/
-
- EOB = s->nInUse+1;
- nblockMAX = 100000 * s->blockSize100k;
- groupNo = -1;
- groupPos = 0;
-
- for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
-
- /*-- MTF init --*/
- {
- Int32 ii, jj, kk;
- kk = MTFA_SIZE-1;
- for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
- for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
- s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
- kk--;
- }
- s->mtfbase[ii] = kk + 1;
- }
- }
- /*-- end MTF init --*/
-
- nblock = 0;
- GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
-
- while (True) {
-
- if (nextSym == EOB) break;
-
- if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
-
- es = -1;
- N = 1;
- do {
- /* Check that N doesn't get too big, so that es doesn't
- go negative. The maximum value that can be
- RUNA/RUNB encoded is equal to the block size (post
- the initial RLE), viz, 900k, so bounding N at 2
- million should guard against overflow without
- rejecting any legitimate inputs. */
- if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR);
- if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
- if (nextSym == BZ_RUNB) es = es + (1+1) * N;
- N = N * 2;
- GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
- }
- while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
-
- es++;
- uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
- s->unzftab[uc] += es;
-
- if (s->smallDecompress)
- while (es > 0) {
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
- s->ll16[nblock] = (UInt16)uc;
- nblock++;
- es--;
- }
- else
- while (es > 0) {
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
- s->tt[nblock] = (UInt32)uc;
- nblock++;
- es--;
- };
-
- continue;
-
- } else {
-
- if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
-
- /*-- uc = MTF ( nextSym-1 ) --*/
- {
- Int32 ii, jj, kk, pp, lno, off;
- UInt32 nn;
- nn = (UInt32)(nextSym - 1);
-
- if (nn < MTFL_SIZE) {
- /* avoid general-case expense */
- pp = s->mtfbase[0];
- uc = s->mtfa[pp+nn];
- while (nn > 3) {
- Int32 z = pp+nn;
- s->mtfa[(z) ] = s->mtfa[(z)-1];
- s->mtfa[(z)-1] = s->mtfa[(z)-2];
- s->mtfa[(z)-2] = s->mtfa[(z)-3];
- s->mtfa[(z)-3] = s->mtfa[(z)-4];
- nn -= 4;
- }
- while (nn > 0) {
- s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
- };
- s->mtfa[pp] = uc;
- } else {
- /* general case */
- lno = nn / MTFL_SIZE;
- off = nn % MTFL_SIZE;
- pp = s->mtfbase[lno] + off;
- uc = s->mtfa[pp];
- while (pp > s->mtfbase[lno]) {
- s->mtfa[pp] = s->mtfa[pp-1]; pp--;
- };
- s->mtfbase[lno]++;
- while (lno > 0) {
- s->mtfbase[lno]--;
- s->mtfa[s->mtfbase[lno]]
- = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
- lno--;
- }
- s->mtfbase[0]--;
- s->mtfa[s->mtfbase[0]] = uc;
- if (s->mtfbase[0] == 0) {
- kk = MTFA_SIZE-1;
- for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
- for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
- s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
- kk--;
- }
- s->mtfbase[ii] = kk + 1;
- }
- }
- }
- }
- /*-- end uc = MTF ( nextSym-1 ) --*/
-
- s->unzftab[s->seqToUnseq[uc]]++;
- if (s->smallDecompress)
- s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
- s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]);
- nblock++;
-
- GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
- continue;
- }
- }
-
- /* Now we know what nblock is, we can do a better sanity
- check on s->origPtr.
- */
- if (s->origPtr < 0 || s->origPtr >= nblock)
- RETURN(BZ_DATA_ERROR);
-
- /*-- Set up cftab to facilitate generation of T^(-1) --*/
- /* Check: unzftab entries in range. */
- for (i = 0; i <= 255; i++) {
- if (s->unzftab[i] < 0 || s->unzftab[i] > nblock)
- RETURN(BZ_DATA_ERROR);
- }
- /* Actually generate cftab. */
- s->cftab[0] = 0;
- for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
- for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
- /* Check: cftab entries in range. */
- for (i = 0; i <= 256; i++) {
- if (s->cftab[i] < 0 || s->cftab[i] > nblock) {
- /* s->cftab[i] can legitimately be == nblock */
- RETURN(BZ_DATA_ERROR);
- }
- }
- /* Check: cftab entries non-descending. */
- for (i = 1; i <= 256; i++) {
- if (s->cftab[i-1] > s->cftab[i]) {
- RETURN(BZ_DATA_ERROR);
- }
- }
-
- s->state_out_len = 0;
- s->state_out_ch = 0;
- BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
- s->state = BZ_X_OUTPUT;
- if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
-
- if (s->smallDecompress) {
-
- /*-- Make a copy of cftab, used in generation of T --*/
- for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
-
- /*-- compute the T vector --*/
- for (i = 0; i < nblock; i++) {
- uc = (UChar)(s->ll16[i]);
- SET_LL(i, s->cftabCopy[uc]);
- s->cftabCopy[uc]++;
- }
-
- /*-- Compute T^(-1) by pointer reversal on T --*/
- i = s->origPtr;
- j = GET_LL(i);
- do {
- Int32 tmp = GET_LL(j);
- SET_LL(j, i);
- i = j;
- j = tmp;
- }
- while (i != s->origPtr);
-
- s->tPos = s->origPtr;
- s->nblock_used = 0;
- if (s->blockRandomised) {
- BZ_RAND_INIT_MASK;
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
- } else {
- BZ_GET_SMALL(s->k0); s->nblock_used++;
- }
-
- } else {
-
- /*-- compute the T^(-1) vector --*/
- for (i = 0; i < nblock; i++) {
- uc = (UChar)(s->tt[i] & 0xff);
- s->tt[s->cftab[uc]] |= (i << 8);
- s->cftab[uc]++;
- }
-
- s->tPos = s->tt[s->origPtr] >> 8;
- s->nblock_used = 0;
- if (s->blockRandomised) {
- BZ_RAND_INIT_MASK;
- BZ_GET_FAST(s->k0); s->nblock_used++;
- BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
- } else {
- BZ_GET_FAST(s->k0); s->nblock_used++;
- }
-
- }
-
- RETURN(BZ_OK);
-
-
-
- endhdr_2:
-
- GET_UCHAR(BZ_X_ENDHDR_2, uc);
- if (uc != 0x72) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_3, uc);
- if (uc != 0x45) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_4, uc);
- if (uc != 0x38) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_5, uc);
- if (uc != 0x50) RETURN(BZ_DATA_ERROR);
- GET_UCHAR(BZ_X_ENDHDR_6, uc);
- if (uc != 0x90) RETURN(BZ_DATA_ERROR);
-
- s->storedCombinedCRC = 0;
- GET_UCHAR(BZ_X_CCRC_1, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_2, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_3, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
- GET_UCHAR(BZ_X_CCRC_4, uc);
- s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
-
- s->state = BZ_X_IDLE;
- RETURN(BZ_STREAM_END);
-
- default: AssertH ( False, 4001 );
- }
-
- AssertH ( False, 4002 );
-
- save_state_and_return:
-
- s->save_i = i;
- s->save_j = j;
- s->save_t = t;
- s->save_alphaSize = alphaSize;
- s->save_nGroups = nGroups;
- s->save_nSelectors = nSelectors;
- s->save_EOB = EOB;
- s->save_groupNo = groupNo;
- s->save_groupPos = groupPos;
- s->save_nextSym = nextSym;
- s->save_nblockMAX = nblockMAX;
- s->save_nblock = nblock;
- s->save_es = es;
- s->save_N = N;
- s->save_curr = curr;
- s->save_zt = zt;
- s->save_zn = zn;
- s->save_zvec = zvec;
- s->save_zj = zj;
- s->save_gSel = gSel;
- s->save_gMinlen = gMinlen;
- s->save_gLimit = gLimit;
- s->save_gBase = gBase;
- s->save_gPerm = gPerm;
-
- return retVal;
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end decompress.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/hpatch.c b/android/jni/hpatch.c
new file mode 100644
index 0000000..5c3592d
--- /dev/null
+++ b/android/jni/hpatch.c
@@ -0,0 +1,137 @@
+// hpatch.c
+// Copyright 2021 housisong, All rights reserved
+#include "hpatch.h"
+#include "HDiffPatch/libHDiffPatch/HPatch/patch.h"
+#include "HDiffPatch/file_for_patch.h"
+
+//#define _CompressPlugin_zlib
+//#define _CompressPlugin_bz2
+#define _CompressPlugin_lzma
+#define _CompressPlugin_lzma2
+#define _IsNeedIncludeDefaultCompressHead 0
+#include "lzma/C/LzmaDec.h"
+#include "lzma/C/Lzma2Dec.h"
+#include "HDiffPatch/decompress_plugin_demo.h"
+
+#define kMaxLoadMemOldSize ((1<<20)*8)
+
+#define _check(v,errorType) do{ \
+ if (!(v)){ if (result==kHPatch_ok) result=errorType; if (!_isInClear){ goto _clear; }; } }while(0)
+
+int hpatch_getInfo_by_mem(hpatch_singleCompressedDiffInfo* out_patinfo,
+ const uint8_t* pat,size_t patsize){
+ hpatch_TStreamInput patStream;
+ mem_as_hStreamInput(&patStream,pat,pat+patsize);
+ if (!getSingleCompressedDiffInfo(out_patinfo,&patStream,0))
+ return kHPatch_error_info;//data error;
+ return kHPatch_ok; //ok
+}
+
+static hpatch_TDecompress* getDecompressPlugin(const char* compressType){
+#ifdef _CompressPlugin_zlib
+ if (zlibDecompressPlugin.is_can_open(compressType))
+ return &zlibDecompressPlugin;
+#endif
+#ifdef _CompressPlugin_bz2
+ if (bz2DecompressPlugin.is_can_open(compressType))
+ return &bz2DecompressPlugin;
+#endif
+#ifdef _CompressPlugin_lzma
+ if (lzmaDecompressPlugin.is_can_open(compressType))
+ return &lzmaDecompressPlugin;
+#endif
+#ifdef _CompressPlugin_lzma2
+ if (lzma2DecompressPlugin.is_can_open(compressType))
+ return &lzma2DecompressPlugin;
+#endif
+ return 0;
+}
+static int hpatch_by_stream(const hpatch_TStreamInput* old,hpatch_BOOL isLoadOldAllToMem,const hpatch_TStreamInput* pat,
+ hpatch_TStreamOutput* out_new,const hpatch_singleCompressedDiffInfo* patInfo){
+ int result=kHPatch_ok;
+ int _isInClear=hpatch_FALSE;
+ hpatch_TDecompress* decompressPlugin=0;
+ uint8_t* temp_cache=0;
+ size_t temp_cache_size;
+ hpatch_singleCompressedDiffInfo _patinfo;
+ hpatch_TStreamInput _old;
+ {// info
+ if (!patInfo){
+ _check(getSingleCompressedDiffInfo(&_patinfo,pat,0),kHPatch_error_info);
+ patInfo=&_patinfo;
+ }
+ _check(old->streamSize==patInfo->oldDataSize,kHPatch_error_old_size);
+ _check(out_new->streamSize>=patInfo->newDataSize,kHPatch_error_new_size);
+ out_new->streamSize=patInfo->newDataSize;
+ if (strlen(patInfo->compressType)>0){
+ decompressPlugin=getDecompressPlugin(patInfo->compressType);
+ _check(decompressPlugin,kHPatch_error_compressType);
+ }
+ }
+ {// mem
+ size_t mem_size;
+ size_t oldSize=(size_t)old->streamSize;
+ isLoadOldAllToMem=isLoadOldAllToMem&&(old->streamSize<=kMaxLoadMemOldSize);
+ temp_cache_size=patInfo->stepMemSize+hpatch_kFileIOBufBetterSize*3;
+ mem_size=temp_cache_size+(isLoadOldAllToMem?oldSize:0);
+ temp_cache=malloc(mem_size);
+ _check(temp_cache,kHPatch_error_malloc);
+ if (isLoadOldAllToMem){//load old to mem
+ uint8_t* oldMem=temp_cache+temp_cache_size;
+ _check(old->read(old,0,oldMem,oldMem+oldSize),kHPatch_error_old_fread);
+ mem_as_hStreamInput(&_old,oldMem,oldMem+oldSize);
+ old=&_old;
+ }
+ }
+
+ _check(patch_single_compressed_diff(out_new,old,pat,patInfo->diffDataPos,
+ patInfo->uncompressedSize,decompressPlugin,patInfo->coverCount,
+ patInfo->stepMemSize,temp_cache,temp_cache+temp_cache_size),kHPatch_error_patch);
+
+_clear:
+ _isInClear=hpatch_TRUE;
+ if (temp_cache){ free(temp_cache); temp_cache=0; }
+ return result;
+}
+
+int hpatch_by_mem(const uint8_t* old,size_t oldsize,uint8_t* newBuf,size_t newsize,
+ const uint8_t* pat,size_t patsize,const hpatch_singleCompressedDiffInfo* patInfo){
+ hpatch_TStreamInput oldStream;
+ hpatch_TStreamInput patStream;
+ hpatch_TStreamOutput newStream;
+ mem_as_hStreamInput(&oldStream,old,old+oldsize);
+ mem_as_hStreamInput(&patStream,pat,pat+patsize);
+ mem_as_hStreamOutput(&newStream,newBuf,newBuf+newsize);
+ return hpatch_by_stream(&oldStream,hpatch_FALSE,&patStream,&newStream,patInfo);
+}
+
+int hpatch_by_file(const char* oldfile, const char* newfile, const char* patchfile){
+ int result=kHPatch_ok;
+ int _isInClear=hpatch_FALSE;
+ int patch_result;
+ hpatch_TFileStreamInput oldStream;
+ hpatch_TFileStreamInput patStream;
+ hpatch_TFileStreamOutput newStream;
+ hpatch_TFileStreamInput_init(&oldStream);
+ hpatch_TFileStreamInput_init(&patStream);
+ hpatch_TFileStreamOutput_init(&newStream);
+
+ _check(hpatch_TFileStreamInput_open(&oldStream,oldfile),kHPatch_error_old_fopen);
+ _check(hpatch_TFileStreamInput_open(&patStream,patchfile),kHPatch_error_pat_fopen);
+ _check(hpatch_TFileStreamOutput_open(&newStream,newfile,~(hpatch_StreamPos_t)0),kHPatch_error_new_fopen);
+
+ patch_result=hpatch_by_stream(&oldStream.base,hpatch_TRUE,&patStream.base,&newStream.base,0);
+ if (patch_result!=kHPatch_ok){
+ _check(!oldStream.fileError,kHPatch_error_old_fread);
+ _check(!patStream.fileError,kHPatch_error_pat_fread);
+ _check(!newStream.fileError,kHPatch_error_new_fwrite);
+ _check(hpatch_FALSE,patch_result);
+ }
+
+_clear:
+ _isInClear=hpatch_TRUE;
+ _check(hpatch_TFileStreamInput_close(&oldStream),kHPatch_error_old_fclose);
+ _check(hpatch_TFileStreamInput_close(&patStream),kHPatch_error_pat_fclose);
+ _check(hpatch_TFileStreamOutput_close(&newStream),kHPatch_error_new_fclose);
+ return result;
+}
diff --git a/android/jni/hpatch.h b/android/jni/hpatch.h
new file mode 100644
index 0000000..9215b64
--- /dev/null
+++ b/android/jni/hpatch.h
@@ -0,0 +1,44 @@
+// hpatch.h
+// import HDiffPatch, support patchData created by "hdiffz -SD -c-lzma2 oldfile newfile patchfile"
+// Copyright 2021 housisong, All rights reserved
+
+#ifndef HDIFFPATCH_PATCH_H
+#define HDIFFPATCH_PATCH_H
+# include //for uint8_t
+#include "HDiffPatch/libHDiffPatch/HPatch/patch_types.h" //for hpatch_singleCompressedDiffInfo
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//result
+enum {
+ kHPatch_ok = 0,
+ kHPatch_error_malloc =-1,
+ kHPatch_error_info =-2,
+ kHPatch_error_compressType =-3,
+ kHPatch_error_patch =-4,
+ kHPatch_error_old_fopen =-5,
+ kHPatch_error_old_fread =-6,
+ kHPatch_error_old_fclose =-7,
+ kHPatch_error_pat_fopen =-8,
+ kHPatch_error_pat_fread =-9,
+ kHPatch_error_pat_fclose =-10,
+ kHPatch_error_new_fopen =-11,
+ kHPatch_error_new_fwrite =-12,
+ kHPatch_error_new_fclose =-13,
+ kHPatch_error_old_size =-14,
+ kHPatch_error_new_size =-15,
+};
+
+int hpatch_getInfo_by_mem(hpatch_singleCompressedDiffInfo* out_patinfo,
+ const uint8_t* pat,size_t patsize);
+
+//patInfo can NULL
+int hpatch_by_mem(const uint8_t* old,size_t oldsize, uint8_t* newBuf,size_t newsize,
+ const uint8_t* pat,size_t patsize,const hpatch_singleCompressedDiffInfo* patInfo);
+int hpatch_by_file(const char* oldfile, const char* newfile, const char* patchfile);
+
+#ifdef __cplusplus
+}
+#endif
+#endif //HDIFFPATCH_PATCH_H
\ No newline at end of file
diff --git a/android/jni/huffman.c b/android/jni/huffman.c
deleted file mode 100644
index 2283fdb..0000000
--- a/android/jni/huffman.c
+++ /dev/null
@@ -1,205 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Huffman coding low-level stuff ---*/
-/*--- huffman.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-/*---------------------------------------------------*/
-#define WEIGHTOF(zz0) ((zz0) & 0xffffff00)
-#define DEPTHOF(zz1) ((zz1) & 0x000000ff)
-#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3))
-
-#define ADDWEIGHTS(zw1,zw2) \
- (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \
- (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2)))
-
-#define UPHEAP(z) \
-{ \
- Int32 zz, tmp; \
- zz = z; tmp = heap[zz]; \
- while (weight[tmp] < weight[heap[zz >> 1]]) { \
- heap[zz] = heap[zz >> 1]; \
- zz >>= 1; \
- } \
- heap[zz] = tmp; \
-}
-
-#define DOWNHEAP(z) \
-{ \
- Int32 zz, yy, tmp; \
- zz = z; tmp = heap[zz]; \
- while (True) { \
- yy = zz << 1; \
- if (yy > nHeap) break; \
- if (yy < nHeap && \
- weight[heap[yy+1]] < weight[heap[yy]]) \
- yy++; \
- if (weight[tmp] < weight[heap[yy]]) break; \
- heap[zz] = heap[yy]; \
- zz = yy; \
- } \
- heap[zz] = tmp; \
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbMakeCodeLengths ( UChar *len,
- Int32 *freq,
- Int32 alphaSize,
- Int32 maxLen )
-{
- /*--
- Nodes and heap entries run from 1. Entry 0
- for both the heap and nodes is a sentinel.
- --*/
- Int32 nNodes, nHeap, n1, n2, i, j, k;
- Bool tooLong;
-
- Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ];
- Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ];
- Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ];
-
- for (i = 0; i < alphaSize; i++)
- weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8;
-
- while (True) {
-
- nNodes = alphaSize;
- nHeap = 0;
-
- heap[0] = 0;
- weight[0] = 0;
- parent[0] = -2;
-
- for (i = 1; i <= alphaSize; i++) {
- parent[i] = -1;
- nHeap++;
- heap[nHeap] = i;
- UPHEAP(nHeap);
- }
-
- AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 );
-
- while (nHeap > 1) {
- n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
- n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1);
- nNodes++;
- parent[n1] = parent[n2] = nNodes;
- weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]);
- parent[nNodes] = -1;
- nHeap++;
- heap[nHeap] = nNodes;
- UPHEAP(nHeap);
- }
-
- AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 );
-
- tooLong = False;
- for (i = 1; i <= alphaSize; i++) {
- j = 0;
- k = i;
- while (parent[k] >= 0) { k = parent[k]; j++; }
- len[i-1] = j;
- if (j > maxLen) tooLong = True;
- }
-
- if (! tooLong) break;
-
- /* 17 Oct 04: keep-going condition for the following loop used
- to be 'i < alphaSize', which missed the last element,
- theoretically leading to the possibility of the compressor
- looping. However, this count-scaling step is only needed if
- one of the generated Huffman code words is longer than
- maxLen, which up to and including version 1.0.2 was 20 bits,
- which is extremely unlikely. In version 1.0.3 maxLen was
- changed to 17 bits, which has minimal effect on compression
- ratio, but does mean this scaling step is used from time to
- time, enough to verify that it works.
-
- This means that bzip2-1.0.3 and later will only produce
- Huffman codes with a maximum length of 17 bits. However, in
- order to preserve backwards compatibility with bitstreams
- produced by versions pre-1.0.3, the decompressor must still
- handle lengths of up to 20. */
-
- for (i = 1; i <= alphaSize; i++) {
- j = weight[i] >> 8;
- j = 1 + (j / 2);
- weight[i] = j << 8;
- }
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbAssignCodes ( Int32 *code,
- UChar *length,
- Int32 minLen,
- Int32 maxLen,
- Int32 alphaSize )
-{
- Int32 n, vec, i;
-
- vec = 0;
- for (n = minLen; n <= maxLen; n++) {
- for (i = 0; i < alphaSize; i++)
- if (length[i] == n) { code[i] = vec; vec++; };
- vec <<= 1;
- }
-}
-
-
-/*---------------------------------------------------*/
-void BZ2_hbCreateDecodeTables ( Int32 *limit,
- Int32 *base,
- Int32 *perm,
- UChar *length,
- Int32 minLen,
- Int32 maxLen,
- Int32 alphaSize )
-{
- Int32 pp, i, j, vec;
-
- pp = 0;
- for (i = minLen; i <= maxLen; i++)
- for (j = 0; j < alphaSize; j++)
- if (length[j] == i) { perm[pp] = j; pp++; };
-
- for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0;
- for (i = 0; i < alphaSize; i++) base[length[i]+1]++;
-
- for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1];
-
- for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0;
- vec = 0;
-
- for (i = minLen; i <= maxLen; i++) {
- vec += (base[i+1] - base[i]);
- limit[i] = vec-1;
- vec <<= 1;
- }
- for (i = minLen + 1; i <= maxLen; i++)
- base[i] = ((limit[i-1] + 1) << 1) - base[i];
-}
-
-
-/*-------------------------------------------------------------*/
-/*--- end huffman.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/jni/lzma b/android/jni/lzma
new file mode 160000
index 0000000..c80bb80
--- /dev/null
+++ b/android/jni/lzma
@@ -0,0 +1 @@
+Subproject commit c80bb80bbbac61da7ec02d12fb497851b1f59635
diff --git a/android/jni/randtable.c b/android/jni/randtable.c
deleted file mode 100644
index 6d62459..0000000
--- a/android/jni/randtable.c
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/*-------------------------------------------------------------*/
-/*--- Table for randomising repetitive blocks ---*/
-/*--- randtable.c ---*/
-/*-------------------------------------------------------------*/
-
-/* ------------------------------------------------------------------
- This file is part of bzip2/libbzip2, a program and library for
- lossless, block-sorting data compression.
-
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
- Copyright (C) 1996-2010 Julian Seward
-
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
- README file.
-
- This program is released under the terms of the license contained
- in the file LICENSE.
- ------------------------------------------------------------------ */
-
-
-#include "bzlib_private.h"
-
-
-/*---------------------------------------------*/
-Int32 BZ2_rNums[512] = {
- 619, 720, 127, 481, 931, 816, 813, 233, 566, 247,
- 985, 724, 205, 454, 863, 491, 741, 242, 949, 214,
- 733, 859, 335, 708, 621, 574, 73, 654, 730, 472,
- 419, 436, 278, 496, 867, 210, 399, 680, 480, 51,
- 878, 465, 811, 169, 869, 675, 611, 697, 867, 561,
- 862, 687, 507, 283, 482, 129, 807, 591, 733, 623,
- 150, 238, 59, 379, 684, 877, 625, 169, 643, 105,
- 170, 607, 520, 932, 727, 476, 693, 425, 174, 647,
- 73, 122, 335, 530, 442, 853, 695, 249, 445, 515,
- 909, 545, 703, 919, 874, 474, 882, 500, 594, 612,
- 641, 801, 220, 162, 819, 984, 589, 513, 495, 799,
- 161, 604, 958, 533, 221, 400, 386, 867, 600, 782,
- 382, 596, 414, 171, 516, 375, 682, 485, 911, 276,
- 98, 553, 163, 354, 666, 933, 424, 341, 533, 870,
- 227, 730, 475, 186, 263, 647, 537, 686, 600, 224,
- 469, 68, 770, 919, 190, 373, 294, 822, 808, 206,
- 184, 943, 795, 384, 383, 461, 404, 758, 839, 887,
- 715, 67, 618, 276, 204, 918, 873, 777, 604, 560,
- 951, 160, 578, 722, 79, 804, 96, 409, 713, 940,
- 652, 934, 970, 447, 318, 353, 859, 672, 112, 785,
- 645, 863, 803, 350, 139, 93, 354, 99, 820, 908,
- 609, 772, 154, 274, 580, 184, 79, 626, 630, 742,
- 653, 282, 762, 623, 680, 81, 927, 626, 789, 125,
- 411, 521, 938, 300, 821, 78, 343, 175, 128, 250,
- 170, 774, 972, 275, 999, 639, 495, 78, 352, 126,
- 857, 956, 358, 619, 580, 124, 737, 594, 701, 612,
- 669, 112, 134, 694, 363, 992, 809, 743, 168, 974,
- 944, 375, 748, 52, 600, 747, 642, 182, 862, 81,
- 344, 805, 988, 739, 511, 655, 814, 334, 249, 515,
- 897, 955, 664, 981, 649, 113, 974, 459, 893, 228,
- 433, 837, 553, 268, 926, 240, 102, 654, 459, 51,
- 686, 754, 806, 760, 493, 403, 415, 394, 687, 700,
- 946, 670, 656, 610, 738, 392, 760, 799, 887, 653,
- 978, 321, 576, 617, 626, 502, 894, 679, 243, 440,
- 680, 879, 194, 572, 640, 724, 926, 56, 204, 700,
- 707, 151, 457, 449, 797, 195, 791, 558, 945, 679,
- 297, 59, 87, 824, 713, 663, 412, 693, 342, 606,
- 134, 108, 571, 364, 631, 212, 174, 643, 304, 329,
- 343, 97, 430, 751, 497, 314, 983, 374, 822, 928,
- 140, 206, 73, 263, 980, 736, 876, 478, 430, 305,
- 170, 514, 364, 692, 829, 82, 855, 953, 676, 246,
- 369, 970, 294, 750, 807, 827, 150, 790, 288, 923,
- 804, 378, 215, 828, 592, 281, 565, 555, 710, 82,
- 896, 831, 547, 261, 524, 462, 293, 465, 502, 56,
- 661, 821, 976, 991, 658, 869, 905, 758, 745, 193,
- 768, 550, 608, 933, 378, 286, 215, 979, 792, 961,
- 61, 688, 793, 644, 986, 403, 106, 366, 905, 644,
- 372, 567, 466, 434, 645, 210, 389, 550, 919, 135,
- 780, 773, 635, 389, 707, 100, 626, 958, 165, 504,
- 920, 176, 193, 713, 857, 265, 203, 50, 668, 108,
- 645, 990, 626, 197, 510, 357, 358, 850, 858, 364,
- 936, 638
-};
-
-
-/*-------------------------------------------------------------*/
-/*--- end randtable.c ---*/
-/*-------------------------------------------------------------*/
diff --git a/android/lib/arm64-v8a/librnupdate.so b/android/lib/arm64-v8a/librnupdate.so
index ff8f7fd..e05f959 100755
Binary files a/android/lib/arm64-v8a/librnupdate.so and b/android/lib/arm64-v8a/librnupdate.so differ
diff --git a/android/lib/armeabi-v7a/librnupdate.so b/android/lib/armeabi-v7a/librnupdate.so
index 65201d6..dffb7ab 100755
Binary files a/android/lib/armeabi-v7a/librnupdate.so and b/android/lib/armeabi-v7a/librnupdate.so differ
diff --git a/android/lib/x86/librnupdate.so b/android/lib/x86/librnupdate.so
index e768339..7cf6e3b 100755
Binary files a/android/lib/x86/librnupdate.so and b/android/lib/x86/librnupdate.so differ
diff --git a/android/lib/x86_64/librnupdate.so b/android/lib/x86_64/librnupdate.so
index 3bfc8a6..29f7fa0 100755
Binary files a/android/lib/x86_64/librnupdate.so and b/android/lib/x86_64/librnupdate.so differ
diff --git a/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java b/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java
index 9307884..ba59f51 100644
--- a/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java
+++ b/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java
@@ -134,9 +134,9 @@ class DownloadTask extends AsyncTask {
}
- byte[] buffer = new byte[1024];
+ byte[] buffer = new byte[1024*4];
- private static native byte[] bsdiffPatch(byte[] origin, byte[] patch);
+ private static native byte[] hdiffPatch(byte[] origin, byte[] patch);
private void unzipToFile(ZipInputStream zis, File fmd) throws IOException {
int count;
@@ -348,8 +348,8 @@ class DownloadTask extends AsyncTask {
}
if (fn.equals("index.bundlejs.patch")) {
foundBundlePatch = true;
- // do bsdiff patch
- byte[] patched = bsdiffPatch(readOriginBundle(), readBytes(zis));
+
+ byte[] patched = hdiffPatch(readOriginBundle(), readBytes(zis));
FileOutputStream fout = new FileOutputStream(new File(param.unzipDirectory, "index.bundlejs"));
fout.write(patched);
@@ -426,9 +426,8 @@ class DownloadTask extends AsyncTask {
}
if (fn.equals("index.bundlejs.patch")) {
foundBundlePatch = true;
- // do bsdiff patch
- byte[] patched = bsdiffPatch(readFile(new File(param.originDirectory, "index.bundlejs")), readBytes(zis));
-
+ byte[] patched = hdiffPatch(readFile(new File(param.originDirectory, "index.bundlejs")), readBytes(zis));
+
FileOutputStream fout = new FileOutputStream(new File(param.unzipDirectory, "index.bundlejs"));
fout.write(patched);
fout.close();
diff --git a/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java b/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java
index 248a392..2d9f80f 100644
--- a/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java
+++ b/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java
@@ -8,12 +8,13 @@ import java.io.File;
* Created by tdzl2003 on 3/31/16.
*/
class DownloadTaskParams {
- static final int TASK_TYPE_PATCH_FULL = 1;
- static final int TASK_TYPE_PATCH_FROM_APK = 2;
- static final int TASK_TYPE_PATCH_FROM_PPK = 3;
- static final int TASK_TYPE_PLAIN_DOWNLOAD = 4;
+ static final int TASK_TYPE_CLEANUP = 0; //Keep hash & originHash
+
+ static final int TASK_TYPE_PATCH_FULL = 1;
+ static final int TASK_TYPE_PATCH_FROM_APK = 2;
+ static final int TASK_TYPE_PATCH_FROM_PPK = 3;
+ static final int TASK_TYPE_PLAIN_DOWNLOAD = 4;
- static final int TASK_TYPE_CLEANUP = 0; //Keep hash & originHash
int type;
String url;
diff --git a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java
index 046e606..7ef735b 100644
--- a/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java
+++ b/android/src/main/java/cn/reactnative/modules/update/UpdateModule.java
@@ -135,9 +135,8 @@ public class UpdateModule extends ReactContextBaseJavaModule {
}
}
-
@ReactMethod
- public void downloadPatchFromPackage(ReadableMap options, final Promise promise) {
+ private void downloadPatchFromPackage(ReadableMap options, final Promise promise) {
String url = options.getString("updateUrl");
String hash = options.getString("hash");
if (hash == null) {
@@ -155,9 +154,9 @@ public class UpdateModule extends ReactContextBaseJavaModule {
}
});
}
-
+
@ReactMethod
- public void downloadPatchFromPpk(ReadableMap options, final Promise promise) {
+ private void downloadPatchFromPpk(ReadableMap options, final Promise promise) {
String url = options.getString("updateUrl");
String hash = options.getString("hash");
if (hash == null) {
diff --git a/ios/RCTPushy.xcodeproj/project.pbxproj b/ios/RCTPushy.xcodeproj/project.pbxproj
index 154a0a6..69403e2 100644
--- a/ios/RCTPushy.xcodeproj/project.pbxproj
+++ b/ios/RCTPushy.xcodeproj/project.pbxproj
@@ -7,6 +7,12 @@
objects = {
/* Begin PBXBuildFile section */
+ 249F2F50261C577300A1E60E /* HDiffPatch.m in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F4E261C577300A1E60E /* HDiffPatch.m */; };
+ 249F2F55261C584900A1E60E /* hpatch.c in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F54261C584900A1E60E /* hpatch.c */; };
+ 249F2F59261C586900A1E60E /* file_for_patch.c in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F58261C586900A1E60E /* file_for_patch.c */; };
+ 249F2F5E261C589D00A1E60E /* patch.c in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F5C261C589D00A1E60E /* patch.c */; };
+ 249F2F64261C58C700A1E60E /* Lzma2Dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F60261C58C700A1E60E /* Lzma2Dec.c */; };
+ 249F2F65261C58C700A1E60E /* LzmaDec.c in Sources */ = {isa = PBXBuildFile; fileRef = 249F2F62261C58C700A1E60E /* LzmaDec.c */; };
91C5F0031C76ECA90037E727 /* RCTPushy.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 91C5F0021C76ECA90037E727 /* RCTPushy.h */; };
91C5F0051C76ECA90037E727 /* RCTPushy.m in Sources */ = {isa = PBXBuildFile; fileRef = 91C5F0041C76ECA90037E727 /* RCTPushy.m */; };
9F1BCB1D1CAE5937000EF2CB /* RCTPushyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F1BCB1C1CAE5937000EF2CB /* RCTPushyManager.m */; };
@@ -43,6 +49,19 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 249F2F4E261C577300A1E60E /* HDiffPatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDiffPatch.m; sourceTree = ""; };
+ 249F2F4F261C577300A1E60E /* HDiffPatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDiffPatch.h; sourceTree = ""; };
+ 249F2F53261C584900A1E60E /* hpatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hpatch.h; path = ../../../android/jni/hpatch.h; sourceTree = ""; };
+ 249F2F54261C584900A1E60E /* hpatch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = hpatch.c; path = ../../../android/jni/hpatch.c; sourceTree = ""; };
+ 249F2F57261C586900A1E60E /* file_for_patch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = file_for_patch.h; path = ../../../android/jni/HDiffPatch/file_for_patch.h; sourceTree = ""; };
+ 249F2F58261C586900A1E60E /* file_for_patch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file_for_patch.c; path = ../../../android/jni/HDiffPatch/file_for_patch.c; sourceTree = ""; };
+ 249F2F5B261C589C00A1E60E /* patch_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = patch_types.h; path = ../../../android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_types.h; sourceTree = ""; };
+ 249F2F5C261C589D00A1E60E /* patch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = patch.c; path = ../../../android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.c; sourceTree = ""; };
+ 249F2F5D261C589D00A1E60E /* patch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = patch.h; path = ../../../android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.h; sourceTree = ""; };
+ 249F2F60261C58C700A1E60E /* Lzma2Dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Lzma2Dec.c; path = ../../../android/jni/lzma/C/Lzma2Dec.c; sourceTree = ""; };
+ 249F2F61261C58C700A1E60E /* Lzma2Dec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Lzma2Dec.h; path = ../../../android/jni/lzma/C/Lzma2Dec.h; sourceTree = ""; };
+ 249F2F62261C58C700A1E60E /* LzmaDec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = LzmaDec.c; path = ../../../android/jni/lzma/C/LzmaDec.c; sourceTree = ""; };
+ 249F2F63261C58C700A1E60E /* LzmaDec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LzmaDec.h; path = ../../../android/jni/lzma/C/LzmaDec.h; sourceTree = ""; };
91C5EFFF1C76ECA90037E727 /* libRCTPushy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTPushy.a; sourceTree = BUILT_PRODUCTS_DIR; };
91C5F0021C76ECA90037E727 /* RCTPushy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTPushy.h; sourceTree = ""; };
91C5F0041C76ECA90037E727 /* RCTPushy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTPushy.m; sourceTree = ""; };
@@ -102,6 +121,34 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 249F2F4D261C56E100A1E60E /* HDiffPatch */ = {
+ isa = PBXGroup;
+ children = (
+ 249F2F52261C581200A1E60E /* hpatch */,
+ 249F2F4F261C577300A1E60E /* HDiffPatch.h */,
+ 249F2F4E261C577300A1E60E /* HDiffPatch.m */,
+ );
+ path = HDiffPatch;
+ sourceTree = "";
+ };
+ 249F2F52261C581200A1E60E /* hpatch */ = {
+ isa = PBXGroup;
+ children = (
+ 249F2F60261C58C700A1E60E /* Lzma2Dec.c */,
+ 249F2F61261C58C700A1E60E /* Lzma2Dec.h */,
+ 249F2F62261C58C700A1E60E /* LzmaDec.c */,
+ 249F2F63261C58C700A1E60E /* LzmaDec.h */,
+ 249F2F5B261C589C00A1E60E /* patch_types.h */,
+ 249F2F5C261C589D00A1E60E /* patch.c */,
+ 249F2F5D261C589D00A1E60E /* patch.h */,
+ 249F2F58261C586900A1E60E /* file_for_patch.c */,
+ 249F2F57261C586900A1E60E /* file_for_patch.h */,
+ 249F2F54261C584900A1E60E /* hpatch.c */,
+ 249F2F53261C584900A1E60E /* hpatch.h */,
+ );
+ name = hpatch;
+ sourceTree = "";
+ };
91C5EFF61C76ECA90037E727 = {
isa = PBXGroup;
children = (
@@ -121,6 +168,7 @@
91C5F0011C76ECA90037E727 /* RCTPushy */ = {
isa = PBXGroup;
children = (
+ 249F2F4D261C56E100A1E60E /* HDiffPatch */,
9F1BCB381CAF6B3E000EF2CB /* BSDiff */,
9F394D571C7C25DC00C794C0 /* SSZipArchive */,
91C5F0021C76ECA90037E727 /* RCTPushy.h */,
@@ -272,19 +320,25 @@
9F394D871C7C25DC00C794C0 /* mztools.c in Sources */,
9F394D821C7C25DC00C794C0 /* hmac.c in Sources */,
9F394D881C7C25DC00C794C0 /* unzip.c in Sources */,
+ 249F2F65261C58C700A1E60E /* LzmaDec.c in Sources */,
9F1BCB1D1CAE5937000EF2CB /* RCTPushyManager.m in Sources */,
+ 249F2F5E261C589D00A1E60E /* patch.c in Sources */,
9F1BCB4F1CAF6B68000EF2CB /* BSDiff.m in Sources */,
9F394D7E1C7C25DC00C794C0 /* aeskey.c in Sources */,
9F394D7F1C7C25DC00C794C0 /* aestab.c in Sources */,
9F394D7D1C7C25DC00C794C0 /* aescrypt.c in Sources */,
9F394D801C7C25DC00C794C0 /* entropy.c in Sources */,
9F292F7D1C7C44290095945D /* RCTPushyDownloader.m in Sources */,
+ 249F2F64261C58C700A1E60E /* Lzma2Dec.c in Sources */,
+ 249F2F55261C584900A1E60E /* hpatch.c in Sources */,
9F394D831C7C25DC00C794C0 /* prng.c in Sources */,
9F394D861C7C25DC00C794C0 /* ioapi.c in Sources */,
9F1BCB461CAF6B3E000EF2CB /* bspatch.c in Sources */,
9F394D8A1C7C25DC00C794C0 /* SSZipArchive.m in Sources */,
+ 249F2F50261C577300A1E60E /* HDiffPatch.m in Sources */,
9F394D891C7C25DC00C794C0 /* zip.c in Sources */,
9F394D841C7C25DC00C794C0 /* pwd2key.c in Sources */,
+ 249F2F59261C586900A1E60E /* file_for_patch.c in Sources */,
91C5F0051C76ECA90037E727 /* RCTPushy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
diff --git a/ios/RCTPushy/BSDiff/BSDiff.h b/ios/RCTPushy/BSDiff/BSDiff.h
deleted file mode 100644
index d334f3c..0000000
--- a/ios/RCTPushy/BSDiff/BSDiff.h
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// BSDiff.h
-// RCTPushy
-//
-// Created by lvbingru on 16/4/2.
-// Copyright © 2016年 erica. All rights reserved.
-//
-
-#import
-
-@interface BSDiff : NSObject
-
-+ (BOOL)bsdiffPatch:(NSString *)path
- origin:(NSString *)origin
- toDestination:(NSString *)destination;
-@end
diff --git a/ios/RCTPushy/BSDiff/bzip/bspatch.c b/ios/RCTPushy/BSDiff/bzip/bspatch.c
deleted file mode 100644
index fa208f0..0000000
--- a/ios/RCTPushy/BSDiff/bzip/bspatch.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*-
- * Copyright 2003-2005 Colin Percival
- * Copyright 2012 Matthew Endsley
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted providing that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "bspatch.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-static int64_t offtin(uint8_t *buf)
-{
- int64_t y;
-
- y=buf[7]&0x7F;
- y=y*256;y+=buf[6];
- y=y*256;y+=buf[5];
- y=y*256;y+=buf[4];
- y=y*256;y+=buf[3];
- y=y*256;y+=buf[2];
- y=y*256;y+=buf[1];
- y=y*256;y+=buf[0];
-
- if(buf[7]&0x80) y=-y;
-
- return y;
-}
-
-int bspatch(const uint8_t* old, int64_t oldsize, uint8_t* new, int64_t newsize, struct bspatch_stream* stream)
-{
- uint8_t buf[8];
- int64_t oldpos,newpos;
- int64_t ctrl[3];
- int64_t i;
-
- oldpos=0;newpos=0;
- while(newposread(stream, buf, 8))
- return -1;
- ctrl[i]=offtin(buf);
- };
-
- /* Sanity-check */
- if(newpos+ctrl[0]>newsize)
- return -1;
-
- /* Read diff string */
- if (stream->read(stream, new + newpos, ctrl[0]))
- return -1;
-
- /* Add old data to diff string */
- for(i=0;i=0) && (oldpos+inewsize)
- return -1;
-
- /* Read extra string */
- if (stream->read(stream, new + newpos, ctrl[1]))
- return -1;
-
- /* Adjust pointers */
- newpos+=ctrl[1];
- oldpos+=ctrl[2];
- };
-
- return 0;
-}
-
-static int bz2_read(const struct bspatch_stream* stream, void* buffer, int length)
-{
- int n;
- int bz2err;
- BZFILE* bz2;
-
- bz2 = (BZFILE*)stream->opaque;
- n = BZ2_bzRead(&bz2err, bz2, buffer, length);
- if (n != length)
- return -1;
-
- return 0;
-}
-
-int beginPatch(const char* oldfile, const char* newfile, const char* patchfile)
-{
- FILE * f;
- int fd;
- int bz2err;
- uint8_t header[32];
- uint8_t *old, *new;
- int64_t oldsize, newsize;
- BZFILE* bz2;
- struct bspatch_stream stream;
-
- // if(argc!=4) errx(1,"usage: %s oldfile newfile patchfile\n",argv[0]);
-
- /* Open patch file */
- if ((f = fopen(patchfile, "r")) == NULL) {
- // err(1, "fopen(%s)", patchfile);
- return -1;
- }
-
- /* Read header */
- if (fread(header, 1, 32, f) != 32) {
- if (feof(f)) {
- // errx(1, "Corrupt patch\n");
- }
- // err(1, "fread(%s)", patchfile);
- return -1;
- }
-
- /* Check for appropriate magic */
- if (memcmp(header, "ENDSLEY/BSDIFF43", 16) != 0) {
- // errx(1, "Corrupt patch\n");
- return -1;
- }
-
- /* Read lengths from header */
- newsize=offtin(header+16);
- if(newsize<0) {
- // errx(1,"Corrupt patch\n");
- return -1;
- }
-
- /* Close patch file and re-open it via libbzip2 at the right places */
- if(((fd=open(oldfile,O_RDONLY,0))<0) ||
- ((oldsize=lseek(fd,0,SEEK_END))==-1) ||
- ((old=malloc(oldsize+1))==NULL) ||
- (lseek(fd,0,SEEK_SET)!=0) ||
- (read(fd,old,oldsize)!=oldsize) ||
- (close(fd)==-1)) err(1,"%s",oldfile);
- if((new=malloc(newsize+1))==NULL) err(1,NULL);
-
- if (NULL == (bz2 = BZ2_bzReadOpen(&bz2err, f, 0, 1, NULL, 0))) {
- // errx(1, "BZ2_bzReadOpen, bz2err=%d", bz2err);
- return -1;
- }
-
- stream.read = bz2_read;
- stream.opaque = bz2;
- if (bspatch(old, oldsize, new, newsize, &stream)) {
- // errx(1, "bspatch");
- return -1;
- }
-
- /* Clean up the bzip2 reads */
- BZ2_bzReadClose(&bz2err, bz2);
- fclose(f);
-
- /* Write the new file */
- if(((fd=open(newfile,O_CREAT|O_TRUNC|O_WRONLY,0666))<0) ||
- (write(fd,new,newsize)!=newsize) || (close(fd)==-1)) {
- err(1,"%s",newfile);
- return -1;
- }
- free(new);
- free(old);
- return 0;
-}
\ No newline at end of file
diff --git a/ios/RCTPushy/BSDiff/bzip/bspatch.h b/ios/RCTPushy/BSDiff/bzip/bspatch.h
deleted file mode 100644
index d2d5a0e..0000000
--- a/ios/RCTPushy/BSDiff/bzip/bspatch.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * Copyright 2003-2005 Colin Percival
- * Copyright 2012 Matthew Endsley
- * All rights reserved
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted providing that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef BSPATCH_H
-# define BSPATCH_H
-
-# include
-
-struct bspatch_stream
-{
- void* opaque;
- int (*read)(const struct bspatch_stream* stream, void* buffer, int length);
-};
-
-int bspatch(const uint8_t* old, int64_t oldsize, uint8_t* newBuf, int64_t newsize, struct bspatch_stream* stream);
-int beginPatch(const char* oldfile, const char* newfile, const char* patchfile);
-
-#endif
\ No newline at end of file
diff --git a/ios/RCTPushy/HDiffPatch/HDiffPatch.h b/ios/RCTPushy/HDiffPatch/HDiffPatch.h
new file mode 100644
index 0000000..60a4e3a
--- /dev/null
+++ b/ios/RCTPushy/HDiffPatch/HDiffPatch.h
@@ -0,0 +1,16 @@
+//
+// HDiffPatch.h
+// RCTPushy
+//
+// Created by HouSisong, All rights reserved.
+//
+
+#import
+
+@interface HDiffPatch : NSObject
+
++ (BOOL)hdiffPatch:(NSString *)path
+ origin:(NSString *)origin
+ toDestination:(NSString *)destination;
+
+@end
diff --git a/ios/RCTPushy/BSDiff/BSDiff.m b/ios/RCTPushy/HDiffPatch/HDiffPatch.m
similarity index 58%
rename from ios/RCTPushy/BSDiff/BSDiff.m
rename to ios/RCTPushy/HDiffPatch/HDiffPatch.m
index e63e63c..231d2da 100644
--- a/ios/RCTPushy/BSDiff/BSDiff.m
+++ b/ios/RCTPushy/HDiffPatch/HDiffPatch.m
@@ -1,20 +1,18 @@
//
-// BSDiff.m
+// HDiffPatch.m
// RCTPushy
//
-// Created by lvbingru on 16/4/2.
-// Copyright © 2016年 erica. All rights reserved.
+// Created by HouSisong, All rights reserved.
//
-#import "BSDiff.h"
-#include "bspatch.h"
+#import "HDiffPatch.h"
+#include "../../../android/jni/hpatch.h"
+@implementation HDiffPatch
-@implementation BSDiff
-
-+ (BOOL)bsdiffPatch:(NSString *)patch
++ (BOOL)hdiffPatch:(NSString *)patch
origin:(NSString *)origin
- toDestination:(NSString *)destination
+ toDestination:(NSString *)destination
{
if (![[NSFileManager defaultManager] fileExistsAtPath:patch]) {
return NO;
@@ -27,7 +25,7 @@
[[NSFileManager defaultManager] removeItemAtPath:destination error:nil];
}
- int err = beginPatch([origin UTF8String], [destination UTF8String], [patch UTF8String]);
+ int err = hpatch_by_file([origin UTF8String], [destination UTF8String], [patch UTF8String]);
if (err) {
return NO;
}
diff --git a/ios/RCTPushy/RCTPushy.m b/ios/RCTPushy/RCTPushy.m
index 77e9fd4..f49f222 100644
--- a/ios/RCTPushy/RCTPushy.m
+++ b/ios/RCTPushy/RCTPushy.m
@@ -38,7 +38,7 @@ static NSString * const BUNDLE_PATCH_NAME = @"index.bundlejs.patch";
// error def
static NSString * const ERROR_OPTIONS = @"options error";
-static NSString * const ERROR_BSDIFF = @"bsdiff error";
+static NSString * const ERROR_HDIFFPATCH = @"hdiffpatch error";
static NSString * const ERROR_FILE_OPERATION = @"file operation error";
// event def
@@ -53,6 +53,7 @@ typedef NS_ENUM(NSInteger, PushyType) {
PushyTypeFullDownload = 1,
PushyTypePatchFromPackage = 2,
PushyTypePatchFromPpk = 3,
+ //TASK_TYPE_PLAIN_DOWNLOAD=4?
};
static BOOL ignoreRollback = false;
@@ -424,14 +425,15 @@ RCT_EXPORT_METHOD(markSuccess)
}];
}
-- (void)patch:(NSString *)hash fromBundle:(NSString *)bundleOrigin source:(NSString *)sourceOrigin callback:(void (^)(NSError *error))callback
+- (void)_dopatch:(NSString *)hash fromBundle:(NSString *)bundleOrigin source:(NSString *)sourceOrigin
+ callback:(void (^)(NSError *error))callback
{
NSString *unzipDir = [[RCTPushy downloadDir] stringByAppendingPathComponent:hash];
NSString *sourcePatch = [unzipDir stringByAppendingPathComponent:SOURCE_PATCH_NAME];
NSString *bundlePatch = [unzipDir stringByAppendingPathComponent:BUNDLE_PATCH_NAME];
NSString *destination = [unzipDir stringByAppendingPathComponent:BUNDLE_FILE_NAME];
- [_fileManager bsdiffFileAtPath:bundlePatch fromOrigin:bundleOrigin toDestination:destination completionHandler:^(BOOL success) {
+ void (^completionHandler)(BOOL success) = ^(BOOL success) {
if (success) {
NSData *data = [NSData dataWithContentsOfFile:sourcePatch];
NSError *error = nil;
@@ -454,9 +456,15 @@ RCT_EXPORT_METHOD(markSuccess)
}];
}
else {
- callback([self errorWithMessage:ERROR_BSDIFF]);
+ callback([self errorWithMessage:ERROR_HDIFFPATCH]);
}
- }];
+ };
+ [_fileManager hdiffFileAtPath:bundlePatch fromOrigin:bundleOrigin toDestination:destination completionHandler:completionHandler];
+}
+
+- (void)patch:(NSString *)hash fromBundle:(NSString *)bundleOrigin source:(NSString *)sourceOrigin callback:(void (^)(NSError *error))callback
+{
+ [self _dopatch:hash fromBundle:bundleOrigin source:sourceOrigin callback:callback];
}
- (void)clearInvalidFiles
diff --git a/ios/RCTPushy/RCTPushyManager.h b/ios/RCTPushy/RCTPushyManager.h
index 05b90d1..68ea3c0 100644
--- a/ios/RCTPushy/RCTPushyManager.h
+++ b/ios/RCTPushy/RCTPushyManager.h
@@ -18,10 +18,10 @@
progressHandler:(void (^)(NSString *entry, long entryNumber, long total))progressHandler
completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler;
-- (void)bsdiffFileAtPath:(NSString *)path
- fromOrigin:(NSString *)origin
- toDestination:(NSString *)destination
- completionHandler:(void (^)(BOOL success))completionHandler;
+- (void)hdiffFileAtPath:(NSString *)path
+ fromOrigin:(NSString *)origin
+ toDestination:(NSString *)destination
+ completionHandler:(void (^)(BOOL success))completionHandler;
- (void)copyFiles:(NSDictionary *)filesDic
fromDir:(NSString *)fromDir
diff --git a/ios/RCTPushy/RCTPushyManager.m b/ios/RCTPushy/RCTPushyManager.m
index 871b5ca..87b9799 100644
--- a/ios/RCTPushy/RCTPushyManager.m
+++ b/ios/RCTPushy/RCTPushyManager.m
@@ -8,8 +8,7 @@
#import "RCTPushyManager.h"
#import "ZipArchive.h"
-#import "BSDiff.h"
-#import "bspatch.h"
+#import "HDiffPatch.h"
@implementation RCTPushyManager {
dispatch_queue_t _opQueue;
@@ -75,13 +74,13 @@
});
}
-- (void)bsdiffFileAtPath:(NSString *)path
- fromOrigin:(NSString *)origin
- toDestination:(NSString *)destination
- completionHandler:(void (^)(BOOL success))completionHandler
+- (void)hdiffFileAtPath:(NSString *)path
+ fromOrigin:(NSString *)origin
+ toDestination:(NSString *)destination
+ completionHandler:(void (^)(BOOL success))completionHandler
{
dispatch_async(_opQueue, ^{
- BOOL success = [BSDiff bsdiffPatch:path origin:origin toDestination:destination];
+ BOOL success = [HDiffPatch hdiffPatch:path origin:origin toDestination:destination];
if (completionHandler) {
completionHandler(success);
}
diff --git a/ios/RCTPushy/SSZipArchive/Common.h b/ios/RCTPushy/SSZipArchive/Common.h
deleted file mode 100755
index 7a92f13..0000000
--- a/ios/RCTPushy/SSZipArchive/Common.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef SSZipCommon
-#define SSZipCommon
-
-/* tm_unz contain date/time info */
-typedef struct tm_unz_s
-{
- unsigned int tm_sec; /* seconds after the minute - [0,59] */
- unsigned int tm_min; /* minutes after the hour - [0,59] */
- unsigned int tm_hour; /* hours since midnight - [0,23] */
- unsigned int tm_mday; /* day of the month - [1,31] */
- unsigned int tm_mon; /* months since January - [0,11] */
- unsigned int tm_year; /* years - [1980..2044] */
-} tm_unz;
-
-typedef struct unz_file_info_s
-{
- unsigned long version; /* version made by 2 bytes */
- unsigned long version_needed; /* version needed to extract 2 bytes */
- unsigned long flag; /* general purpose bit flag 2 bytes */
- unsigned long compression_method; /* compression method 2 bytes */
- unsigned long dosDate; /* last mod file date in Dos fmt 4 bytes */
- unsigned long crc; /* crc-32 4 bytes */
- unsigned long compressed_size; /* compressed size 4 bytes */
- unsigned long uncompressed_size; /* uncompressed size 4 bytes */
- unsigned long size_filename; /* filename length 2 bytes */
- unsigned long size_file_extra; /* extra field length 2 bytes */
- unsigned long size_file_comment; /* file comment length 2 bytes */
-
- unsigned long disk_num_start; /* disk number start 2 bytes */
- unsigned long internal_fa; /* internal file attributes 2 bytes */
- unsigned long external_fa; /* external file attributes 4 bytes */
-
- tm_unz tmu_date;
-} unz_file_info;
-
-/* unz_file_info contain information about a file in the zipfile */
-typedef struct unz_file_info64_s
-{
- unsigned long version; /* version made by 2 bytes */
- unsigned long version_needed; /* version needed to extract 2 bytes */
- unsigned long flag; /* general purpose bit flag 2 bytes */
- unsigned long compression_method; /* compression method 2 bytes */
- unsigned long dosDate; /* last mod file date in Dos fmt 4 bytes */
- unsigned long crc; /* crc-32 4 bytes */
- unsigned long long compressed_size; /* compressed size 8 bytes */
- unsigned long long uncompressed_size; /* uncompressed size 8 bytes */
- unsigned long size_filename; /* filename length 2 bytes */
- unsigned long size_file_extra; /* extra field length 2 bytes */
- unsigned long size_file_comment; /* file comment length 2 bytes */
-
- unsigned long disk_num_start; /* disk number start 2 bytes */
- unsigned long internal_fa; /* internal file attributes 2 bytes */
- unsigned long external_fa; /* external file attributes 4 bytes */
-
- tm_unz tmu_date;
- unsigned long long disk_offset;
- unsigned long size_file_extra_internal;
-} unz_file_info64;
-
-typedef struct unz_global_info_s
-{
- unsigned long number_entry; /* total number of entries in
- the central dir on this disk */
-
- unsigned long number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP*/
-
-
- unsigned long size_comment; /* size of the global comment of the zipfile */
-} unz_global_info;
-
-typedef struct unz_global_info64
-{
- unsigned long long number_entry; /* total number of entries in
- the central dir on this disk */
-
- unsigned long number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP*/
-
- unsigned long size_comment; /* size of the global comment of the zipfile */
-} unz_global_info64;
-
-#endif
\ No newline at end of file
diff --git a/ios/RCTPushy/SSZipArchive/Info.plist b/ios/RCTPushy/SSZipArchive/Info.plist
deleted file mode 100755
index d3de8ee..0000000
--- a/ios/RCTPushy/SSZipArchive/Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleExecutable
- $(EXECUTABLE_NAME)
- CFBundleIdentifier
- $(PRODUCT_BUNDLE_IDENTIFIER)
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- $(PRODUCT_NAME)
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- $(CURRENT_PROJECT_VERSION)
- NSPrincipalClass
-
-
-
diff --git a/ios/RCTPushy/SSZipArchive/SSZipArchive.h b/ios/RCTPushy/SSZipArchive/SSZipArchive.h
deleted file mode 100755
index 35d70d8..0000000
--- a/ios/RCTPushy/SSZipArchive/SSZipArchive.h
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// SSZipArchive.h
-// SSZipArchive
-//
-// Created by Sam Soffes on 7/21/10.
-// Copyright (c) Sam Soffes 2010-2015. All rights reserved.
-//
-
-#ifndef _SSZIPARCHIVE_H
-#define _SSZIPARCHIVE_H
-
-#import
-#include "Common.h"
-
-@protocol SSZipArchiveDelegate;
-
-@interface SSZipArchive : NSObject
-
-// Unzip
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination;
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(id)delegate;
-
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination overwrite:(BOOL)overwrite password:(NSString *)password error:(NSError * *)error;
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination overwrite:(BOOL)overwrite password:(NSString *)password error:(NSError * *)error delegate:(id)delegate;
-
-+ (BOOL)unzipFileAtPath:(NSString *)path
- toDestination:(NSString *)destination
- progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
- completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler;
-
-+ (BOOL)unzipFileAtPath:(NSString *)path
- toDestination:(NSString *)destination
- overwrite:(BOOL)overwrite
- password:(NSString *)password
- progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
- completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler;
-
-// Zip
-
-// without password
-+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths;
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath;
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirector;
-
-// with password, password could be nil
-+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(NSString *)password;
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(NSString *)password;
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(NSString *)password;
-
-- (instancetype)initWithPath:(NSString *)path;
-@property (NS_NONATOMIC_IOSONLY, readonly, getter = isOpen) BOOL open;
-- (BOOL)writeFile:(NSString *)path withPassword:(NSString *)password;
-- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(NSString *)password;
-- (BOOL)writeFileAtPath:(NSString *)path withFileName:(NSString *)fileName withPassword:(NSString *)password;
-- (BOOL)writeData:(NSData *)data filename:(NSString *)filename withPassword:(NSString *)password;
-@property (NS_NONATOMIC_IOSONLY, readonly, getter = isClosed) BOOL close;
-
-@end
-
-@protocol SSZipArchiveDelegate
-
-@optional
-
-- (void)zipArchiveWillUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo;
-- (void)zipArchiveDidUnzipArchiveAtPath:(NSString *)path zipInfo:(unz_global_info)zipInfo unzippedPath:(NSString *)unzippedPath;
-
-- (BOOL)zipArchiveShouldUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo;
-- (void)zipArchiveWillUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo;
-- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath fileInfo:(unz_file_info)fileInfo;
-- (void)zipArchiveDidUnzipFileAtIndex:(NSInteger)fileIndex totalFiles:(NSInteger)totalFiles archivePath:(NSString *)archivePath unzippedFilePath:(NSString *)unzippedFilePath;
-
-- (void)zipArchiveProgressEvent:(unsigned long long)loaded total:(unsigned long long)total;
-- (void)zipArchiveDidUnzipArchiveFile:(NSString *)zipFile entryPath:(NSString *)entryPath destPath:(NSString *)destPath;
-
-@end
-
-#endif /* _SSZIPARCHIVE_H */
diff --git a/ios/RCTPushy/SSZipArchive/SSZipArchive.m b/ios/RCTPushy/SSZipArchive/SSZipArchive.m
deleted file mode 100755
index c041ccf..0000000
--- a/ios/RCTPushy/SSZipArchive/SSZipArchive.m
+++ /dev/null
@@ -1,711 +0,0 @@
-//
-// SSZipArchive.m
-// SSZipArchive
-//
-// Created by Sam Soffes on 7/21/10.
-// Copyright (c) Sam Soffes 2010-2015. All rights reserved.
-//
-#import "SSZipArchive.h"
-#include "unzip.h"
-#include "zip.h"
-#import "zlib.h"
-#import "zconf.h"
-
-#include
-
-#define CHUNK 16384
-
-@interface SSZipArchive ()
-+ (NSDate *)_dateWithMSDOSFormat:(UInt32)msdosDateTime;
-@end
-
-@implementation SSZipArchive
-{
- NSString *_path;
- NSString *_filename;
- zipFile _zip;
-}
-
-#pragma mark - Unzipping
-
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination
-{
- return [self unzipFileAtPath:path toDestination:destination delegate:nil];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination overwrite:(BOOL)overwrite password:(NSString *)password error:(NSError **)error
-{
- return [self unzipFileAtPath:path toDestination:destination overwrite:overwrite password:password error:error delegate:nil progressHandler:nil completionHandler:nil];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination delegate:(id)delegate
-{
- return [self unzipFileAtPath:path toDestination:destination overwrite:YES password:nil error:nil delegate:delegate progressHandler:nil completionHandler:nil];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path toDestination:(NSString *)destination overwrite:(BOOL)overwrite password:(NSString *)password error:(NSError **)error delegate:(id)delegate
-{
- return [self unzipFileAtPath:path toDestination:destination overwrite:overwrite password:password error:error delegate:delegate progressHandler:nil completionHandler:nil];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path
- toDestination:(NSString *)destination
- overwrite:(BOOL)overwrite
- password:(NSString *)password
- progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
- completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler
-{
- return [self unzipFileAtPath:path toDestination:destination overwrite:overwrite password:password error:nil delegate:nil progressHandler:progressHandler completionHandler:completionHandler];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path
- toDestination:(NSString *)destination
- progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
- completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler
-{
- return [self unzipFileAtPath:path toDestination:destination overwrite:YES password:nil error:nil delegate:nil progressHandler:progressHandler completionHandler:completionHandler];
-}
-
-+ (BOOL)unzipFileAtPath:(NSString *)path
- toDestination:(NSString *)destination
- overwrite:(BOOL)overwrite
- password:(NSString *)password
- error:(NSError **)error
- delegate:(id)delegate
- progressHandler:(void (^)(NSString *entry, unz_file_info zipInfo, long entryNumber, long total))progressHandler
- completionHandler:(void (^)(NSString *path, BOOL succeeded, NSError *error))completionHandler
-{
- // Begin opening
- zipFile zip = unzOpen((const char*)[path UTF8String]);
- if (zip == NULL)
- {
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"failed to open zip file"};
- NSError *err = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:-1 userInfo:userInfo];
- if (error)
- {
- *error = err;
- }
- if (completionHandler)
- {
- completionHandler(nil, NO, err);
- }
- return NO;
- }
-
- NSDictionary * fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];
- unsigned long long fileSize = [fileAttributes[NSFileSize] unsignedLongLongValue];
- unsigned long long currentPosition = 0;
-
- unz_global_info globalInfo = {0ul, 0ul};
- unzGetGlobalInfo(zip, &globalInfo);
-
- // Begin unzipping
- if (unzGoToFirstFile(zip) != UNZ_OK)
- {
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"failed to open first file in zip file"};
- NSError *err = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:-2 userInfo:userInfo];
- if (error)
- {
- *error = err;
- }
- if (completionHandler)
- {
- completionHandler(nil, NO, err);
- }
- return NO;
- }
-
- BOOL success = YES;
- BOOL canceled = NO;
- int ret = 0;
- int crc_ret =0;
- unsigned char buffer[4096] = {0};
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSMutableSet *directoriesModificationDates = [[NSMutableSet alloc] init];
-
- // Message delegate
- if ([delegate respondsToSelector:@selector(zipArchiveWillUnzipArchiveAtPath:zipInfo:)]) {
- [delegate zipArchiveWillUnzipArchiveAtPath:path zipInfo:globalInfo];
- }
- if ([delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) {
- [delegate zipArchiveProgressEvent:currentPosition total:fileSize];
- }
-
- NSInteger currentFileNumber = 0;
- do {
- @autoreleasepool {
- if ([password length] == 0) {
- ret = unzOpenCurrentFile(zip);
- } else {
- ret = unzOpenCurrentFilePassword(zip, [password cStringUsingEncoding:NSASCIIStringEncoding]);
- }
-
- if (ret != UNZ_OK) {
- success = NO;
- break;
- }
-
- // Reading data and write to file
- unz_file_info fileInfo;
- memset(&fileInfo, 0, sizeof(unz_file_info));
-
- ret = unzGetCurrentFileInfo(zip, &fileInfo, NULL, 0, NULL, 0, NULL, 0);
- if (ret != UNZ_OK) {
- success = NO;
- unzCloseCurrentFile(zip);
- break;
- }
-
- currentPosition += fileInfo.compressed_size;
-
- // Message delegate
- if ([delegate respondsToSelector:@selector(zipArchiveShouldUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) {
- if (![delegate zipArchiveShouldUnzipFileAtIndex:currentFileNumber
- totalFiles:(NSInteger)globalInfo.number_entry
- archivePath:path fileInfo:fileInfo]) {
- success = NO;
- canceled = YES;
- break;
- }
- }
- if ([delegate respondsToSelector:@selector(zipArchiveWillUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) {
- [delegate zipArchiveWillUnzipFileAtIndex:currentFileNumber totalFiles:(NSInteger)globalInfo.number_entry
- archivePath:path fileInfo:fileInfo];
- }
- if ([delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) {
- [delegate zipArchiveProgressEvent:(NSInteger)currentPosition total:(NSInteger)fileSize];
- }
-
- char *filename = (char *)malloc(fileInfo.size_filename + 1);
- if (filename == NULL)
- {
- return NO;
- }
-
- unzGetCurrentFileInfo(zip, &fileInfo, filename, fileInfo.size_filename + 1, NULL, 0, NULL, 0);
- filename[fileInfo.size_filename] = '\0';
-
- //
- // Determine whether this is a symbolic link:
- // - File is stored with 'version made by' value of UNIX (3),
- // as per http://www.pkware.com/documents/casestudies/APPNOTE.TXT
- // in the upper byte of the version field.
- // - BSD4.4 st_mode constants are stored in the high 16 bits of the
- // external file attributes (defacto standard, verified against libarchive)
- //
- // The original constants can be found here:
- // http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.4BSD/usr/include/sys/stat.h
- //
- const uLong ZipUNIXVersion = 3;
- const uLong BSD_SFMT = 0170000;
- const uLong BSD_IFLNK = 0120000;
-
- BOOL fileIsSymbolicLink = NO;
- if (((fileInfo.version >> 8) == ZipUNIXVersion) && BSD_IFLNK == (BSD_SFMT & (fileInfo.external_fa >> 16))) {
- fileIsSymbolicLink = NO;
- }
-
- // Check if it contains directory
- NSString *strPath = @(filename);
- BOOL isDirectory = NO;
- if (filename[fileInfo.size_filename-1] == '/' || filename[fileInfo.size_filename-1] == '\\') {
- isDirectory = YES;
- }
- free(filename);
-
- // Contains a path
- if ([strPath rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"/\\"]].location != NSNotFound) {
- strPath = [strPath stringByReplacingOccurrencesOfString:@"\\" withString:@"/"];
- }
-
- NSString *fullPath = [destination stringByAppendingPathComponent:strPath];
- NSError *err = nil;
- NSDate *modDate = [[self class] _dateWithMSDOSFormat:(UInt32)fileInfo.dosDate];
- NSDictionary *directoryAttr = @{NSFileCreationDate: modDate, NSFileModificationDate: modDate};
-
- if (isDirectory) {
- [fileManager createDirectoryAtPath:fullPath withIntermediateDirectories:YES attributes:directoryAttr error:&err];
- } else {
- [fileManager createDirectoryAtPath:[fullPath stringByDeletingLastPathComponent] withIntermediateDirectories:YES attributes:directoryAttr error:&err];
- }
- if (nil != err) {
- NSLog(@"[SSZipArchive] Error: %@", err.localizedDescription);
- }
-
- if(!fileIsSymbolicLink)
- [directoriesModificationDates addObject: @{@"path": fullPath, @"modDate": modDate}];
-
- if ([fileManager fileExistsAtPath:fullPath] && !isDirectory && !overwrite) {
- //FIXME: couldBe CRC Check?
- unzCloseCurrentFile(zip);
- ret = unzGoToNextFile(zip);
- continue;
- }
-
- if (!fileIsSymbolicLink) {
- FILE *fp = fopen((const char*)[fullPath UTF8String], "wb");
- while (fp) {
- int readBytes = unzReadCurrentFile(zip, buffer, 4096);
-
- if (readBytes > 0) {
- fwrite(buffer, readBytes, 1, fp );
- } else {
- break;
- }
- }
-
- if (fp) {
- if ([[[fullPath pathExtension] lowercaseString] isEqualToString:@"zip"]) {
- NSLog(@"Unzipping nested .zip file: %@", [fullPath lastPathComponent]);
- if ([self unzipFileAtPath:fullPath toDestination:[fullPath stringByDeletingLastPathComponent] overwrite:overwrite password:password error:nil delegate:nil]) {
- [[NSFileManager defaultManager] removeItemAtPath:fullPath error:nil];
- }
- }
-
- fclose(fp);
-
- // Set the original datetime property
- if (fileInfo.dosDate != 0) {
- NSDate *orgDate = [[self class] _dateWithMSDOSFormat:(UInt32)fileInfo.dosDate];
- NSDictionary *attr = @{NSFileModificationDate: orgDate};
-
- if (attr) {
- if ([fileManager setAttributes:attr ofItemAtPath:fullPath error:nil] == NO) {
- // Can't set attributes
- NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting modification date");
- }
- }
- }
-
- // Set the original permissions on the file
- uLong permissions = fileInfo.external_fa >> 16;
- if (permissions != 0) {
- // Store it into a NSNumber
- NSNumber *permissionsValue = @(permissions);
-
- // Retrieve any existing attributes
- NSMutableDictionary *attrs = [[NSMutableDictionary alloc] initWithDictionary:[fileManager attributesOfItemAtPath:fullPath error:nil]];
-
- // Set the value in the attributes dict
- attrs[NSFilePosixPermissions] = permissionsValue;
-
- // Update attributes
- if ([fileManager setAttributes:attrs ofItemAtPath:fullPath error:nil] == NO) {
- // Unable to set the permissions attribute
- NSLog(@"[SSZipArchive] Failed to set attributes - whilst setting permissions");
- }
-
-#if !__has_feature(objc_arc)
- [attrs release];
-#endif
- }
- }
- }
- else
- {
- // Assemble the path for the symbolic link
- NSMutableString* destinationPath = [NSMutableString string];
- int bytesRead = 0;
- while((bytesRead = unzReadCurrentFile(zip, buffer, 4096)) > 0)
- {
- buffer[bytesRead] = (int)0;
- [destinationPath appendString:@((const char*)buffer)];
- }
-
- // Create the symbolic link (making sure it stays relative if it was relative before)
- int symlinkError = symlink([destinationPath cStringUsingEncoding:NSUTF8StringEncoding],
- [fullPath cStringUsingEncoding:NSUTF8StringEncoding]);
-
- if(symlinkError != 0)
- {
- NSLog(@"Failed to create symbolic link at \"%@\" to \"%@\". symlink() error code: %d", fullPath, destinationPath, errno);
- }
- }
-
- crc_ret = unzCloseCurrentFile( zip );
- if (crc_ret == UNZ_CRCERROR) {
- //CRC ERROR
- success = NO;
- break;
- }
- ret = unzGoToNextFile( zip );
-
- // Message delegate
- if ([delegate respondsToSelector:@selector(zipArchiveDidUnzipFileAtIndex:totalFiles:archivePath:fileInfo:)]) {
- [delegate zipArchiveDidUnzipFileAtIndex:currentFileNumber totalFiles:(NSInteger)globalInfo.number_entry
- archivePath:path fileInfo:fileInfo];
- } else if ([delegate respondsToSelector: @selector(zipArchiveDidUnzipFileAtIndex:totalFiles:archivePath:unzippedFilePath:)]) {
- [delegate zipArchiveDidUnzipFileAtIndex: currentFileNumber totalFiles: (NSInteger)globalInfo.number_entry
- archivePath:path unzippedFilePath: fullPath];
- }
-
- currentFileNumber++;
- if (progressHandler)
- {
- progressHandler(strPath, fileInfo, currentFileNumber, globalInfo.number_entry);
- }
- }
- } while(ret == UNZ_OK && ret != UNZ_END_OF_LIST_OF_FILE);
-
- // Close
- unzClose(zip);
-
- // The process of decompressing the .zip archive causes the modification times on the folders
- // to be set to the present time. So, when we are done, they need to be explicitly set.
- // set the modification date on all of the directories.
- NSError * err = nil;
- for (NSDictionary * d in directoriesModificationDates) {
- if (![[NSFileManager defaultManager] setAttributes:@{NSFileModificationDate: d[@"modDate"]} ofItemAtPath:d[@"path"] error:&err]) {
- NSLog(@"[SSZipArchive] Set attributes failed for directory: %@.", d[@"path"]);
- }
- if (err) {
- NSLog(@"[SSZipArchive] Error setting directory file modification date attribute: %@",err.localizedDescription);
- }
- }
-
-#if !__has_feature(objc_arc)
- [directoriesModificationDates release];
-#endif
-
- // Message delegate
- if (success && [delegate respondsToSelector:@selector(zipArchiveDidUnzipArchiveAtPath:zipInfo:unzippedPath:)]) {
- [delegate zipArchiveDidUnzipArchiveAtPath:path zipInfo:globalInfo unzippedPath:destination];
- }
- // final progress event = 100%
- if (!canceled && [delegate respondsToSelector:@selector(zipArchiveProgressEvent:total:)]) {
- [delegate zipArchiveProgressEvent:fileSize total:fileSize];
- }
-
- NSError *retErr = nil;
- if (crc_ret == UNZ_CRCERROR)
- {
- NSDictionary *userInfo = @{NSLocalizedDescriptionKey: @"crc check failed for file"};
- retErr = [NSError errorWithDomain:@"SSZipArchiveErrorDomain" code:-3 userInfo:userInfo];
- }
- if (error)
- {
- *error = retErr;
- }
- if (completionHandler)
- {
- completionHandler(path, success, retErr);
- }
- return success;
-}
-
-#pragma mark - Zipping
-+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths
-{
- return [SSZipArchive createZipFileAtPath:path withFilesAtPaths:paths withPassword:nil];
-}
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath{
- return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath withPassword:nil];
-}
-
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirector{
- return [SSZipArchive createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:keepParentDirector withPassword:nil];
-}
-
-+ (BOOL)createZipFileAtPath:(NSString *)path withFilesAtPaths:(NSArray *)paths withPassword:(NSString *)password
-{
- BOOL success = NO;
- SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path];
- if ([zipArchive open]) {
- for (NSString *filePath in paths) {
- [zipArchive writeFile:filePath withPassword:password];
- }
- success = [zipArchive close];
- }
-
-#if !__has_feature(objc_arc)
- [zipArchive release];
-#endif
-
- return success;
-}
-
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath withPassword:(NSString *)password{
- return [self createZipFileAtPath:path withContentsOfDirectory:directoryPath keepParentDirectory:NO withPassword:password];
-}
-
-
-+ (BOOL)createZipFileAtPath:(NSString *)path withContentsOfDirectory:(NSString *)directoryPath keepParentDirectory:(BOOL)keepParentDirectory withPassword:(NSString *)password{
- BOOL success = NO;
-
- NSFileManager *fileManager = nil;
- SSZipArchive *zipArchive = [[SSZipArchive alloc] initWithPath:path];
-
- if ([zipArchive open]) {
- // use a local filemanager (queue/thread compatibility)
- fileManager = [[NSFileManager alloc] init];
- NSDirectoryEnumerator *dirEnumerator = [fileManager enumeratorAtPath:directoryPath];
- NSString *fileName;
- while ((fileName = [dirEnumerator nextObject])) {
- BOOL isDir;
- NSString *fullFilePath = [directoryPath stringByAppendingPathComponent:fileName];
- [fileManager fileExistsAtPath:fullFilePath isDirectory:&isDir];
- if (!isDir) {
- if (keepParentDirectory)
- {
- fileName = [[directoryPath lastPathComponent] stringByAppendingPathComponent:fileName];
- }
- [zipArchive writeFileAtPath:fullFilePath withFileName:fileName withPassword:password];
- }
- else
- {
- if([[NSFileManager defaultManager] subpathsOfDirectoryAtPath:fullFilePath error:nil].count == 0)
- {
- NSString *tempName = [fullFilePath stringByAppendingPathComponent:@".DS_Store"];
- [@"" writeToFile:tempName atomically:YES encoding:NSUTF8StringEncoding error:nil];
- [zipArchive writeFileAtPath:tempName withFileName:[fileName stringByAppendingPathComponent:@".DS_Store"] withPassword:password];
- [[NSFileManager defaultManager] removeItemAtPath:tempName error:nil];
- }
- }
- }
- success = [zipArchive close];
- }
-
-#if !__has_feature(objc_arc)
- [fileManager release];
- [zipArchive release];
-#endif
-
- return success;
-}
-
-
-- (instancetype)initWithPath:(NSString *)path
-{
- if ((self = [super init])) {
- _path = [path copy];
- }
- return self;
-}
-
-
-#if !__has_feature(objc_arc)
-- (void)dealloc
-{
- [_path release];
- [super dealloc];
-}
-#endif
-
-
-- (BOOL)open
-{
- NSAssert((_zip == NULL), @"Attempting open an archive which is already open");
- _zip = zipOpen([_path UTF8String], APPEND_STATUS_CREATE);
- return (NULL != _zip);
-}
-
-
-- (void)zipInfo:(zip_fileinfo*)zipInfo setDate:(NSDate*)date
-{
- NSCalendar *currentCalendar = [NSCalendar currentCalendar];
-#if defined(__IPHONE_8_0) || defined(__MAC_10_10)
- uint flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
-#else
- uint flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
-#endif
- NSDateComponents *components = [currentCalendar components:flags fromDate:date];
- zipInfo->tmz_date.tm_sec = (unsigned int)components.second;
- zipInfo->tmz_date.tm_min = (unsigned int)components.minute;
- zipInfo->tmz_date.tm_hour = (unsigned int)components.hour;
- zipInfo->tmz_date.tm_mday = (unsigned int)components.day;
- zipInfo->tmz_date.tm_mon = (unsigned int)components.month - 1;
- zipInfo->tmz_date.tm_year = (unsigned int)components.year;
-}
-
-- (BOOL)writeFolderAtPath:(NSString *)path withFolderName:(NSString *)folderName withPassword:(NSString *)password
-{
- NSAssert((_zip != NULL), @"Attempting to write to an archive which was never opened");
-
- zip_fileinfo zipInfo = {{0}};
-
- NSDictionary *attr = [[NSFileManager defaultManager] attributesOfItemAtPath:path error: nil];
- if( attr )
- {
- NSDate *fileDate = (NSDate *)attr[NSFileModificationDate];
- if( fileDate )
- {
- [self zipInfo:&zipInfo setDate: fileDate ];
- }
-
- // Write permissions into the external attributes, for details on this see here: http://unix.stackexchange.com/a/14727
- // Get the permissions value from the files attributes
- NSNumber *permissionsValue = (NSNumber *)attr[NSFilePosixPermissions];
- if (permissionsValue) {
- // Get the short value for the permissions
- short permissionsShort = permissionsValue.shortValue;
-
- // Convert this into an octal by adding 010000, 010000 being the flag for a regular file
- NSInteger permissionsOctal = 0100000 + permissionsShort;
-
- // Convert this into a long value
- uLong permissionsLong = @(permissionsOctal).unsignedLongValue;
-
- // Store this into the external file attributes once it has been shifted 16 places left to form part of the second from last byte
- zipInfo.external_fa = permissionsLong << 16L;
- }
- }
-
- unsigned int len = 0;
- zipOpenNewFileInZip3(_zip, [[folderName stringByAppendingString:@"/"] UTF8String], &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_NO_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, [password UTF8String], 0);
- zipWriteInFileInZip(_zip, &len, 0);
- zipCloseFileInZip(_zip);
- return YES;
-}
-
-- (BOOL)writeFile:(NSString *)path withPassword:(NSString *)password;
-{
- return [self writeFileAtPath:path withFileName:nil withPassword:password];
-}
-
-// supports writing files with logical folder/directory structure
-// *path* is the absolute path of the file that will be compressed
-// *fileName* is the relative name of the file how it is stored within the zip e.g. /folder/subfolder/text1.txt
-- (BOOL)writeFileAtPath:(NSString *)path withFileName:(NSString *)fileName withPassword:(NSString *)password
-{
- NSAssert((_zip != NULL), @"Attempting to write to an archive which was never opened");
-
- FILE *input = fopen([path UTF8String], "r");
- if (NULL == input) {
- return NO;
- }
-
- const char *afileName;
- if (!fileName) {
- afileName = [path.lastPathComponent UTF8String];
- }
- else {
- afileName = [fileName UTF8String];
- }
-
- zip_fileinfo zipInfo = {{0}};
-
- NSDictionary *attr = [[NSFileManager defaultManager] attributesOfItemAtPath:path error: nil];
- if( attr )
- {
- NSDate *fileDate = (NSDate *)attr[NSFileModificationDate];
- if( fileDate )
- {
- [self zipInfo:&zipInfo setDate: fileDate ];
- }
-
- // Write permissions into the external attributes, for details on this see here: http://unix.stackexchange.com/a/14727
- // Get the permissions value from the files attributes
- NSNumber *permissionsValue = (NSNumber *)attr[NSFilePosixPermissions];
- if (permissionsValue) {
- // Get the short value for the permissions
- short permissionsShort = permissionsValue.shortValue;
-
- // Convert this into an octal by adding 010000, 010000 being the flag for a regular file
- NSInteger permissionsOctal = 0100000 + permissionsShort;
-
- // Convert this into a long value
- uLong permissionsLong = @(permissionsOctal).unsignedLongValue;
-
- // Store this into the external file attributes once it has been shifted 16 places left to form part of the second from last byte
- zipInfo.external_fa = permissionsLong << 16L;
- }
- }
-
- void *buffer = malloc(CHUNK);
- if (buffer == NULL)
- {
- return NO;
- }
-
- zipOpenNewFileInZip3(_zip, afileName, &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, [password UTF8String], 0);
- unsigned int len = 0;
-
- while (!feof(input))
- {
- len = (unsigned int) fread(buffer, 1, CHUNK, input);
- zipWriteInFileInZip(_zip, buffer, len);
- }
-
- zipCloseFileInZip(_zip);
- free(buffer);
- fclose(input);
- return YES;
-}
-
-- (BOOL)writeData:(NSData *)data filename:(NSString *)filename withPassword:(NSString *)password;
-{
- if (!_zip) {
- return NO;
- }
- if (!data) {
- return NO;
- }
- zip_fileinfo zipInfo = {{0,0,0,0,0,0},0,0,0};
- [self zipInfo:&zipInfo setDate:[NSDate date]];
-
- zipOpenNewFileInZip3(_zip, [filename UTF8String], &zipInfo, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION, 0, -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, [password UTF8String], 0);
-
- zipWriteInFileInZip(_zip, data.bytes, (unsigned int)data.length);
-
- zipCloseFileInZip(_zip);
- return YES;
-}
-
-
-- (BOOL)close
-{
- NSAssert((_zip != NULL), @"[SSZipArchive] Attempting to close an archive which was never opened");
- zipClose(_zip, NULL);
- return YES;
-}
-
-#pragma mark - Private
-
-// Format from http://newsgroups.derkeiler.com/Archive/Comp/comp.os.msdos.programmer/2009-04/msg00060.html
-// Two consecutive words, or a longword, YYYYYYYMMMMDDDDD hhhhhmmmmmmsssss
-// YYYYYYY is years from 1980 = 0
-// sssss is (seconds/2).
-//
-// 3658 = 0011 0110 0101 1000 = 0011011 0010 11000 = 27 2 24 = 2007-02-24
-// 7423 = 0111 0100 0010 0011 - 01110 100001 00011 = 14 33 3 = 14:33:06
-+ (NSDate *)_dateWithMSDOSFormat:(UInt32)msdosDateTime
-{
- static const UInt32 kYearMask = 0xFE000000;
- static const UInt32 kMonthMask = 0x1E00000;
- static const UInt32 kDayMask = 0x1F0000;
- static const UInt32 kHourMask = 0xF800;
- static const UInt32 kMinuteMask = 0x7E0;
- static const UInt32 kSecondMask = 0x1F;
-
- static NSCalendar *gregorian;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
-#if defined(__IPHONE_8_0) || defined(__MAC_10_10)
- gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
-#else
- gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
-#endif
- });
-
- NSDateComponents *components = [[NSDateComponents alloc] init];
-
- NSAssert(0xFFFFFFFF == (kYearMask | kMonthMask | kDayMask | kHourMask | kMinuteMask | kSecondMask), @"[SSZipArchive] MSDOS date masks don't add up");
-
- [components setYear:1980 + ((msdosDateTime & kYearMask) >> 25)];
- [components setMonth:(msdosDateTime & kMonthMask) >> 21];
- [components setDay:(msdosDateTime & kDayMask) >> 16];
- [components setHour:(msdosDateTime & kHourMask) >> 11];
- [components setMinute:(msdosDateTime & kMinuteMask) >> 5];
- [components setSecond:(msdosDateTime & kSecondMask) * 2];
-
- NSDate *date = [NSDate dateWithTimeInterval:0 sinceDate:[gregorian dateFromComponents:components]];
-
-#if !__has_feature(objc_arc)
- [components release];
-#endif
-
- return date;
-}
-
-@end
\ No newline at end of file
diff --git a/ios/RCTPushy/SSZipArchive/ZipArchive.h b/ios/RCTPushy/SSZipArchive/ZipArchive.h
deleted file mode 100755
index e0c96fc..0000000
--- a/ios/RCTPushy/SSZipArchive/ZipArchive.h
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// ZipArchive.h
-// ZipArchive
-//
-// Created by Serhii Mumriak on 12/1/15.
-// Copyright © 2015 smumryak. All rights reserved.
-//
-
-#import
-
-//! Project version number for ZipArchive.
-FOUNDATION_EXPORT double ZipArchiveVersionNumber;
-
-//! Project version string for ZipArchive.
-FOUNDATION_EXPORT const unsigned char ZipArchiveVersionString[];
-
-// In this header, you should import all the public headers of your framework using statements like #import
-
-#import "SSZipArchive.h"
-
diff --git a/ios/RCTPushy/SSZipArchive/aes/aes.h b/ios/RCTPushy/SSZipArchive/aes/aes.h
deleted file mode 100755
index 44682c3..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aes.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-
- This file contains the definitions required to use AES in C. See aesopt.h
- for optimisation details.
-*/
-
-#ifndef _AES_H
-#define _AES_H
-
-#include
-
-/* This include is used to find 8 & 32 bit unsigned integer types */
-#include "brg_types.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#define AES_128 /* if a fast 128 bit key scheduler is needed */
-#define AES_192 /* if a fast 192 bit key scheduler is needed */
-#define AES_256 /* if a fast 256 bit key scheduler is needed */
-#define AES_VAR /* if variable key size scheduler is needed */
-#define AES_MODES /* if support is needed for modes */
-
-/* The following must also be set in assembler files if being used */
-
-#define AES_ENCRYPT /* if support for encryption is needed */
-#define AES_DECRYPT /* if support for decryption is needed */
-#define AES_REV_DKS /* define to reverse decryption key schedule */
-
-#define AES_BLOCK_SIZE 16 /* the AES block size in bytes */
-#define N_COLS 4 /* the number of columns in the state */
-
-/* The key schedule length is 11, 13 or 15 16-byte blocks for 128, */
-/* 192 or 256-bit keys respectively. That is 176, 208 or 240 bytes */
-/* or 44, 52 or 60 32-bit words. */
-
-#if defined( AES_VAR ) || defined( AES_256 )
-#define KS_LENGTH 60
-#elif defined( AES_192 )
-#define KS_LENGTH 52
-#else
-#define KS_LENGTH 44
-#endif
-
-#define AES_RETURN INT_RETURN
-
-/* the character array 'inf' in the following structures is used */
-/* to hold AES context information. This AES code uses cx->inf.b[0] */
-/* to hold the number of rounds multiplied by 16. The other three */
-/* elements can be used by code that implements additional modes */
-
-typedef union
-{ uint_32t l;
- uint_8t b[4];
-} aes_inf;
-
-typedef struct
-{ uint_32t ks[KS_LENGTH];
- aes_inf inf;
-} aes_encrypt_ctx;
-
-typedef struct
-{ uint_32t ks[KS_LENGTH];
- aes_inf inf;
-} aes_decrypt_ctx;
-
-/* This routine must be called before first use if non-static */
-/* tables are being used */
-
-AES_RETURN aes_init(void);
-
-/* Key lengths in the range 16 <= key_len <= 32 are given in bytes, */
-/* those in the range 128 <= key_len <= 256 are given in bits */
-
-#if defined( AES_ENCRYPT )
-
-#if defined( AES_128 ) || defined( AES_VAR)
-AES_RETURN aes_encrypt_key128(const unsigned char *key, aes_encrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_192 ) || defined( AES_VAR)
-AES_RETURN aes_encrypt_key192(const unsigned char *key, aes_encrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_256 ) || defined( AES_VAR)
-AES_RETURN aes_encrypt_key256(const unsigned char *key, aes_encrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_VAR )
-AES_RETURN aes_encrypt_key(const unsigned char *key, int key_len, aes_encrypt_ctx cx[1]);
-#endif
-
-AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1]);
-
-#endif
-
-#if defined( AES_DECRYPT )
-
-#if defined( AES_128 ) || defined( AES_VAR)
-AES_RETURN aes_decrypt_key128(const unsigned char *key, aes_decrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_192 ) || defined( AES_VAR)
-AES_RETURN aes_decrypt_key192(const unsigned char *key, aes_decrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_256 ) || defined( AES_VAR)
-AES_RETURN aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1]);
-#endif
-
-#if defined( AES_VAR )
-AES_RETURN aes_decrypt_key(const unsigned char *key, int key_len, aes_decrypt_ctx cx[1]);
-#endif
-
-AES_RETURN aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1]);
-
-#endif
-
-#if defined( AES_MODES )
-
-/* Multiple calls to the following subroutines for multiple block */
-/* ECB, CBC, CFB, OFB and CTR mode encryption can be used to handle */
-/* long messages incremantally provided that the context AND the iv */
-/* are preserved between all such calls. For the ECB and CBC modes */
-/* each individual call within a series of incremental calls must */
-/* process only full blocks (i.e. len must be a multiple of 16) but */
-/* the CFB, OFB and CTR mode calls can handle multiple incremental */
-/* calls of any length. Each mode is reset when a new AES key is */
-/* set but ECB and CBC operations can be reset without setting a */
-/* new key by setting a new IV value. To reset CFB, OFB and CTR */
-/* without setting the key, aes_mode_reset() must be called and the */
-/* IV must be set. NOTE: All these calls update the IV on exit so */
-/* this has to be reset if a new operation with the same IV as the */
-/* previous one is required (or decryption follows encryption with */
-/* the same IV array). */
-
-AES_RETURN aes_test_alignment_detection(unsigned int n);
-
-AES_RETURN aes_ecb_encrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, const aes_encrypt_ctx cx[1]);
-
-AES_RETURN aes_ecb_decrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, const aes_decrypt_ctx cx[1]);
-
-AES_RETURN aes_cbc_encrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *iv, const aes_encrypt_ctx cx[1]);
-
-AES_RETURN aes_cbc_decrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *iv, const aes_decrypt_ctx cx[1]);
-
-AES_RETURN aes_mode_reset(aes_encrypt_ctx cx[1]);
-
-AES_RETURN aes_cfb_encrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *iv, aes_encrypt_ctx cx[1]);
-
-AES_RETURN aes_cfb_decrypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *iv, aes_encrypt_ctx cx[1]);
-
-#define aes_ofb_encrypt aes_ofb_crypt
-#define aes_ofb_decrypt aes_ofb_crypt
-
-AES_RETURN aes_ofb_crypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *iv, aes_encrypt_ctx cx[1]);
-
-typedef void cbuf_inc(unsigned char *cbuf);
-
-#define aes_ctr_encrypt aes_ctr_crypt
-#define aes_ctr_decrypt aes_ctr_crypt
-
-AES_RETURN aes_ctr_crypt(const unsigned char *ibuf, unsigned char *obuf,
- int len, unsigned char *cbuf, cbuf_inc ctr_inc, aes_encrypt_ctx cx[1]);
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/aes_via_ace.h b/ios/RCTPushy/SSZipArchive/aes/aes_via_ace.h
deleted file mode 100755
index cb2aa1b..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aes_via_ace.h
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-*/
-
-#ifndef AES_VIA_ACE_H
-#define AES_VIA_ACE_H
-
-#if defined( _MSC_VER )
-# define INLINE __inline
-#elif defined( __GNUC__ )
-# define INLINE static inline
-#else
-# error VIA ACE requires Microsoft or GNU C
-#endif
-
-#define NEH_GENERATE 1
-#define NEH_LOAD 2
-#define NEH_HYBRID 3
-
-#define MAX_READ_ATTEMPTS 1000
-
-/* VIA Nehemiah RNG and ACE Feature Mask Values */
-
-#define NEH_CPU_IS_VIA 0x00000001
-#define NEH_CPU_READ 0x00000010
-#define NEH_CPU_MASK 0x00000011
-
-#define NEH_RNG_PRESENT 0x00000004
-#define NEH_RNG_ENABLED 0x00000008
-#define NEH_ACE_PRESENT 0x00000040
-#define NEH_ACE_ENABLED 0x00000080
-#define NEH_RNG_FLAGS (NEH_RNG_PRESENT | NEH_RNG_ENABLED)
-#define NEH_ACE_FLAGS (NEH_ACE_PRESENT | NEH_ACE_ENABLED)
-#define NEH_FLAGS_MASK (NEH_RNG_FLAGS | NEH_ACE_FLAGS)
-
-/* VIA Nehemiah Advanced Cryptography Engine (ACE) Control Word Values */
-
-#define NEH_GEN_KEY 0x00000000 /* generate key schedule */
-#define NEH_LOAD_KEY 0x00000080 /* load schedule from memory */
-#define NEH_ENCRYPT 0x00000000 /* encryption */
-#define NEH_DECRYPT 0x00000200 /* decryption */
-#define NEH_KEY128 0x00000000+0x0a /* 128 bit key */
-#define NEH_KEY192 0x00000400+0x0c /* 192 bit key */
-#define NEH_KEY256 0x00000800+0x0e /* 256 bit key */
-
-#define NEH_ENC_GEN (NEH_ENCRYPT | NEH_GEN_KEY)
-#define NEH_DEC_GEN (NEH_DECRYPT | NEH_GEN_KEY)
-#define NEH_ENC_LOAD (NEH_ENCRYPT | NEH_LOAD_KEY)
-#define NEH_DEC_LOAD (NEH_DECRYPT | NEH_LOAD_KEY)
-
-#define NEH_ENC_GEN_DATA {\
- NEH_ENC_GEN | NEH_KEY128, 0, 0, 0,\
- NEH_ENC_GEN | NEH_KEY192, 0, 0, 0,\
- NEH_ENC_GEN | NEH_KEY256, 0, 0, 0 }
-
-#define NEH_ENC_LOAD_DATA {\
- NEH_ENC_LOAD | NEH_KEY128, 0, 0, 0,\
- NEH_ENC_LOAD | NEH_KEY192, 0, 0, 0,\
- NEH_ENC_LOAD | NEH_KEY256, 0, 0, 0 }
-
-#define NEH_ENC_HYBRID_DATA {\
- NEH_ENC_GEN | NEH_KEY128, 0, 0, 0,\
- NEH_ENC_LOAD | NEH_KEY192, 0, 0, 0,\
- NEH_ENC_LOAD | NEH_KEY256, 0, 0, 0 }
-
-#define NEH_DEC_GEN_DATA {\
- NEH_DEC_GEN | NEH_KEY128, 0, 0, 0,\
- NEH_DEC_GEN | NEH_KEY192, 0, 0, 0,\
- NEH_DEC_GEN | NEH_KEY256, 0, 0, 0 }
-
-#define NEH_DEC_LOAD_DATA {\
- NEH_DEC_LOAD | NEH_KEY128, 0, 0, 0,\
- NEH_DEC_LOAD | NEH_KEY192, 0, 0, 0,\
- NEH_DEC_LOAD | NEH_KEY256, 0, 0, 0 }
-
-#define NEH_DEC_HYBRID_DATA {\
- NEH_DEC_GEN | NEH_KEY128, 0, 0, 0,\
- NEH_DEC_LOAD | NEH_KEY192, 0, 0, 0,\
- NEH_DEC_LOAD | NEH_KEY256, 0, 0, 0 }
-
-#define neh_enc_gen_key(x) ((x) == 128 ? (NEH_ENC_GEN | NEH_KEY128) : \
- (x) == 192 ? (NEH_ENC_GEN | NEH_KEY192) : (NEH_ENC_GEN | NEH_KEY256))
-
-#define neh_enc_load_key(x) ((x) == 128 ? (NEH_ENC_LOAD | NEH_KEY128) : \
- (x) == 192 ? (NEH_ENC_LOAD | NEH_KEY192) : (NEH_ENC_LOAD | NEH_KEY256))
-
-#define neh_enc_hybrid_key(x) ((x) == 128 ? (NEH_ENC_GEN | NEH_KEY128) : \
- (x) == 192 ? (NEH_ENC_LOAD | NEH_KEY192) : (NEH_ENC_LOAD | NEH_KEY256))
-
-#define neh_dec_gen_key(x) ((x) == 128 ? (NEH_DEC_GEN | NEH_KEY128) : \
- (x) == 192 ? (NEH_DEC_GEN | NEH_KEY192) : (NEH_DEC_GEN | NEH_KEY256))
-
-#define neh_dec_load_key(x) ((x) == 128 ? (NEH_DEC_LOAD | NEH_KEY128) : \
- (x) == 192 ? (NEH_DEC_LOAD | NEH_KEY192) : (NEH_DEC_LOAD | NEH_KEY256))
-
-#define neh_dec_hybrid_key(x) ((x) == 128 ? (NEH_DEC_GEN | NEH_KEY128) : \
- (x) == 192 ? (NEH_DEC_LOAD | NEH_KEY192) : (NEH_DEC_LOAD | NEH_KEY256))
-
-#if defined( _MSC_VER ) && ( _MSC_VER > 1200 )
-#define aligned_auto(type, name, no, stride) __declspec(align(stride)) type name[no]
-#else
-#define aligned_auto(type, name, no, stride) \
- unsigned char _##name[no * sizeof(type) + stride]; \
- type *name = (type*)(16 * ((((unsigned long)(_##name)) + stride - 1) / stride))
-#endif
-
-#if defined( _MSC_VER ) && ( _MSC_VER > 1200 )
-#define aligned_array(type, name, no, stride) __declspec(align(stride)) type name[no]
-#elif defined( __GNUC__ )
-#define aligned_array(type, name, no, stride) type name[no] __attribute__ ((aligned(stride)))
-#else
-#define aligned_array(type, name, no, stride) type name[no]
-#endif
-
-/* VIA ACE codeword */
-
-static unsigned char via_flags = 0;
-
-#if defined ( _MSC_VER ) && ( _MSC_VER > 800 )
-
-#define NEH_REKEY __asm pushfd __asm popfd
-#define NEH_AES __asm _emit 0xf3 __asm _emit 0x0f __asm _emit 0xa7
-#define NEH_ECB NEH_AES __asm _emit 0xc8
-#define NEH_CBC NEH_AES __asm _emit 0xd0
-#define NEH_CFB NEH_AES __asm _emit 0xe0
-#define NEH_OFB NEH_AES __asm _emit 0xe8
-#define NEH_RNG __asm _emit 0x0f __asm _emit 0xa7 __asm _emit 0xc0
-
-INLINE int has_cpuid(void)
-{ char ret_value;
- __asm
- { pushfd /* save EFLAGS register */
- mov eax,[esp] /* copy it to eax */
- mov edx,0x00200000 /* CPUID bit position */
- xor eax,edx /* toggle the CPUID bit */
- push eax /* attempt to set EFLAGS to */
- popfd /* the new value */
- pushfd /* get the new EFLAGS value */
- pop eax /* into eax */
- xor eax,[esp] /* xor with original value */
- and eax,edx /* has CPUID bit changed? */
- setne al /* set to 1 if we have been */
- mov ret_value,al /* able to change it */
- popfd /* restore original EFLAGS */
- }
- return (int)ret_value;
-}
-
-INLINE int is_via_cpu(void)
-{ char ret_value;
- __asm
- { push ebx
- xor eax,eax /* use CPUID to get vendor */
- cpuid /* identity string */
- xor eax,eax /* is it "CentaurHauls" ? */
- sub ebx,0x746e6543 /* 'Cent' */
- or eax,ebx
- sub edx,0x48727561 /* 'aurH' */
- or eax,edx
- sub ecx,0x736c7561 /* 'auls' */
- or eax,ecx
- sete al /* set to 1 if it is VIA ID */
- mov dl,NEH_CPU_READ /* mark CPU type as read */
- or dl,al /* & store result in flags */
- mov [via_flags],dl /* set VIA detected flag */
- mov ret_value,al /* able to change it */
- pop ebx
- }
- return (int)ret_value;
-}
-
-INLINE int read_via_flags(void)
-{ char ret_value = 0;
- __asm
- { mov eax,0xC0000000 /* Centaur extended CPUID */
- cpuid
- mov edx,0xc0000001 /* >= 0xc0000001 if support */
- cmp eax,edx /* for VIA extended feature */
- jnae no_rng /* flags is available */
- mov eax,edx /* read Centaur extended */
- cpuid /* feature flags */
- mov eax,NEH_FLAGS_MASK /* mask out and save */
- and eax,edx /* the RNG and ACE flags */
- or [via_flags],al /* present & enabled flags */
- mov ret_value,al /* able to change it */
-no_rng:
- }
- return (int)ret_value;
-}
-
-INLINE unsigned int via_rng_in(void *buf)
-{ char ret_value = 0x1f;
- __asm
- { push edi
- mov edi,buf /* input buffer address */
- xor edx,edx /* try to fetch 8 bytes */
- NEH_RNG /* do RNG read operation */
- and ret_value,al /* count of bytes returned */
- pop edi
- }
- return (int)ret_value;
-}
-
-INLINE void via_ecb_op5(
- const void *k, const void *c, const void *s, void *d, int l)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- NEH_ECB
- pop ebx
- }
-}
-
-INLINE void via_cbc_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- mov eax, (v)
- NEH_CBC
- pop ebx
- }
-}
-
-INLINE void via_cbc_op7(
- const void *k, const void *c, const void *s, void *d, int l, void *v, void *w)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- mov eax, (v)
- NEH_CBC
- mov esi, eax
- mov edi, (w)
- movsd
- movsd
- movsd
- movsd
- pop ebx
- }
-}
-
-INLINE void via_cfb_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- mov eax, (v)
- NEH_CFB
- pop ebx
- }
-}
-
-INLINE void via_cfb_op7(
- const void *k, const void *c, const void *s, void *d, int l, void *v, void *w)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- mov eax, (v)
- NEH_CFB
- mov esi, eax
- mov edi, (w)
- movsd
- movsd
- movsd
- movsd
- pop ebx
- }
-}
-
-INLINE void via_ofb_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{ __asm
- { push ebx
- NEH_REKEY
- mov ebx, (k)
- mov edx, (c)
- mov esi, (s)
- mov edi, (d)
- mov ecx, (l)
- mov eax, (v)
- NEH_OFB
- pop ebx
- }
-}
-
-#elif defined( __GNUC__ )
-
-#define NEH_REKEY asm("pushfl\n popfl\n\t")
-#define NEH_ECB asm(".byte 0xf3, 0x0f, 0xa7, 0xc8\n\t")
-#define NEH_CBC asm(".byte 0xf3, 0x0f, 0xa7, 0xd0\n\t")
-#define NEH_CFB asm(".byte 0xf3, 0x0f, 0xa7, 0xe0\n\t")
-#define NEH_OFB asm(".byte 0xf3, 0x0f, 0xa7, 0xe8\n\t")
-#define NEH_RNG asm(".byte 0x0f, 0xa7, 0xc0\n\t");
-
-INLINE int has_cpuid(void)
-{ int val;
- asm("pushfl\n\t");
- asm("movl 0(%esp),%eax\n\t");
- asm("xor $0x00200000,%eax\n\t");
- asm("pushl %eax\n\t");
- asm("popfl\n\t");
- asm("pushfl\n\t");
- asm("popl %eax\n\t");
- asm("xorl 0(%esp),%edx\n\t");
- asm("andl $0x00200000,%eax\n\t");
- asm("movl %%eax,%0\n\t" : "=m" (val));
- asm("popfl\n\t");
- return val ? 1 : 0;
-}
-
-INLINE int is_via_cpu(void)
-{ int val;
- asm("pushl %ebx\n\t");
- asm("xorl %eax,%eax\n\t");
- asm("cpuid\n\t");
- asm("xorl %eax,%eax\n\t");
- asm("subl $0x746e6543,%ebx\n\t");
- asm("orl %ebx,%eax\n\t");
- asm("subl $0x48727561,%edx\n\t");
- asm("orl %edx,%eax\n\t");
- asm("subl $0x736c7561,%ecx\n\t");
- asm("orl %ecx,%eax\n\t");
- asm("movl %%eax,%0\n\t" : "=m" (val));
- asm("popl %ebx\n\t");
- val = (val ? 0 : 1);
- via_flags = (val | NEH_CPU_READ);
- return val;
-}
-
-INLINE int read_via_flags(void)
-{ unsigned char val;
- asm("movl $0xc0000000,%eax\n\t");
- asm("cpuid\n\t");
- asm("movl $0xc0000001,%edx\n\t");
- asm("cmpl %edx,%eax\n\t");
- asm("setae %al\n\t");
- asm("movb %%al,%0\n\t" : "=m" (val));
- if(!val) return 0;
- asm("movl $0xc0000001,%eax\n\t");
- asm("cpuid\n\t");
- asm("movb %%dl,%0\n\t" : "=m" (val));
- val &= NEH_FLAGS_MASK;
- via_flags |= val;
- return (int) val;
-}
-
-INLINE int via_rng_in(void *buf)
-{ int val;
- asm("pushl %edi\n\t");
- asm("movl %0,%%edi\n\t" : : "m" (buf));
- asm("xorl %edx,%edx\n\t");
- NEH_RNG
- asm("andl $0x0000001f,%eax\n\t");
- asm("movl %%eax,%0\n\t" : "=m" (val));
- asm("popl %edi\n\t");
- return val;
-}
-
-INLINE volatile void via_ecb_op5(
- const void *k, const void *c, const void *s, void *d, int l)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- NEH_ECB;
- asm("popl %ebx\n\t");
-}
-
-INLINE volatile void via_cbc_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- asm("movl %0, %%eax\n\t" : : "m" (v));
- NEH_CBC;
- asm("popl %ebx\n\t");
-}
-
-INLINE volatile void via_cbc_op7(
- const void *k, const void *c, const void *s, void *d, int l, void *v, void *w)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- asm("movl %0, %%eax\n\t" : : "m" (v));
- NEH_CBC;
- asm("movl %eax,%esi\n\t");
- asm("movl %0, %%edi\n\t" : : "m" (w));
- asm("movsl; movsl; movsl; movsl\n\t");
- asm("popl %ebx\n\t");
-}
-
-INLINE volatile void via_cfb_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- asm("movl %0, %%eax\n\t" : : "m" (v));
- NEH_CFB;
- asm("popl %ebx\n\t");
-}
-
-INLINE volatile void via_cfb_op7(
- const void *k, const void *c, const void *s, void *d, int l, void *v, void *w)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- asm("movl %0, %%eax\n\t" : : "m" (v));
- NEH_CFB;
- asm("movl %eax,%esi\n\t");
- asm("movl %0, %%edi\n\t" : : "m" (w));
- asm("movsl; movsl; movsl; movsl\n\t");
- asm("popl %ebx\n\t");
-}
-
-INLINE volatile void via_ofb_op6(
- const void *k, const void *c, const void *s, void *d, int l, void *v)
-{
- asm("pushl %ebx\n\t");
- NEH_REKEY;
- asm("movl %0, %%ebx\n\t" : : "m" (k));
- asm("movl %0, %%edx\n\t" : : "m" (c));
- asm("movl %0, %%esi\n\t" : : "m" (s));
- asm("movl %0, %%edi\n\t" : : "m" (d));
- asm("movl %0, %%ecx\n\t" : : "m" (l));
- asm("movl %0, %%eax\n\t" : : "m" (v));
- NEH_OFB;
- asm("popl %ebx\n\t");
-}
-
-#else
-#error VIA ACE is not available with this compiler
-#endif
-
-INLINE int via_ace_test(void)
-{
- return has_cpuid() && is_via_cpu() && ((read_via_flags() & NEH_ACE_FLAGS) == NEH_ACE_FLAGS);
-}
-
-#define VIA_ACE_AVAILABLE (((via_flags & NEH_ACE_FLAGS) == NEH_ACE_FLAGS) \
- || (via_flags & NEH_CPU_READ) && (via_flags & NEH_CPU_IS_VIA) || via_ace_test())
-
-INLINE int via_rng_test(void)
-{
- return has_cpuid() && is_via_cpu() && ((read_via_flags() & NEH_RNG_FLAGS) == NEH_RNG_FLAGS);
-}
-
-#define VIA_RNG_AVAILABLE (((via_flags & NEH_RNG_FLAGS) == NEH_RNG_FLAGS) \
- || (via_flags & NEH_CPU_READ) && (via_flags & NEH_CPU_IS_VIA) || via_rng_test())
-
-INLINE int read_via_rng(void *buf, int count)
-{ int nbr, max_reads, lcnt = count;
- unsigned char *p, *q;
- aligned_auto(unsigned char, bp, 64, 16);
-
- if(!VIA_RNG_AVAILABLE)
- return 0;
-
- do
- {
- max_reads = MAX_READ_ATTEMPTS;
- do
- nbr = via_rng_in(bp);
- while
- (nbr == 0 && --max_reads);
-
- lcnt -= nbr;
- p = (unsigned char*)buf; q = bp;
- while(nbr--)
- *p++ = *q++;
- }
- while
- (lcnt && max_reads);
-
- return count - lcnt;
-}
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/aescrypt.c b/ios/RCTPushy/SSZipArchive/aes/aescrypt.c
deleted file mode 100755
index 99141cf..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aescrypt.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-*/
-
-#include "aesopt.h"
-#include "aestab.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#define si(y,x,k,c) (s(y,c) = word_in(x, c) ^ (k)[c])
-#define so(y,x,c) word_out(y, c, s(x,c))
-
-#if defined(ARRAYS)
-#define locals(y,x) x[4],y[4]
-#else
-#define locals(y,x) x##0,x##1,x##2,x##3,y##0,y##1,y##2,y##3
-#endif
-
-#define l_copy(y, x) s(y,0) = s(x,0); s(y,1) = s(x,1); \
- s(y,2) = s(x,2); s(y,3) = s(x,3);
-#define state_in(y,x,k) si(y,x,k,0); si(y,x,k,1); si(y,x,k,2); si(y,x,k,3)
-#define state_out(y,x) so(y,x,0); so(y,x,1); so(y,x,2); so(y,x,3)
-#define round(rm,y,x,k) rm(y,x,k,0); rm(y,x,k,1); rm(y,x,k,2); rm(y,x,k,3)
-
-#if ( FUNCS_IN_C & ENCRYPTION_IN_C )
-
-/* Visual C++ .Net v7.1 provides the fastest encryption code when using
- Pentium optimiation with small code but this is poor for decryption
- so we need to control this with the following VC++ pragmas
-*/
-
-#if defined( _MSC_VER ) && !defined( _WIN64 )
-#pragma optimize( "s", on )
-#endif
-
-/* Given the column (c) of the output state variable, the following
- macros give the input state variables which are needed in its
- computation for each row (r) of the state. All the alternative
- macros give the same end values but expand into different ways
- of calculating these values. In particular the complex macro
- used for dynamically variable block sizes is designed to expand
- to a compile time constant whenever possible but will expand to
- conditional clauses on some branches (I am grateful to Frank
- Yellin for this construction)
-*/
-
-#define fwd_var(x,r,c)\
- ( r == 0 ? ( c == 0 ? s(x,0) : c == 1 ? s(x,1) : c == 2 ? s(x,2) : s(x,3))\
- : r == 1 ? ( c == 0 ? s(x,1) : c == 1 ? s(x,2) : c == 2 ? s(x,3) : s(x,0))\
- : r == 2 ? ( c == 0 ? s(x,2) : c == 1 ? s(x,3) : c == 2 ? s(x,0) : s(x,1))\
- : ( c == 0 ? s(x,3) : c == 1 ? s(x,0) : c == 2 ? s(x,1) : s(x,2)))
-
-#if defined(FT4_SET)
-#undef dec_fmvars
-#define fwd_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(f,n),fwd_var,rf1,c))
-#elif defined(FT1_SET)
-#undef dec_fmvars
-#define fwd_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,upr,t_use(f,n),fwd_var,rf1,c))
-#else
-#define fwd_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ fwd_mcol(no_table(x,t_use(s,box),fwd_var,rf1,c)))
-#endif
-
-#if defined(FL4_SET)
-#define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(f,l),fwd_var,rf1,c))
-#elif defined(FL1_SET)
-#define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,ups,t_use(f,l),fwd_var,rf1,c))
-#else
-#define fwd_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ no_table(x,t_use(s,box),fwd_var,rf1,c))
-#endif
-
-AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out, const aes_encrypt_ctx cx[1])
-{ uint_32t locals(b0, b1);
- const uint_32t *kp;
-#if defined( dec_fmvars )
- dec_fmvars; /* declare variables for fwd_mcol() if needed */
-#endif
-
- if( cx->inf.b[0] != 10 * 16 && cx->inf.b[0] != 12 * 16 && cx->inf.b[0] != 14 * 16 )
- return EXIT_FAILURE;
-
- kp = cx->ks;
- state_in(b0, in, kp);
-
-#if (ENC_UNROLL == FULL)
-
- switch(cx->inf.b[0])
- {
- case 14 * 16:
- round(fwd_rnd, b1, b0, kp + 1 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 2 * N_COLS);
- kp += 2 * N_COLS;
- case 12 * 16:
- round(fwd_rnd, b1, b0, kp + 1 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 2 * N_COLS);
- kp += 2 * N_COLS;
- case 10 * 16:
- round(fwd_rnd, b1, b0, kp + 1 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 2 * N_COLS);
- round(fwd_rnd, b1, b0, kp + 3 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 4 * N_COLS);
- round(fwd_rnd, b1, b0, kp + 5 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 6 * N_COLS);
- round(fwd_rnd, b1, b0, kp + 7 * N_COLS);
- round(fwd_rnd, b0, b1, kp + 8 * N_COLS);
- round(fwd_rnd, b1, b0, kp + 9 * N_COLS);
- round(fwd_lrnd, b0, b1, kp +10 * N_COLS);
- }
-
-#else
-
-#if (ENC_UNROLL == PARTIAL)
- { uint_32t rnd;
- for(rnd = 0; rnd < (cx->inf.b[0] >> 5) - 1; ++rnd)
- {
- kp += N_COLS;
- round(fwd_rnd, b1, b0, kp);
- kp += N_COLS;
- round(fwd_rnd, b0, b1, kp);
- }
- kp += N_COLS;
- round(fwd_rnd, b1, b0, kp);
-#else
- { uint_32t rnd;
- for(rnd = 0; rnd < (cx->inf.b[0] >> 4) - 1; ++rnd)
- {
- kp += N_COLS;
- round(fwd_rnd, b1, b0, kp);
- l_copy(b0, b1);
- }
-#endif
- kp += N_COLS;
- round(fwd_lrnd, b0, b1, kp);
- }
-#endif
-
- state_out(out, b0);
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if ( FUNCS_IN_C & DECRYPTION_IN_C)
-
-/* Visual C++ .Net v7.1 provides the fastest encryption code when using
- Pentium optimiation with small code but this is poor for decryption
- so we need to control this with the following VC++ pragmas
-*/
-
-#if defined( _MSC_VER ) && !defined( _WIN64 )
-#pragma optimize( "t", on )
-#endif
-
-/* Given the column (c) of the output state variable, the following
- macros give the input state variables which are needed in its
- computation for each row (r) of the state. All the alternative
- macros give the same end values but expand into different ways
- of calculating these values. In particular the complex macro
- used for dynamically variable block sizes is designed to expand
- to a compile time constant whenever possible but will expand to
- conditional clauses on some branches (I am grateful to Frank
- Yellin for this construction)
-*/
-
-#define inv_var(x,r,c)\
- ( r == 0 ? ( c == 0 ? s(x,0) : c == 1 ? s(x,1) : c == 2 ? s(x,2) : s(x,3))\
- : r == 1 ? ( c == 0 ? s(x,3) : c == 1 ? s(x,0) : c == 2 ? s(x,1) : s(x,2))\
- : r == 2 ? ( c == 0 ? s(x,2) : c == 1 ? s(x,3) : c == 2 ? s(x,0) : s(x,1))\
- : ( c == 0 ? s(x,1) : c == 1 ? s(x,2) : c == 2 ? s(x,3) : s(x,0)))
-
-#if defined(IT4_SET)
-#undef dec_imvars
-#define inv_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(i,n),inv_var,rf1,c))
-#elif defined(IT1_SET)
-#undef dec_imvars
-#define inv_rnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,upr,t_use(i,n),inv_var,rf1,c))
-#else
-#define inv_rnd(y,x,k,c) (s(y,c) = inv_mcol((k)[c] ^ no_table(x,t_use(i,box),inv_var,rf1,c)))
-#endif
-
-#if defined(IL4_SET)
-#define inv_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ four_tables(x,t_use(i,l),inv_var,rf1,c))
-#elif defined(IL1_SET)
-#define inv_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ one_table(x,ups,t_use(i,l),inv_var,rf1,c))
-#else
-#define inv_lrnd(y,x,k,c) (s(y,c) = (k)[c] ^ no_table(x,t_use(i,box),inv_var,rf1,c))
-#endif
-
-/* This code can work with the decryption key schedule in the */
-/* order that is used for encrytpion (where the 1st decryption */
-/* round key is at the high end ot the schedule) or with a key */
-/* schedule that has been reversed to put the 1st decryption */
-/* round key at the low end of the schedule in memory (when */
-/* AES_REV_DKS is defined) */
-
-#ifdef AES_REV_DKS
-#define key_ofs 0
-#define rnd_key(n) (kp + n * N_COLS)
-#else
-#define key_ofs 1
-#define rnd_key(n) (kp - n * N_COLS)
-#endif
-
-AES_RETURN aes_decrypt(const unsigned char *in, unsigned char *out, const aes_decrypt_ctx cx[1])
-{ uint_32t locals(b0, b1);
-#if defined( dec_imvars )
- dec_imvars; /* declare variables for inv_mcol() if needed */
-#endif
- const uint_32t *kp;
-
- if( cx->inf.b[0] != 10 * 16 && cx->inf.b[0] != 12 * 16 && cx->inf.b[0] != 14 * 16 )
- return EXIT_FAILURE;
-
- kp = cx->ks + (key_ofs ? (cx->inf.b[0] >> 2) : 0);
- state_in(b0, in, kp);
-
-#if (DEC_UNROLL == FULL)
-
- kp = cx->ks + (key_ofs ? 0 : (cx->inf.b[0] >> 2));
- switch(cx->inf.b[0])
- {
- case 14 * 16:
- round(inv_rnd, b1, b0, rnd_key(-13));
- round(inv_rnd, b0, b1, rnd_key(-12));
- case 12 * 16:
- round(inv_rnd, b1, b0, rnd_key(-11));
- round(inv_rnd, b0, b1, rnd_key(-10));
- case 10 * 16:
- round(inv_rnd, b1, b0, rnd_key(-9));
- round(inv_rnd, b0, b1, rnd_key(-8));
- round(inv_rnd, b1, b0, rnd_key(-7));
- round(inv_rnd, b0, b1, rnd_key(-6));
- round(inv_rnd, b1, b0, rnd_key(-5));
- round(inv_rnd, b0, b1, rnd_key(-4));
- round(inv_rnd, b1, b0, rnd_key(-3));
- round(inv_rnd, b0, b1, rnd_key(-2));
- round(inv_rnd, b1, b0, rnd_key(-1));
- round(inv_lrnd, b0, b1, rnd_key( 0));
- }
-
-#else
-
-#if (DEC_UNROLL == PARTIAL)
- { uint_32t rnd;
- for(rnd = 0; rnd < (cx->inf.b[0] >> 5) - 1; ++rnd)
- {
- kp = rnd_key(1);
- round(inv_rnd, b1, b0, kp);
- kp = rnd_key(1);
- round(inv_rnd, b0, b1, kp);
- }
- kp = rnd_key(1);
- round(inv_rnd, b1, b0, kp);
-#else
- { uint_32t rnd;
- for(rnd = 0; rnd < (cx->inf.b[0] >> 4) - 1; ++rnd)
- {
- kp = rnd_key(1);
- round(inv_rnd, b1, b0, kp);
- l_copy(b0, b1);
- }
-#endif
- kp = rnd_key(1);
- round(inv_lrnd, b0, b1, kp);
- }
-#endif
-
- state_out(out, b0);
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/aeskey.c b/ios/RCTPushy/SSZipArchive/aes/aeskey.c
deleted file mode 100755
index 0378f0c..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aeskey.c
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-*/
-
-#include "aesopt.h"
-#include "aestab.h"
-
-#ifdef USE_VIA_ACE_IF_PRESENT
-# include "aes_via_ace.h"
-#endif
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* Initialise the key schedule from the user supplied key. The key
- length can be specified in bytes, with legal values of 16, 24
- and 32, or in bits, with legal values of 128, 192 and 256. These
- values correspond with Nk values of 4, 6 and 8 respectively.
-
- The following macros implement a single cycle in the key
- schedule generation process. The number of cycles needed
- for each cx->n_col and nk value is:
-
- nk = 4 5 6 7 8
- ------------------------------
- cx->n_col = 4 10 9 8 7 7
- cx->n_col = 5 14 11 10 9 9
- cx->n_col = 6 19 15 12 11 11
- cx->n_col = 7 21 19 16 13 14
- cx->n_col = 8 29 23 19 17 14
-*/
-
-#if defined( REDUCE_CODE_SIZE )
-# define ls_box ls_sub
- uint_32t ls_sub(const uint_32t t, const uint_32t n);
-# define inv_mcol im_sub
- uint_32t im_sub(const uint_32t x);
-# ifdef ENC_KS_UNROLL
-# undef ENC_KS_UNROLL
-# endif
-# ifdef DEC_KS_UNROLL
-# undef DEC_KS_UNROLL
-# endif
-#endif
-
-#if (FUNCS_IN_C & ENC_KEYING_IN_C)
-
-#if defined(AES_128) || defined( AES_VAR )
-
-#define ke4(k,i) \
-{ k[4*(i)+4] = ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; \
- k[4*(i)+5] = ss[1] ^= ss[0]; \
- k[4*(i)+6] = ss[2] ^= ss[1]; \
- k[4*(i)+7] = ss[3] ^= ss[2]; \
-}
-
-AES_RETURN aes_encrypt_key128(const unsigned char *key, aes_encrypt_ctx cx[1])
-{ uint_32t ss[4];
-
- cx->ks[0] = ss[0] = word_in(key, 0);
- cx->ks[1] = ss[1] = word_in(key, 1);
- cx->ks[2] = ss[2] = word_in(key, 2);
- cx->ks[3] = ss[3] = word_in(key, 3);
-
-#ifdef ENC_KS_UNROLL
- ke4(cx->ks, 0); ke4(cx->ks, 1);
- ke4(cx->ks, 2); ke4(cx->ks, 3);
- ke4(cx->ks, 4); ke4(cx->ks, 5);
- ke4(cx->ks, 6); ke4(cx->ks, 7);
- ke4(cx->ks, 8);
-#else
- { uint_32t i;
- for(i = 0; i < 9; ++i)
- ke4(cx->ks, i);
- }
-#endif
- ke4(cx->ks, 9);
- cx->inf.l = 0;
- cx->inf.b[0] = 10 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(AES_192) || defined( AES_VAR )
-
-#define kef6(k,i) \
-{ k[6*(i)+ 6] = ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; \
- k[6*(i)+ 7] = ss[1] ^= ss[0]; \
- k[6*(i)+ 8] = ss[2] ^= ss[1]; \
- k[6*(i)+ 9] = ss[3] ^= ss[2]; \
-}
-
-#define ke6(k,i) \
-{ kef6(k,i); \
- k[6*(i)+10] = ss[4] ^= ss[3]; \
- k[6*(i)+11] = ss[5] ^= ss[4]; \
-}
-
-AES_RETURN aes_encrypt_key192(const unsigned char *key, aes_encrypt_ctx cx[1])
-{ uint_32t ss[6];
-
- cx->ks[0] = ss[0] = word_in(key, 0);
- cx->ks[1] = ss[1] = word_in(key, 1);
- cx->ks[2] = ss[2] = word_in(key, 2);
- cx->ks[3] = ss[3] = word_in(key, 3);
- cx->ks[4] = ss[4] = word_in(key, 4);
- cx->ks[5] = ss[5] = word_in(key, 5);
-
-#ifdef ENC_KS_UNROLL
- ke6(cx->ks, 0); ke6(cx->ks, 1);
- ke6(cx->ks, 2); ke6(cx->ks, 3);
- ke6(cx->ks, 4); ke6(cx->ks, 5);
- ke6(cx->ks, 6);
-#else
- { uint_32t i;
- for(i = 0; i < 7; ++i)
- ke6(cx->ks, i);
- }
-#endif
- kef6(cx->ks, 7);
- cx->inf.l = 0;
- cx->inf.b[0] = 12 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(AES_256) || defined( AES_VAR )
-
-#define kef8(k,i) \
-{ k[8*(i)+ 8] = ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; \
- k[8*(i)+ 9] = ss[1] ^= ss[0]; \
- k[8*(i)+10] = ss[2] ^= ss[1]; \
- k[8*(i)+11] = ss[3] ^= ss[2]; \
-}
-
-#define ke8(k,i) \
-{ kef8(k,i); \
- k[8*(i)+12] = ss[4] ^= ls_box(ss[3],0); \
- k[8*(i)+13] = ss[5] ^= ss[4]; \
- k[8*(i)+14] = ss[6] ^= ss[5]; \
- k[8*(i)+15] = ss[7] ^= ss[6]; \
-}
-
-AES_RETURN aes_encrypt_key256(const unsigned char *key, aes_encrypt_ctx cx[1])
-{ uint_32t ss[8];
-
- cx->ks[0] = ss[0] = word_in(key, 0);
- cx->ks[1] = ss[1] = word_in(key, 1);
- cx->ks[2] = ss[2] = word_in(key, 2);
- cx->ks[3] = ss[3] = word_in(key, 3);
- cx->ks[4] = ss[4] = word_in(key, 4);
- cx->ks[5] = ss[5] = word_in(key, 5);
- cx->ks[6] = ss[6] = word_in(key, 6);
- cx->ks[7] = ss[7] = word_in(key, 7);
-
-#ifdef ENC_KS_UNROLL
- ke8(cx->ks, 0); ke8(cx->ks, 1);
- ke8(cx->ks, 2); ke8(cx->ks, 3);
- ke8(cx->ks, 4); ke8(cx->ks, 5);
-#else
- { uint_32t i;
- for(i = 0; i < 6; ++i)
- ke8(cx->ks, i);
- }
-#endif
- kef8(cx->ks, 6);
- cx->inf.l = 0;
- cx->inf.b[0] = 14 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined( AES_VAR )
-
-AES_RETURN aes_encrypt_key(const unsigned char *key, int key_len, aes_encrypt_ctx cx[1])
-{
- switch(key_len)
- {
- case 16: case 128: return aes_encrypt_key128(key, cx);
- case 24: case 192: return aes_encrypt_key192(key, cx);
- case 32: case 256: return aes_encrypt_key256(key, cx);
- default: return EXIT_FAILURE;
- }
-}
-
-#endif
-
-#endif
-
-#if (FUNCS_IN_C & DEC_KEYING_IN_C)
-
-/* this is used to store the decryption round keys */
-/* in forward or reverse order */
-
-#ifdef AES_REV_DKS
-#define v(n,i) ((n) - (i) + 2 * ((i) & 3))
-#else
-#define v(n,i) (i)
-#endif
-
-#if DEC_ROUND == NO_TABLES
-#define ff(x) (x)
-#else
-#define ff(x) inv_mcol(x)
-#if defined( dec_imvars )
-#define d_vars dec_imvars
-#endif
-#endif
-
-#if defined(AES_128) || defined( AES_VAR )
-
-#define k4e(k,i) \
-{ k[v(40,(4*(i))+4)] = ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; \
- k[v(40,(4*(i))+5)] = ss[1] ^= ss[0]; \
- k[v(40,(4*(i))+6)] = ss[2] ^= ss[1]; \
- k[v(40,(4*(i))+7)] = ss[3] ^= ss[2]; \
-}
-
-#if 1
-
-#define kdf4(k,i) \
-{ ss[0] = ss[0] ^ ss[2] ^ ss[1] ^ ss[3]; \
- ss[1] = ss[1] ^ ss[3]; \
- ss[2] = ss[2] ^ ss[3]; \
- ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; \
- ss[i % 4] ^= ss[4]; \
- ss[4] ^= k[v(40,(4*(i)))]; k[v(40,(4*(i))+4)] = ff(ss[4]); \
- ss[4] ^= k[v(40,(4*(i))+1)]; k[v(40,(4*(i))+5)] = ff(ss[4]); \
- ss[4] ^= k[v(40,(4*(i))+2)]; k[v(40,(4*(i))+6)] = ff(ss[4]); \
- ss[4] ^= k[v(40,(4*(i))+3)]; k[v(40,(4*(i))+7)] = ff(ss[4]); \
-}
-
-#define kd4(k,i) \
-{ ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; \
- ss[i % 4] ^= ss[4]; ss[4] = ff(ss[4]); \
- k[v(40,(4*(i))+4)] = ss[4] ^= k[v(40,(4*(i)))]; \
- k[v(40,(4*(i))+5)] = ss[4] ^= k[v(40,(4*(i))+1)]; \
- k[v(40,(4*(i))+6)] = ss[4] ^= k[v(40,(4*(i))+2)]; \
- k[v(40,(4*(i))+7)] = ss[4] ^= k[v(40,(4*(i))+3)]; \
-}
-
-#define kdl4(k,i) \
-{ ss[4] = ls_box(ss[(i+3) % 4], 3) ^ t_use(r,c)[i]; ss[i % 4] ^= ss[4]; \
- k[v(40,(4*(i))+4)] = (ss[0] ^= ss[1]) ^ ss[2] ^ ss[3]; \
- k[v(40,(4*(i))+5)] = ss[1] ^ ss[3]; \
- k[v(40,(4*(i))+6)] = ss[0]; \
- k[v(40,(4*(i))+7)] = ss[1]; \
-}
-
-#else
-
-#define kdf4(k,i) \
-{ ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[v(40,(4*(i))+ 4)] = ff(ss[0]); \
- ss[1] ^= ss[0]; k[v(40,(4*(i))+ 5)] = ff(ss[1]); \
- ss[2] ^= ss[1]; k[v(40,(4*(i))+ 6)] = ff(ss[2]); \
- ss[3] ^= ss[2]; k[v(40,(4*(i))+ 7)] = ff(ss[3]); \
-}
-
-#define kd4(k,i) \
-{ ss[4] = ls_box(ss[3],3) ^ t_use(r,c)[i]; \
- ss[0] ^= ss[4]; ss[4] = ff(ss[4]); k[v(40,(4*(i))+ 4)] = ss[4] ^= k[v(40,(4*(i)))]; \
- ss[1] ^= ss[0]; k[v(40,(4*(i))+ 5)] = ss[4] ^= k[v(40,(4*(i))+ 1)]; \
- ss[2] ^= ss[1]; k[v(40,(4*(i))+ 6)] = ss[4] ^= k[v(40,(4*(i))+ 2)]; \
- ss[3] ^= ss[2]; k[v(40,(4*(i))+ 7)] = ss[4] ^= k[v(40,(4*(i))+ 3)]; \
-}
-
-#define kdl4(k,i) \
-{ ss[0] ^= ls_box(ss[3],3) ^ t_use(r,c)[i]; k[v(40,(4*(i))+ 4)] = ss[0]; \
- ss[1] ^= ss[0]; k[v(40,(4*(i))+ 5)] = ss[1]; \
- ss[2] ^= ss[1]; k[v(40,(4*(i))+ 6)] = ss[2]; \
- ss[3] ^= ss[2]; k[v(40,(4*(i))+ 7)] = ss[3]; \
-}
-
-#endif
-
-AES_RETURN aes_decrypt_key128(const unsigned char *key, aes_decrypt_ctx cx[1])
-{ uint_32t ss[5];
-#if defined( d_vars )
- d_vars;
-#endif
- cx->ks[v(40,(0))] = ss[0] = word_in(key, 0);
- cx->ks[v(40,(1))] = ss[1] = word_in(key, 1);
- cx->ks[v(40,(2))] = ss[2] = word_in(key, 2);
- cx->ks[v(40,(3))] = ss[3] = word_in(key, 3);
-
-#ifdef DEC_KS_UNROLL
- kdf4(cx->ks, 0); kd4(cx->ks, 1);
- kd4(cx->ks, 2); kd4(cx->ks, 3);
- kd4(cx->ks, 4); kd4(cx->ks, 5);
- kd4(cx->ks, 6); kd4(cx->ks, 7);
- kd4(cx->ks, 8); kdl4(cx->ks, 9);
-#else
- { uint_32t i;
- for(i = 0; i < 10; ++i)
- k4e(cx->ks, i);
-#if !(DEC_ROUND == NO_TABLES)
- for(i = N_COLS; i < 10 * N_COLS; ++i)
- cx->ks[i] = inv_mcol(cx->ks[i]);
-#endif
- }
-#endif
- cx->inf.l = 0;
- cx->inf.b[0] = 10 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(AES_192) || defined( AES_VAR )
-
-#define k6ef(k,i) \
-{ k[v(48,(6*(i))+ 6)] = ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; \
- k[v(48,(6*(i))+ 7)] = ss[1] ^= ss[0]; \
- k[v(48,(6*(i))+ 8)] = ss[2] ^= ss[1]; \
- k[v(48,(6*(i))+ 9)] = ss[3] ^= ss[2]; \
-}
-
-#define k6e(k,i) \
-{ k6ef(k,i); \
- k[v(48,(6*(i))+10)] = ss[4] ^= ss[3]; \
- k[v(48,(6*(i))+11)] = ss[5] ^= ss[4]; \
-}
-
-#define kdf6(k,i) \
-{ ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[v(48,(6*(i))+ 6)] = ff(ss[0]); \
- ss[1] ^= ss[0]; k[v(48,(6*(i))+ 7)] = ff(ss[1]); \
- ss[2] ^= ss[1]; k[v(48,(6*(i))+ 8)] = ff(ss[2]); \
- ss[3] ^= ss[2]; k[v(48,(6*(i))+ 9)] = ff(ss[3]); \
- ss[4] ^= ss[3]; k[v(48,(6*(i))+10)] = ff(ss[4]); \
- ss[5] ^= ss[4]; k[v(48,(6*(i))+11)] = ff(ss[5]); \
-}
-
-#define kd6(k,i) \
-{ ss[6] = ls_box(ss[5],3) ^ t_use(r,c)[i]; \
- ss[0] ^= ss[6]; ss[6] = ff(ss[6]); k[v(48,(6*(i))+ 6)] = ss[6] ^= k[v(48,(6*(i)))]; \
- ss[1] ^= ss[0]; k[v(48,(6*(i))+ 7)] = ss[6] ^= k[v(48,(6*(i))+ 1)]; \
- ss[2] ^= ss[1]; k[v(48,(6*(i))+ 8)] = ss[6] ^= k[v(48,(6*(i))+ 2)]; \
- ss[3] ^= ss[2]; k[v(48,(6*(i))+ 9)] = ss[6] ^= k[v(48,(6*(i))+ 3)]; \
- ss[4] ^= ss[3]; k[v(48,(6*(i))+10)] = ss[6] ^= k[v(48,(6*(i))+ 4)]; \
- ss[5] ^= ss[4]; k[v(48,(6*(i))+11)] = ss[6] ^= k[v(48,(6*(i))+ 5)]; \
-}
-
-#define kdl6(k,i) \
-{ ss[0] ^= ls_box(ss[5],3) ^ t_use(r,c)[i]; k[v(48,(6*(i))+ 6)] = ss[0]; \
- ss[1] ^= ss[0]; k[v(48,(6*(i))+ 7)] = ss[1]; \
- ss[2] ^= ss[1]; k[v(48,(6*(i))+ 8)] = ss[2]; \
- ss[3] ^= ss[2]; k[v(48,(6*(i))+ 9)] = ss[3]; \
-}
-
-AES_RETURN aes_decrypt_key192(const unsigned char *key, aes_decrypt_ctx cx[1])
-{ uint_32t ss[7];
-#if defined( d_vars )
- d_vars;
-#endif
- cx->ks[v(48,(0))] = ss[0] = word_in(key, 0);
- cx->ks[v(48,(1))] = ss[1] = word_in(key, 1);
- cx->ks[v(48,(2))] = ss[2] = word_in(key, 2);
- cx->ks[v(48,(3))] = ss[3] = word_in(key, 3);
-
-#ifdef DEC_KS_UNROLL
- cx->ks[v(48,(4))] = ff(ss[4] = word_in(key, 4));
- cx->ks[v(48,(5))] = ff(ss[5] = word_in(key, 5));
- kdf6(cx->ks, 0); kd6(cx->ks, 1);
- kd6(cx->ks, 2); kd6(cx->ks, 3);
- kd6(cx->ks, 4); kd6(cx->ks, 5);
- kd6(cx->ks, 6); kdl6(cx->ks, 7);
-#else
- cx->ks[v(48,(4))] = ss[4] = word_in(key, 4);
- cx->ks[v(48,(5))] = ss[5] = word_in(key, 5);
- { uint_32t i;
-
- for(i = 0; i < 7; ++i)
- k6e(cx->ks, i);
- k6ef(cx->ks, 7);
-#if !(DEC_ROUND == NO_TABLES)
- for(i = N_COLS; i < 12 * N_COLS; ++i)
- cx->ks[i] = inv_mcol(cx->ks[i]);
-#endif
- }
-#endif
- cx->inf.l = 0;
- cx->inf.b[0] = 12 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(AES_256) || defined( AES_VAR )
-
-#define k8ef(k,i) \
-{ k[v(56,(8*(i))+ 8)] = ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; \
- k[v(56,(8*(i))+ 9)] = ss[1] ^= ss[0]; \
- k[v(56,(8*(i))+10)] = ss[2] ^= ss[1]; \
- k[v(56,(8*(i))+11)] = ss[3] ^= ss[2]; \
-}
-
-#define k8e(k,i) \
-{ k8ef(k,i); \
- k[v(56,(8*(i))+12)] = ss[4] ^= ls_box(ss[3],0); \
- k[v(56,(8*(i))+13)] = ss[5] ^= ss[4]; \
- k[v(56,(8*(i))+14)] = ss[6] ^= ss[5]; \
- k[v(56,(8*(i))+15)] = ss[7] ^= ss[6]; \
-}
-
-#define kdf8(k,i) \
-{ ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[v(56,(8*(i))+ 8)] = ff(ss[0]); \
- ss[1] ^= ss[0]; k[v(56,(8*(i))+ 9)] = ff(ss[1]); \
- ss[2] ^= ss[1]; k[v(56,(8*(i))+10)] = ff(ss[2]); \
- ss[3] ^= ss[2]; k[v(56,(8*(i))+11)] = ff(ss[3]); \
- ss[4] ^= ls_box(ss[3],0); k[v(56,(8*(i))+12)] = ff(ss[4]); \
- ss[5] ^= ss[4]; k[v(56,(8*(i))+13)] = ff(ss[5]); \
- ss[6] ^= ss[5]; k[v(56,(8*(i))+14)] = ff(ss[6]); \
- ss[7] ^= ss[6]; k[v(56,(8*(i))+15)] = ff(ss[7]); \
-}
-
-#define kd8(k,i) \
-{ ss[8] = ls_box(ss[7],3) ^ t_use(r,c)[i]; \
- ss[0] ^= ss[8]; ss[8] = ff(ss[8]); k[v(56,(8*(i))+ 8)] = ss[8] ^= k[v(56,(8*(i)))]; \
- ss[1] ^= ss[0]; k[v(56,(8*(i))+ 9)] = ss[8] ^= k[v(56,(8*(i))+ 1)]; \
- ss[2] ^= ss[1]; k[v(56,(8*(i))+10)] = ss[8] ^= k[v(56,(8*(i))+ 2)]; \
- ss[3] ^= ss[2]; k[v(56,(8*(i))+11)] = ss[8] ^= k[v(56,(8*(i))+ 3)]; \
- ss[8] = ls_box(ss[3],0); \
- ss[4] ^= ss[8]; ss[8] = ff(ss[8]); k[v(56,(8*(i))+12)] = ss[8] ^= k[v(56,(8*(i))+ 4)]; \
- ss[5] ^= ss[4]; k[v(56,(8*(i))+13)] = ss[8] ^= k[v(56,(8*(i))+ 5)]; \
- ss[6] ^= ss[5]; k[v(56,(8*(i))+14)] = ss[8] ^= k[v(56,(8*(i))+ 6)]; \
- ss[7] ^= ss[6]; k[v(56,(8*(i))+15)] = ss[8] ^= k[v(56,(8*(i))+ 7)]; \
-}
-
-#define kdl8(k,i) \
-{ ss[0] ^= ls_box(ss[7],3) ^ t_use(r,c)[i]; k[v(56,(8*(i))+ 8)] = ss[0]; \
- ss[1] ^= ss[0]; k[v(56,(8*(i))+ 9)] = ss[1]; \
- ss[2] ^= ss[1]; k[v(56,(8*(i))+10)] = ss[2]; \
- ss[3] ^= ss[2]; k[v(56,(8*(i))+11)] = ss[3]; \
-}
-
-AES_RETURN aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1])
-{ uint_32t ss[9];
-#if defined( d_vars )
- d_vars;
-#endif
- cx->ks[v(56,(0))] = ss[0] = word_in(key, 0);
- cx->ks[v(56,(1))] = ss[1] = word_in(key, 1);
- cx->ks[v(56,(2))] = ss[2] = word_in(key, 2);
- cx->ks[v(56,(3))] = ss[3] = word_in(key, 3);
-
-#ifdef DEC_KS_UNROLL
- cx->ks[v(56,(4))] = ff(ss[4] = word_in(key, 4));
- cx->ks[v(56,(5))] = ff(ss[5] = word_in(key, 5));
- cx->ks[v(56,(6))] = ff(ss[6] = word_in(key, 6));
- cx->ks[v(56,(7))] = ff(ss[7] = word_in(key, 7));
- kdf8(cx->ks, 0); kd8(cx->ks, 1);
- kd8(cx->ks, 2); kd8(cx->ks, 3);
- kd8(cx->ks, 4); kd8(cx->ks, 5);
- kdl8(cx->ks, 6);
-#else
- cx->ks[v(56,(4))] = ss[4] = word_in(key, 4);
- cx->ks[v(56,(5))] = ss[5] = word_in(key, 5);
- cx->ks[v(56,(6))] = ss[6] = word_in(key, 6);
- cx->ks[v(56,(7))] = ss[7] = word_in(key, 7);
- { uint_32t i;
-
- for(i = 0; i < 6; ++i)
- k8e(cx->ks, i);
- k8ef(cx->ks, 6);
-#if !(DEC_ROUND == NO_TABLES)
- for(i = N_COLS; i < 14 * N_COLS; ++i)
- cx->ks[i] = inv_mcol(cx->ks[i]);
-#endif
- }
-#endif
- cx->inf.l = 0;
- cx->inf.b[0] = 14 * 16;
-
-#ifdef USE_VIA_ACE_IF_PRESENT
- if(VIA_ACE_AVAILABLE)
- cx->inf.b[1] = 0xff;
-#endif
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined( AES_VAR )
-
-AES_RETURN aes_decrypt_key(const unsigned char *key, int key_len, aes_decrypt_ctx cx[1])
-{
- switch(key_len)
- {
- case 16: case 128: return aes_decrypt_key128(key, cx);
- case 24: case 192: return aes_decrypt_key192(key, cx);
- case 32: case 256: return aes_decrypt_key256(key, cx);
- default: return EXIT_FAILURE;
- }
-}
-
-#endif
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/aesopt.h b/ios/RCTPushy/SSZipArchive/aes/aesopt.h
deleted file mode 100755
index 8851425..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aesopt.h
+++ /dev/null
@@ -1,739 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-
- This file contains the compilation options for AES (Rijndael) and code
- that is common across encryption, key scheduling and table generation.
-
- OPERATION
-
- These source code files implement the AES algorithm Rijndael designed by
- Joan Daemen and Vincent Rijmen. This version is designed for the standard
- block size of 16 bytes and for key sizes of 128, 192 and 256 bits (16, 24
- and 32 bytes).
-
- This version is designed for flexibility and speed using operations on
- 32-bit words rather than operations on bytes. It can be compiled with
- either big or little endian internal byte order but is faster when the
- native byte order for the processor is used.
-
- THE CIPHER INTERFACE
-
- The cipher interface is implemented as an array of bytes in which lower
- AES bit sequence indexes map to higher numeric significance within bytes.
-
- uint_8t (an unsigned 8-bit type)
- uint_32t (an unsigned 32-bit type)
- struct aes_encrypt_ctx (structure for the cipher encryption context)
- struct aes_decrypt_ctx (structure for the cipher decryption context)
- AES_RETURN the function return type
-
- C subroutine calls:
-
- AES_RETURN aes_encrypt_key128(const unsigned char *key, aes_encrypt_ctx cx[1]);
- AES_RETURN aes_encrypt_key192(const unsigned char *key, aes_encrypt_ctx cx[1]);
- AES_RETURN aes_encrypt_key256(const unsigned char *key, aes_encrypt_ctx cx[1]);
- AES_RETURN aes_encrypt(const unsigned char *in, unsigned char *out,
- const aes_encrypt_ctx cx[1]);
-
- AES_RETURN aes_decrypt_key128(const unsigned char *key, aes_decrypt_ctx cx[1]);
- AES_RETURN aes_decrypt_key192(const unsigned char *key, aes_decrypt_ctx cx[1]);
- AES_RETURN aes_decrypt_key256(const unsigned char *key, aes_decrypt_ctx cx[1]);
- AES_RETURN aes_decrypt(const unsigned char *in, unsigned char *out,
- const aes_decrypt_ctx cx[1]);
-
- IMPORTANT NOTE: If you are using this C interface with dynamic tables make sure that
- you call aes_init() before AES is used so that the tables are initialised.
-
- C++ aes class subroutines:
-
- Class AESencrypt for encryption
-
- Construtors:
- AESencrypt(void)
- AESencrypt(const unsigned char *key) - 128 bit key
- Members:
- AES_RETURN key128(const unsigned char *key)
- AES_RETURN key192(const unsigned char *key)
- AES_RETURN key256(const unsigned char *key)
- AES_RETURN encrypt(const unsigned char *in, unsigned char *out) const
-
- Class AESdecrypt for encryption
- Construtors:
- AESdecrypt(void)
- AESdecrypt(const unsigned char *key) - 128 bit key
- Members:
- AES_RETURN key128(const unsigned char *key)
- AES_RETURN key192(const unsigned char *key)
- AES_RETURN key256(const unsigned char *key)
- AES_RETURN decrypt(const unsigned char *in, unsigned char *out) const
-*/
-
-#if !defined( _AESOPT_H )
-#define _AESOPT_H
-
-#if defined( __cplusplus )
-#include "aescpp.h"
-#else
-#include "aes.h"
-#endif
-
-/* PLATFORM SPECIFIC INCLUDES */
-
-#include "brg_endian.h"
-
-/* CONFIGURATION - THE USE OF DEFINES
-
- Later in this section there are a number of defines that control the
- operation of the code. In each section, the purpose of each define is
- explained so that the relevant form can be included or excluded by
- setting either 1's or 0's respectively on the branches of the related
- #if clauses. The following local defines should not be changed.
-*/
-
-#define ENCRYPTION_IN_C 1
-#define DECRYPTION_IN_C 2
-#define ENC_KEYING_IN_C 4
-#define DEC_KEYING_IN_C 8
-
-#define NO_TABLES 0
-#define ONE_TABLE 1
-#define FOUR_TABLES 4
-#define NONE 0
-#define PARTIAL 1
-#define FULL 2
-
-/* --- START OF USER CONFIGURED OPTIONS --- */
-
-/* 1. BYTE ORDER WITHIN 32 BIT WORDS
-
- The fundamental data processing units in Rijndael are 8-bit bytes. The
- input, output and key input are all enumerated arrays of bytes in which
- bytes are numbered starting at zero and increasing to one less than the
- number of bytes in the array in question. This enumeration is only used
- for naming bytes and does not imply any adjacency or order relationship
- from one byte to another. When these inputs and outputs are considered
- as bit sequences, bits 8*n to 8*n+7 of the bit sequence are mapped to
- byte[n] with bit 8n+i in the sequence mapped to bit 7-i within the byte.
- In this implementation bits are numbered from 0 to 7 starting at the
- numerically least significant end of each byte (bit n represents 2^n).
-
- However, Rijndael can be implemented more efficiently using 32-bit
- words by packing bytes into words so that bytes 4*n to 4*n+3 are placed
- into word[n]. While in principle these bytes can be assembled into words
- in any positions, this implementation only supports the two formats in
- which bytes in adjacent positions within words also have adjacent byte
- numbers. This order is called big-endian if the lowest numbered bytes
- in words have the highest numeric significance and little-endian if the
- opposite applies.
-
- This code can work in either order irrespective of the order used by the
- machine on which it runs. Normally the internal byte order will be set
- to the order of the processor on which the code is to be run but this
- define can be used to reverse this in special situations
-
- WARNING: Assembler code versions rely on PLATFORM_BYTE_ORDER being set.
- This define will hence be redefined later (in section 4) if necessary
-*/
-
-#if 1
-# define ALGORITHM_BYTE_ORDER PLATFORM_BYTE_ORDER
-#elif 0
-# define ALGORITHM_BYTE_ORDER IS_LITTLE_ENDIAN
-#elif 0
-# define ALGORITHM_BYTE_ORDER IS_BIG_ENDIAN
-#else
-# error The algorithm byte order is not defined
-#endif
-
-/* 2. VIA ACE SUPPORT */
-
-#if !defined(__APPLE__) && defined( __GNUC__ ) && defined( __i386__ ) \
- || defined( _WIN32 ) && defined( _M_IX86 ) \
- && !(defined( _WIN64 ) || defined( _WIN32_WCE ) || defined( _MSC_VER ) && ( _MSC_VER <= 800 ))
-# define VIA_ACE_POSSIBLE
-#endif
-
-/* Define this option if support for the VIA ACE is required. This uses
- inline assembler instructions and is only implemented for the Microsoft,
- Intel and GCC compilers. If VIA ACE is known to be present, then defining
- ASSUME_VIA_ACE_PRESENT will remove the ordinary encryption/decryption
- code. If USE_VIA_ACE_IF_PRESENT is defined then VIA ACE will be used if
- it is detected (both present and enabled) but the normal AES code will
- also be present.
-
- When VIA ACE is to be used, all AES encryption contexts MUST be 16 byte
- aligned; other input/output buffers do not need to be 16 byte aligned
- but there are very large performance gains if this can be arranged.
- VIA ACE also requires the decryption key schedule to be in reverse
- order (which later checks below ensure).
-*/
-
-#if 1 && defined( VIA_ACE_POSSIBLE ) && !defined( USE_VIA_ACE_IF_PRESENT )
-# define USE_VIA_ACE_IF_PRESENT
-#endif
-
-#if 0 && defined( VIA_ACE_POSSIBLE ) && !defined( ASSUME_VIA_ACE_PRESENT )
-# define ASSUME_VIA_ACE_PRESENT
-# endif
-
-/* 3. ASSEMBLER SUPPORT
-
- This define (which can be on the command line) enables the use of the
- assembler code routines for encryption, decryption and key scheduling
- as follows:
-
- ASM_X86_V1C uses the assembler (aes_x86_v1.asm) with large tables for
- encryption and decryption and but with key scheduling in C
- ASM_X86_V2 uses assembler (aes_x86_v2.asm) with compressed tables for
- encryption, decryption and key scheduling
- ASM_X86_V2C uses assembler (aes_x86_v2.asm) with compressed tables for
- encryption and decryption and but with key scheduling in C
- ASM_AMD64_C uses assembler (aes_amd64.asm) with compressed tables for
- encryption and decryption and but with key scheduling in C
-
- Change one 'if 0' below to 'if 1' to select the version or define
- as a compilation option.
-*/
-
-#if 0 && !defined( ASM_X86_V1C )
-# define ASM_X86_V1C
-#elif 0 && !defined( ASM_X86_V2 )
-# define ASM_X86_V2
-#elif 0 && !defined( ASM_X86_V2C )
-# define ASM_X86_V2C
-#elif 0 && !defined( ASM_AMD64_C )
-# define ASM_AMD64_C
-#endif
-
-#if (defined ( ASM_X86_V1C ) || defined( ASM_X86_V2 ) || defined( ASM_X86_V2C )) \
- && !defined( _M_IX86 ) || defined( ASM_AMD64_C ) && !defined( _M_X64 )
-# error Assembler code is only available for x86 and AMD64 systems
-#endif
-
-/* 4. FAST INPUT/OUTPUT OPERATIONS.
-
- On some machines it is possible to improve speed by transferring the
- bytes in the input and output arrays to and from the internal 32-bit
- variables by addressing these arrays as if they are arrays of 32-bit
- words. On some machines this will always be possible but there may
- be a large performance penalty if the byte arrays are not aligned on
- the normal word boundaries. On other machines this technique will
- lead to memory access errors when such 32-bit word accesses are not
- properly aligned. The option SAFE_IO avoids such problems but will
- often be slower on those machines that support misaligned access
- (especially so if care is taken to align the input and output byte
- arrays on 32-bit word boundaries). If SAFE_IO is not defined it is
- assumed that access to byte arrays as if they are arrays of 32-bit
- words will not cause problems when such accesses are misaligned.
-*/
-#if 1 && !defined( _MSC_VER )
-# define SAFE_IO
-#endif
-
-/* 5. LOOP UNROLLING
-
- The code for encryption and decrytpion cycles through a number of rounds
- that can be implemented either in a loop or by expanding the code into a
- long sequence of instructions, the latter producing a larger program but
- one that will often be much faster. The latter is called loop unrolling.
- There are also potential speed advantages in expanding two iterations in
- a loop with half the number of iterations, which is called partial loop
- unrolling. The following options allow partial or full loop unrolling
- to be set independently for encryption and decryption
-*/
-#if 1
-# define ENC_UNROLL FULL
-#elif 0
-# define ENC_UNROLL PARTIAL
-#else
-# define ENC_UNROLL NONE
-#endif
-
-#if 1
-# define DEC_UNROLL FULL
-#elif 0
-# define DEC_UNROLL PARTIAL
-#else
-# define DEC_UNROLL NONE
-#endif
-
-#if 1
-# define ENC_KS_UNROLL
-#endif
-
-#if 1
-# define DEC_KS_UNROLL
-#endif
-
-/* 6. FAST FINITE FIELD OPERATIONS
-
- If this section is included, tables are used to provide faster finite
- field arithmetic (this has no effect if FIXED_TABLES is defined).
-*/
-#if 1
-# define FF_TABLES
-#endif
-
-/* 7. INTERNAL STATE VARIABLE FORMAT
-
- The internal state of Rijndael is stored in a number of local 32-bit
- word varaibles which can be defined either as an array or as individual
- names variables. Include this section if you want to store these local
- varaibles in arrays. Otherwise individual local variables will be used.
-*/
-#if 1
-# define ARRAYS
-#endif
-
-/* 8. FIXED OR DYNAMIC TABLES
-
- When this section is included the tables used by the code are compiled
- statically into the binary file. Otherwise the subroutine aes_init()
- must be called to compute them before the code is first used.
-*/
-#if 1 && !(defined( _MSC_VER ) && ( _MSC_VER <= 800 ))
-# define FIXED_TABLES
-#endif
-
-/* 9. MASKING OR CASTING FROM LONGER VALUES TO BYTES
-
- In some systems it is better to mask longer values to extract bytes
- rather than using a cast. This option allows this choice.
-*/
-#if 0
-# define to_byte(x) ((uint_8t)(x))
-#else
-# define to_byte(x) ((x) & 0xff)
-#endif
-
-/* 10. TABLE ALIGNMENT
-
- On some sytsems speed will be improved by aligning the AES large lookup
- tables on particular boundaries. This define should be set to a power of
- two giving the desired alignment. It can be left undefined if alignment
- is not needed. This option is specific to the Microsft VC++ compiler -
- it seems to sometimes cause trouble for the VC++ version 6 compiler.
-*/
-
-#if 1 && defined( _MSC_VER ) && ( _MSC_VER >= 1300 )
-# define TABLE_ALIGN 32
-#endif
-
-/* 11. REDUCE CODE AND TABLE SIZE
-
- This replaces some expanded macros with function calls if AES_ASM_V2 or
- AES_ASM_V2C are defined
-*/
-
-#if 1 && (defined( ASM_X86_V2 ) || defined( ASM_X86_V2C ))
-# define REDUCE_CODE_SIZE
-#endif
-
-/* 12. TABLE OPTIONS
-
- This cipher proceeds by repeating in a number of cycles known as 'rounds'
- which are implemented by a round function which can optionally be speeded
- up using tables. The basic tables are each 256 32-bit words, with either
- one or four tables being required for each round function depending on
- how much speed is required. The encryption and decryption round functions
- are different and the last encryption and decrytpion round functions are
- different again making four different round functions in all.
-
- This means that:
- 1. Normal encryption and decryption rounds can each use either 0, 1
- or 4 tables and table spaces of 0, 1024 or 4096 bytes each.
- 2. The last encryption and decryption rounds can also use either 0, 1
- or 4 tables and table spaces of 0, 1024 or 4096 bytes each.
-
- Include or exclude the appropriate definitions below to set the number
- of tables used by this implementation.
-*/
-
-#if 1 /* set tables for the normal encryption round */
-# define ENC_ROUND FOUR_TABLES
-#elif 0
-# define ENC_ROUND ONE_TABLE
-#else
-# define ENC_ROUND NO_TABLES
-#endif
-
-#if 1 /* set tables for the last encryption round */
-# define LAST_ENC_ROUND FOUR_TABLES
-#elif 0
-# define LAST_ENC_ROUND ONE_TABLE
-#else
-# define LAST_ENC_ROUND NO_TABLES
-#endif
-
-#if 1 /* set tables for the normal decryption round */
-# define DEC_ROUND FOUR_TABLES
-#elif 0
-# define DEC_ROUND ONE_TABLE
-#else
-# define DEC_ROUND NO_TABLES
-#endif
-
-#if 1 /* set tables for the last decryption round */
-# define LAST_DEC_ROUND FOUR_TABLES
-#elif 0
-# define LAST_DEC_ROUND ONE_TABLE
-#else
-# define LAST_DEC_ROUND NO_TABLES
-#endif
-
-/* The decryption key schedule can be speeded up with tables in the same
- way that the round functions can. Include or exclude the following
- defines to set this requirement.
-*/
-#if 1
-# define KEY_SCHED FOUR_TABLES
-#elif 0
-# define KEY_SCHED ONE_TABLE
-#else
-# define KEY_SCHED NO_TABLES
-#endif
-
-/* ---- END OF USER CONFIGURED OPTIONS ---- */
-
-/* VIA ACE support is only available for VC++ and GCC */
-
-#if !defined( _MSC_VER ) && !defined( __GNUC__ )
-# if defined( ASSUME_VIA_ACE_PRESENT )
-# undef ASSUME_VIA_ACE_PRESENT
-# endif
-# if defined( USE_VIA_ACE_IF_PRESENT )
-# undef USE_VIA_ACE_IF_PRESENT
-# endif
-#endif
-
-#if defined( ASSUME_VIA_ACE_PRESENT ) && !defined( USE_VIA_ACE_IF_PRESENT )
-# define USE_VIA_ACE_IF_PRESENT
-#endif
-
-#if defined( USE_VIA_ACE_IF_PRESENT ) && !defined ( AES_REV_DKS )
-# define AES_REV_DKS
-#endif
-
-/* Assembler support requires the use of platform byte order */
-
-#if ( defined( ASM_X86_V1C ) || defined( ASM_X86_V2C ) || defined( ASM_AMD64_C ) ) \
- && (ALGORITHM_BYTE_ORDER != PLATFORM_BYTE_ORDER)
-# undef ALGORITHM_BYTE_ORDER
-# define ALGORITHM_BYTE_ORDER PLATFORM_BYTE_ORDER
-#endif
-
-/* In this implementation the columns of the state array are each held in
- 32-bit words. The state array can be held in various ways: in an array
- of words, in a number of individual word variables or in a number of
- processor registers. The following define maps a variable name x and
- a column number c to the way the state array variable is to be held.
- The first define below maps the state into an array x[c] whereas the
- second form maps the state into a number of individual variables x0,
- x1, etc. Another form could map individual state colums to machine
- register names.
-*/
-
-#if defined( ARRAYS )
-# define s(x,c) x[c]
-#else
-# define s(x,c) x##c
-#endif
-
-/* This implementation provides subroutines for encryption, decryption
- and for setting the three key lengths (separately) for encryption
- and decryption. Since not all functions are needed, masks are set
- up here to determine which will be implemented in C
-*/
-
-#if !defined( AES_ENCRYPT )
-# define EFUNCS_IN_C 0
-#elif defined( ASSUME_VIA_ACE_PRESENT ) || defined( ASM_X86_V1C ) \
- || defined( ASM_X86_V2C ) || defined( ASM_AMD64_C )
-# define EFUNCS_IN_C ENC_KEYING_IN_C
-#elif !defined( ASM_X86_V2 )
-# define EFUNCS_IN_C ( ENCRYPTION_IN_C | ENC_KEYING_IN_C )
-#else
-# define EFUNCS_IN_C 0
-#endif
-
-#if !defined( AES_DECRYPT )
-# define DFUNCS_IN_C 0
-#elif defined( ASSUME_VIA_ACE_PRESENT ) || defined( ASM_X86_V1C ) \
- || defined( ASM_X86_V2C ) || defined( ASM_AMD64_C )
-# define DFUNCS_IN_C DEC_KEYING_IN_C
-#elif !defined( ASM_X86_V2 )
-# define DFUNCS_IN_C ( DECRYPTION_IN_C | DEC_KEYING_IN_C )
-#else
-# define DFUNCS_IN_C 0
-#endif
-
-#define FUNCS_IN_C ( EFUNCS_IN_C | DFUNCS_IN_C )
-
-/* END OF CONFIGURATION OPTIONS */
-
-#define RC_LENGTH (5 * (AES_BLOCK_SIZE / 4 - 2))
-
-/* Disable or report errors on some combinations of options */
-
-#if ENC_ROUND == NO_TABLES && LAST_ENC_ROUND != NO_TABLES
-# undef LAST_ENC_ROUND
-# define LAST_ENC_ROUND NO_TABLES
-#elif ENC_ROUND == ONE_TABLE && LAST_ENC_ROUND == FOUR_TABLES
-# undef LAST_ENC_ROUND
-# define LAST_ENC_ROUND ONE_TABLE
-#endif
-
-#if ENC_ROUND == NO_TABLES && ENC_UNROLL != NONE
-# undef ENC_UNROLL
-# define ENC_UNROLL NONE
-#endif
-
-#if DEC_ROUND == NO_TABLES && LAST_DEC_ROUND != NO_TABLES
-# undef LAST_DEC_ROUND
-# define LAST_DEC_ROUND NO_TABLES
-#elif DEC_ROUND == ONE_TABLE && LAST_DEC_ROUND == FOUR_TABLES
-# undef LAST_DEC_ROUND
-# define LAST_DEC_ROUND ONE_TABLE
-#endif
-
-#if DEC_ROUND == NO_TABLES && DEC_UNROLL != NONE
-# undef DEC_UNROLL
-# define DEC_UNROLL NONE
-#endif
-
-#if defined( bswap32 )
-# define aes_sw32 bswap32
-#elif defined( bswap_32 )
-# define aes_sw32 bswap_32
-#else
-# define brot(x,n) (((uint_32t)(x) << n) | ((uint_32t)(x) >> (32 - n)))
-# define aes_sw32(x) ((brot((x),8) & 0x00ff00ff) | (brot((x),24) & 0xff00ff00))
-#endif
-
-/* upr(x,n): rotates bytes within words by n positions, moving bytes to
- higher index positions with wrap around into low positions
- ups(x,n): moves bytes by n positions to higher index positions in
- words but without wrap around
- bval(x,n): extracts a byte from a word
-
- WARNING: The definitions given here are intended only for use with
- unsigned variables and with shift counts that are compile
- time constants
-*/
-
-#if ( ALGORITHM_BYTE_ORDER == IS_LITTLE_ENDIAN )
-# define upr(x,n) (((uint_32t)(x) << (8 * (n))) | ((uint_32t)(x) >> (32 - 8 * (n))))
-# define ups(x,n) ((uint_32t) (x) << (8 * (n)))
-# define bval(x,n) to_byte((x) >> (8 * (n)))
-# define bytes2word(b0, b1, b2, b3) \
- (((uint_32t)(b3) << 24) | ((uint_32t)(b2) << 16) | ((uint_32t)(b1) << 8) | (b0))
-#endif
-
-#if ( ALGORITHM_BYTE_ORDER == IS_BIG_ENDIAN )
-# define upr(x,n) (((uint_32t)(x) >> (8 * (n))) | ((uint_32t)(x) << (32 - 8 * (n))))
-# define ups(x,n) ((uint_32t) (x) >> (8 * (n)))
-# define bval(x,n) to_byte((x) >> (24 - 8 * (n)))
-# define bytes2word(b0, b1, b2, b3) \
- (((uint_32t)(b0) << 24) | ((uint_32t)(b1) << 16) | ((uint_32t)(b2) << 8) | (b3))
-#endif
-
-#if defined( SAFE_IO )
-# define word_in(x,c) bytes2word(((const uint_8t*)(x)+4*c)[0], ((const uint_8t*)(x)+4*c)[1], \
- ((const uint_8t*)(x)+4*c)[2], ((const uint_8t*)(x)+4*c)[3])
-# define word_out(x,c,v) { ((uint_8t*)(x)+4*c)[0] = bval(v,0); ((uint_8t*)(x)+4*c)[1] = bval(v,1); \
- ((uint_8t*)(x)+4*c)[2] = bval(v,2); ((uint_8t*)(x)+4*c)[3] = bval(v,3); }
-#elif ( ALGORITHM_BYTE_ORDER == PLATFORM_BYTE_ORDER )
-# define word_in(x,c) (*((uint_32t*)(x)+(c)))
-# define word_out(x,c,v) (*((uint_32t*)(x)+(c)) = (v))
-#else
-# define word_in(x,c) aes_sw32(*((uint_32t*)(x)+(c)))
-# define word_out(x,c,v) (*((uint_32t*)(x)+(c)) = aes_sw32(v))
-#endif
-
-/* the finite field modular polynomial and elements */
-
-#define WPOLY 0x011b
-#define BPOLY 0x1b
-
-/* multiply four bytes in GF(2^8) by 'x' {02} in parallel */
-
-#define gf_c1 0x80808080
-#define gf_c2 0x7f7f7f7f
-#define gf_mulx(x) ((((x) & gf_c2) << 1) ^ ((((x) & gf_c1) >> 7) * BPOLY))
-
-/* The following defines provide alternative definitions of gf_mulx that might
- give improved performance if a fast 32-bit multiply is not available. Note
- that a temporary variable u needs to be defined where gf_mulx is used.
-
-#define gf_mulx(x) (u = (x) & gf_c1, u |= (u >> 1), ((x) & gf_c2) << 1) ^ ((u >> 3) | (u >> 6))
-#define gf_c4 (0x01010101 * BPOLY)
-#define gf_mulx(x) (u = (x) & gf_c1, ((x) & gf_c2) << 1) ^ ((u - (u >> 7)) & gf_c4)
-*/
-
-/* Work out which tables are needed for the different options */
-
-#if defined( ASM_X86_V1C )
-# if defined( ENC_ROUND )
-# undef ENC_ROUND
-# endif
-# define ENC_ROUND FOUR_TABLES
-# if defined( LAST_ENC_ROUND )
-# undef LAST_ENC_ROUND
-# endif
-# define LAST_ENC_ROUND FOUR_TABLES
-# if defined( DEC_ROUND )
-# undef DEC_ROUND
-# endif
-# define DEC_ROUND FOUR_TABLES
-# if defined( LAST_DEC_ROUND )
-# undef LAST_DEC_ROUND
-# endif
-# define LAST_DEC_ROUND FOUR_TABLES
-# if defined( KEY_SCHED )
-# undef KEY_SCHED
-# define KEY_SCHED FOUR_TABLES
-# endif
-#endif
-
-#if ( FUNCS_IN_C & ENCRYPTION_IN_C ) || defined( ASM_X86_V1C )
-# if ENC_ROUND == ONE_TABLE
-# define FT1_SET
-# elif ENC_ROUND == FOUR_TABLES
-# define FT4_SET
-# else
-# define SBX_SET
-# endif
-# if LAST_ENC_ROUND == ONE_TABLE
-# define FL1_SET
-# elif LAST_ENC_ROUND == FOUR_TABLES
-# define FL4_SET
-# elif !defined( SBX_SET )
-# define SBX_SET
-# endif
-#endif
-
-#if ( FUNCS_IN_C & DECRYPTION_IN_C ) || defined( ASM_X86_V1C )
-# if DEC_ROUND == ONE_TABLE
-# define IT1_SET
-# elif DEC_ROUND == FOUR_TABLES
-# define IT4_SET
-# else
-# define ISB_SET
-# endif
-# if LAST_DEC_ROUND == ONE_TABLE
-# define IL1_SET
-# elif LAST_DEC_ROUND == FOUR_TABLES
-# define IL4_SET
-# elif !defined(ISB_SET)
-# define ISB_SET
-# endif
-#endif
-
-#if !(defined( REDUCE_CODE_SIZE ) && (defined( ASM_X86_V2 ) || defined( ASM_X86_V2C )))
-# if ((FUNCS_IN_C & ENC_KEYING_IN_C) || (FUNCS_IN_C & DEC_KEYING_IN_C))
-# if KEY_SCHED == ONE_TABLE
-# if !defined( FL1_SET ) && !defined( FL4_SET )
-# define LS1_SET
-# endif
-# elif KEY_SCHED == FOUR_TABLES
-# if !defined( FL4_SET )
-# define LS4_SET
-# endif
-# elif !defined( SBX_SET )
-# define SBX_SET
-# endif
-# endif
-# if (FUNCS_IN_C & DEC_KEYING_IN_C)
-# if KEY_SCHED == ONE_TABLE
-# define IM1_SET
-# elif KEY_SCHED == FOUR_TABLES
-# define IM4_SET
-# elif !defined( SBX_SET )
-# define SBX_SET
-# endif
-# endif
-#endif
-
-/* generic definitions of Rijndael macros that use tables */
-
-#define no_table(x,box,vf,rf,c) bytes2word( \
- box[bval(vf(x,0,c),rf(0,c))], \
- box[bval(vf(x,1,c),rf(1,c))], \
- box[bval(vf(x,2,c),rf(2,c))], \
- box[bval(vf(x,3,c),rf(3,c))])
-
-#define one_table(x,op,tab,vf,rf,c) \
- ( tab[bval(vf(x,0,c),rf(0,c))] \
- ^ op(tab[bval(vf(x,1,c),rf(1,c))],1) \
- ^ op(tab[bval(vf(x,2,c),rf(2,c))],2) \
- ^ op(tab[bval(vf(x,3,c),rf(3,c))],3))
-
-#define four_tables(x,tab,vf,rf,c) \
- ( tab[0][bval(vf(x,0,c),rf(0,c))] \
- ^ tab[1][bval(vf(x,1,c),rf(1,c))] \
- ^ tab[2][bval(vf(x,2,c),rf(2,c))] \
- ^ tab[3][bval(vf(x,3,c),rf(3,c))])
-
-#define vf1(x,r,c) (x)
-#define rf1(r,c) (r)
-#define rf2(r,c) ((8+r-c)&3)
-
-/* perform forward and inverse column mix operation on four bytes in long word x in */
-/* parallel. NOTE: x must be a simple variable, NOT an expression in these macros. */
-
-#if !(defined( REDUCE_CODE_SIZE ) && (defined( ASM_X86_V2 ) || defined( ASM_X86_V2C )))
-
-#if defined( FM4_SET ) /* not currently used */
-# define fwd_mcol(x) four_tables(x,t_use(f,m),vf1,rf1,0)
-#elif defined( FM1_SET ) /* not currently used */
-# define fwd_mcol(x) one_table(x,upr,t_use(f,m),vf1,rf1,0)
-#else
-# define dec_fmvars uint_32t g2
-# define fwd_mcol(x) (g2 = gf_mulx(x), g2 ^ upr((x) ^ g2, 3) ^ upr((x), 2) ^ upr((x), 1))
-#endif
-
-#if defined( IM4_SET )
-# define inv_mcol(x) four_tables(x,t_use(i,m),vf1,rf1,0)
-#elif defined( IM1_SET )
-# define inv_mcol(x) one_table(x,upr,t_use(i,m),vf1,rf1,0)
-#else
-# define dec_imvars uint_32t g2, g4, g9
-# define inv_mcol(x) (g2 = gf_mulx(x), g4 = gf_mulx(g2), g9 = (x) ^ gf_mulx(g4), g4 ^= g9, \
- (x) ^ g2 ^ g4 ^ upr(g2 ^ g9, 3) ^ upr(g4, 2) ^ upr(g9, 1))
-#endif
-
-#if defined( FL4_SET )
-# define ls_box(x,c) four_tables(x,t_use(f,l),vf1,rf2,c)
-#elif defined( LS4_SET )
-# define ls_box(x,c) four_tables(x,t_use(l,s),vf1,rf2,c)
-#elif defined( FL1_SET )
-# define ls_box(x,c) one_table(x,upr,t_use(f,l),vf1,rf2,c)
-#elif defined( LS1_SET )
-# define ls_box(x,c) one_table(x,upr,t_use(l,s),vf1,rf2,c)
-#else
-# define ls_box(x,c) no_table(x,t_use(s,box),vf1,rf2,c)
-#endif
-
-#endif
-
-#if defined( ASM_X86_V1C ) && defined( AES_DECRYPT ) && !defined( ISB_SET )
-# define ISB_SET
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/aestab.c b/ios/RCTPushy/SSZipArchive/aes/aestab.c
deleted file mode 100755
index 6d193af..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aestab.c
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-*/
-
-#define DO_TABLES
-
-#include "aes.h"
-#include "aesopt.h"
-
-#if defined(FIXED_TABLES)
-
-#define sb_data(w) {\
- w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), w(0xc5),\
- w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), w(0xab), w(0x76),\
- w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), w(0x59), w(0x47), w(0xf0),\
- w(0xad), w(0xd4), w(0xa2), w(0xaf), w(0x9c), w(0xa4), w(0x72), w(0xc0),\
- w(0xb7), w(0xfd), w(0x93), w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc),\
- w(0x34), w(0xa5), w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15),\
- w(0x04), w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a),\
- w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), w(0x75),\
- w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), w(0x5a), w(0xa0),\
- w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), w(0xe3), w(0x2f), w(0x84),\
- w(0x53), w(0xd1), w(0x00), w(0xed), w(0x20), w(0xfc), w(0xb1), w(0x5b),\
- w(0x6a), w(0xcb), w(0xbe), w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf),\
- w(0xd0), w(0xef), w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85),\
- w(0x45), w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8),\
- w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), w(0xf5),\
- w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), w(0xf3), w(0xd2),\
- w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), w(0x97), w(0x44), w(0x17),\
- w(0xc4), w(0xa7), w(0x7e), w(0x3d), w(0x64), w(0x5d), w(0x19), w(0x73),\
- w(0x60), w(0x81), w(0x4f), w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88),\
- w(0x46), w(0xee), w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb),\
- w(0xe0), w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c),\
- w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), w(0x79),\
- w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), w(0x4e), w(0xa9),\
- w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), w(0x7a), w(0xae), w(0x08),\
- w(0xba), w(0x78), w(0x25), w(0x2e), w(0x1c), w(0xa6), w(0xb4), w(0xc6),\
- w(0xe8), w(0xdd), w(0x74), w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a),\
- w(0x70), w(0x3e), w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e),\
- w(0x61), w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e),\
- w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), w(0x94),\
- w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), w(0x28), w(0xdf),\
- w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), w(0xe6), w(0x42), w(0x68),\
- w(0x41), w(0x99), w(0x2d), w(0x0f), w(0xb0), w(0x54), w(0xbb), w(0x16) }
-
-#define isb_data(w) {\
- w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), w(0x38),\
- w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), w(0xd7), w(0xfb),\
- w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), w(0x2f), w(0xff), w(0x87),\
- w(0x34), w(0x8e), w(0x43), w(0x44), w(0xc4), w(0xde), w(0xe9), w(0xcb),\
- w(0x54), w(0x7b), w(0x94), w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d),\
- w(0xee), w(0x4c), w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e),\
- w(0x08), w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2),\
- w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), w(0x25),\
- w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), w(0x98), w(0x16),\
- w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), w(0x65), w(0xb6), w(0x92),\
- w(0x6c), w(0x70), w(0x48), w(0x50), w(0xfd), w(0xed), w(0xb9), w(0xda),\
- w(0x5e), w(0x15), w(0x46), w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84),\
- w(0x90), w(0xd8), w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a),\
- w(0xf7), w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06),\
- w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), w(0x02),\
- w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), w(0x8a), w(0x6b),\
- w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), w(0x67), w(0xdc), w(0xea),\
- w(0x97), w(0xf2), w(0xcf), w(0xce), w(0xf0), w(0xb4), w(0xe6), w(0x73),\
- w(0x96), w(0xac), w(0x74), w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85),\
- w(0xe2), w(0xf9), w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e),\
- w(0x47), w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89),\
- w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), w(0x1b),\
- w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), w(0x79), w(0x20),\
- w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), w(0xcd), w(0x5a), w(0xf4),\
- w(0x1f), w(0xdd), w(0xa8), w(0x33), w(0x88), w(0x07), w(0xc7), w(0x31),\
- w(0xb1), w(0x12), w(0x10), w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f),\
- w(0x60), w(0x51), w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d),\
- w(0x2d), w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef),\
- w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), w(0xb0),\
- w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), w(0x99), w(0x61),\
- w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), w(0x77), w(0xd6), w(0x26),\
- w(0xe1), w(0x69), w(0x14), w(0x63), w(0x55), w(0x21), w(0x0c), w(0x7d) }
-
-#define mm_data(w) {\
- w(0x00), w(0x01), w(0x02), w(0x03), w(0x04), w(0x05), w(0x06), w(0x07),\
- w(0x08), w(0x09), w(0x0a), w(0x0b), w(0x0c), w(0x0d), w(0x0e), w(0x0f),\
- w(0x10), w(0x11), w(0x12), w(0x13), w(0x14), w(0x15), w(0x16), w(0x17),\
- w(0x18), w(0x19), w(0x1a), w(0x1b), w(0x1c), w(0x1d), w(0x1e), w(0x1f),\
- w(0x20), w(0x21), w(0x22), w(0x23), w(0x24), w(0x25), w(0x26), w(0x27),\
- w(0x28), w(0x29), w(0x2a), w(0x2b), w(0x2c), w(0x2d), w(0x2e), w(0x2f),\
- w(0x30), w(0x31), w(0x32), w(0x33), w(0x34), w(0x35), w(0x36), w(0x37),\
- w(0x38), w(0x39), w(0x3a), w(0x3b), w(0x3c), w(0x3d), w(0x3e), w(0x3f),\
- w(0x40), w(0x41), w(0x42), w(0x43), w(0x44), w(0x45), w(0x46), w(0x47),\
- w(0x48), w(0x49), w(0x4a), w(0x4b), w(0x4c), w(0x4d), w(0x4e), w(0x4f),\
- w(0x50), w(0x51), w(0x52), w(0x53), w(0x54), w(0x55), w(0x56), w(0x57),\
- w(0x58), w(0x59), w(0x5a), w(0x5b), w(0x5c), w(0x5d), w(0x5e), w(0x5f),\
- w(0x60), w(0x61), w(0x62), w(0x63), w(0x64), w(0x65), w(0x66), w(0x67),\
- w(0x68), w(0x69), w(0x6a), w(0x6b), w(0x6c), w(0x6d), w(0x6e), w(0x6f),\
- w(0x70), w(0x71), w(0x72), w(0x73), w(0x74), w(0x75), w(0x76), w(0x77),\
- w(0x78), w(0x79), w(0x7a), w(0x7b), w(0x7c), w(0x7d), w(0x7e), w(0x7f),\
- w(0x80), w(0x81), w(0x82), w(0x83), w(0x84), w(0x85), w(0x86), w(0x87),\
- w(0x88), w(0x89), w(0x8a), w(0x8b), w(0x8c), w(0x8d), w(0x8e), w(0x8f),\
- w(0x90), w(0x91), w(0x92), w(0x93), w(0x94), w(0x95), w(0x96), w(0x97),\
- w(0x98), w(0x99), w(0x9a), w(0x9b), w(0x9c), w(0x9d), w(0x9e), w(0x9f),\
- w(0xa0), w(0xa1), w(0xa2), w(0xa3), w(0xa4), w(0xa5), w(0xa6), w(0xa7),\
- w(0xa8), w(0xa9), w(0xaa), w(0xab), w(0xac), w(0xad), w(0xae), w(0xaf),\
- w(0xb0), w(0xb1), w(0xb2), w(0xb3), w(0xb4), w(0xb5), w(0xb6), w(0xb7),\
- w(0xb8), w(0xb9), w(0xba), w(0xbb), w(0xbc), w(0xbd), w(0xbe), w(0xbf),\
- w(0xc0), w(0xc1), w(0xc2), w(0xc3), w(0xc4), w(0xc5), w(0xc6), w(0xc7),\
- w(0xc8), w(0xc9), w(0xca), w(0xcb), w(0xcc), w(0xcd), w(0xce), w(0xcf),\
- w(0xd0), w(0xd1), w(0xd2), w(0xd3), w(0xd4), w(0xd5), w(0xd6), w(0xd7),\
- w(0xd8), w(0xd9), w(0xda), w(0xdb), w(0xdc), w(0xdd), w(0xde), w(0xdf),\
- w(0xe0), w(0xe1), w(0xe2), w(0xe3), w(0xe4), w(0xe5), w(0xe6), w(0xe7),\
- w(0xe8), w(0xe9), w(0xea), w(0xeb), w(0xec), w(0xed), w(0xee), w(0xef),\
- w(0xf0), w(0xf1), w(0xf2), w(0xf3), w(0xf4), w(0xf5), w(0xf6), w(0xf7),\
- w(0xf8), w(0xf9), w(0xfa), w(0xfb), w(0xfc), w(0xfd), w(0xfe), w(0xff) }
-
-#define rc_data(w) {\
- w(0x01), w(0x02), w(0x04), w(0x08), w(0x10),w(0x20), w(0x40), w(0x80),\
- w(0x1b), w(0x36) }
-
-#define h0(x) (x)
-
-#define w0(p) bytes2word(p, 0, 0, 0)
-#define w1(p) bytes2word(0, p, 0, 0)
-#define w2(p) bytes2word(0, 0, p, 0)
-#define w3(p) bytes2word(0, 0, 0, p)
-
-#define u0(p) bytes2word(f2(p), p, p, f3(p))
-#define u1(p) bytes2word(f3(p), f2(p), p, p)
-#define u2(p) bytes2word(p, f3(p), f2(p), p)
-#define u3(p) bytes2word(p, p, f3(p), f2(p))
-
-#define v0(p) bytes2word(fe(p), f9(p), fd(p), fb(p))
-#define v1(p) bytes2word(fb(p), fe(p), f9(p), fd(p))
-#define v2(p) bytes2word(fd(p), fb(p), fe(p), f9(p))
-#define v3(p) bytes2word(f9(p), fd(p), fb(p), fe(p))
-
-#endif
-
-#if defined(FIXED_TABLES) || !defined(FF_TABLES)
-
-#define f2(x) ((x<<1) ^ (((x>>7) & 1) * WPOLY))
-#define f4(x) ((x<<2) ^ (((x>>6) & 1) * WPOLY) ^ (((x>>6) & 2) * WPOLY))
-#define f8(x) ((x<<3) ^ (((x>>5) & 1) * WPOLY) ^ (((x>>5) & 2) * WPOLY) \
- ^ (((x>>5) & 4) * WPOLY))
-#define f3(x) (f2(x) ^ x)
-#define f9(x) (f8(x) ^ x)
-#define fb(x) (f8(x) ^ f2(x) ^ x)
-#define fd(x) (f8(x) ^ f4(x) ^ x)
-#define fe(x) (f8(x) ^ f4(x) ^ f2(x))
-
-#else
-
-#define f2(x) ((x) ? pow[log[x] + 0x19] : 0)
-#define f3(x) ((x) ? pow[log[x] + 0x01] : 0)
-#define f9(x) ((x) ? pow[log[x] + 0xc7] : 0)
-#define fb(x) ((x) ? pow[log[x] + 0x68] : 0)
-#define fd(x) ((x) ? pow[log[x] + 0xee] : 0)
-#define fe(x) ((x) ? pow[log[x] + 0xdf] : 0)
-
-#endif
-
-#include "aestab.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#if defined(FIXED_TABLES)
-
-/* implemented in case of wrong call for fixed tables */
-
-AES_RETURN aes_init(void)
-{
- return EXIT_SUCCESS;
-}
-
-#else /* Generate the tables for the dynamic table option */
-
-#if defined(FF_TABLES)
-
-#define gf_inv(x) ((x) ? pow[ 255 - log[x]] : 0)
-
-#else
-
-/* It will generally be sensible to use tables to compute finite
- field multiplies and inverses but where memory is scarse this
- code might sometimes be better. But it only has effect during
- initialisation so its pretty unimportant in overall terms.
-*/
-
-/* return 2 ^ (n - 1) where n is the bit number of the highest bit
- set in x with x in the range 1 < x < 0x00000200. This form is
- used so that locals within fi can be bytes rather than words
-*/
-
-static uint_8t hibit(const uint_32t x)
-{ uint_8t r = (uint_8t)((x >> 1) | (x >> 2));
-
- r |= (r >> 2);
- r |= (r >> 4);
- return (r + 1) >> 1;
-}
-
-/* return the inverse of the finite field element x */
-
-static uint_8t gf_inv(const uint_8t x)
-{ uint_8t p1 = x, p2 = BPOLY, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0;
-
- if(x < 2)
- return x;
-
- for( ; ; )
- {
- if(n1)
- while(n2 >= n1) /* divide polynomial p2 by p1 */
- {
- n2 /= n1; /* shift smaller polynomial left */
- p2 ^= (p1 * n2) & 0xff; /* and remove from larger one */
- v2 ^= v1 * n2; /* shift accumulated value and */
- n2 = hibit(p2); /* add into result */
- }
- else
- return v1;
-
- if(n2) /* repeat with values swapped */
- while(n1 >= n2)
- {
- n1 /= n2;
- p1 ^= p2 * n1;
- v1 ^= v2 * n1;
- n1 = hibit(p1);
- }
- else
- return v2;
- }
-}
-
-#endif
-
-/* The forward and inverse affine transformations used in the S-box */
-uint_8t fwd_affine(const uint_8t x)
-{ uint_32t w = x;
- w ^= (w << 1) ^ (w << 2) ^ (w << 3) ^ (w << 4);
- return 0x63 ^ ((w ^ (w >> 8)) & 0xff);
-}
-
-uint_8t inv_affine(const uint_8t x)
-{ uint_32t w = x;
- w = (w << 1) ^ (w << 3) ^ (w << 6);
- return 0x05 ^ ((w ^ (w >> 8)) & 0xff);
-}
-
-static int init = 0;
-
-AES_RETURN aes_init(void)
-{ uint_32t i, w;
-
-#if defined(FF_TABLES)
-
- uint_8t pow[512], log[256];
-
- if(init)
- return EXIT_SUCCESS;
- /* log and power tables for GF(2^8) finite field with
- WPOLY as modular polynomial - the simplest primitive
- root is 0x03, used here to generate the tables
- */
-
- i = 0; w = 1;
- do
- {
- pow[i] = (uint_8t)w;
- pow[i + 255] = (uint_8t)w;
- log[w] = (uint_8t)i++;
- w ^= (w << 1) ^ (w & 0x80 ? WPOLY : 0);
- }
- while (w != 1);
-
-#else
- if(init)
- return EXIT_SUCCESS;
-#endif
-
- for(i = 0, w = 1; i < RC_LENGTH; ++i)
- {
- t_set(r,c)[i] = bytes2word(w, 0, 0, 0);
- w = f2(w);
- }
-
- for(i = 0; i < 256; ++i)
- { uint_8t b;
-
- b = fwd_affine(gf_inv((uint_8t)i));
- w = bytes2word(f2(b), b, b, f3(b));
-
-#if defined( SBX_SET )
- t_set(s,box)[i] = b;
-#endif
-
-#if defined( FT1_SET ) /* tables for a normal encryption round */
- t_set(f,n)[i] = w;
-#endif
-#if defined( FT4_SET )
- t_set(f,n)[0][i] = w;
- t_set(f,n)[1][i] = upr(w,1);
- t_set(f,n)[2][i] = upr(w,2);
- t_set(f,n)[3][i] = upr(w,3);
-#endif
- w = bytes2word(b, 0, 0, 0);
-
-#if defined( FL1_SET ) /* tables for last encryption round (may also */
- t_set(f,l)[i] = w; /* be used in the key schedule) */
-#endif
-#if defined( FL4_SET )
- t_set(f,l)[0][i] = w;
- t_set(f,l)[1][i] = upr(w,1);
- t_set(f,l)[2][i] = upr(w,2);
- t_set(f,l)[3][i] = upr(w,3);
-#endif
-
-#if defined( LS1_SET ) /* table for key schedule if t_set(f,l) above is*/
- t_set(l,s)[i] = w; /* not of the required form */
-#endif
-#if defined( LS4_SET )
- t_set(l,s)[0][i] = w;
- t_set(l,s)[1][i] = upr(w,1);
- t_set(l,s)[2][i] = upr(w,2);
- t_set(l,s)[3][i] = upr(w,3);
-#endif
-
- b = gf_inv(inv_affine((uint_8t)i));
- w = bytes2word(fe(b), f9(b), fd(b), fb(b));
-
-#if defined( IM1_SET ) /* tables for the inverse mix column operation */
- t_set(i,m)[b] = w;
-#endif
-#if defined( IM4_SET )
- t_set(i,m)[0][b] = w;
- t_set(i,m)[1][b] = upr(w,1);
- t_set(i,m)[2][b] = upr(w,2);
- t_set(i,m)[3][b] = upr(w,3);
-#endif
-
-#if defined( ISB_SET )
- t_set(i,box)[i] = b;
-#endif
-#if defined( IT1_SET ) /* tables for a normal decryption round */
- t_set(i,n)[i] = w;
-#endif
-#if defined( IT4_SET )
- t_set(i,n)[0][i] = w;
- t_set(i,n)[1][i] = upr(w,1);
- t_set(i,n)[2][i] = upr(w,2);
- t_set(i,n)[3][i] = upr(w,3);
-#endif
- w = bytes2word(b, 0, 0, 0);
-#if defined( IL1_SET ) /* tables for last decryption round */
- t_set(i,l)[i] = w;
-#endif
-#if defined( IL4_SET )
- t_set(i,l)[0][i] = w;
- t_set(i,l)[1][i] = upr(w,1);
- t_set(i,l)[2][i] = upr(w,2);
- t_set(i,l)[3][i] = upr(w,3);
-#endif
- }
- init = 1;
- return EXIT_SUCCESS;
-}
-
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
diff --git a/ios/RCTPushy/SSZipArchive/aes/aestab.h b/ios/RCTPushy/SSZipArchive/aes/aestab.h
deleted file mode 100755
index 21fc736..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/aestab.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-
- This file contains the code for declaring the tables needed to implement
- AES. The file aesopt.h is assumed to be included before this header file.
- If there are no global variables, the definitions here can be used to put
- the AES tables in a structure so that a pointer can then be added to the
- AES context to pass them to the AES routines that need them. If this
- facility is used, the calling program has to ensure that this pointer is
- managed appropriately. In particular, the value of the t_dec(in,it) item
- in the table structure must be set to zero in order to ensure that the
- tables are initialised. In practice the three code sequences in aeskey.c
- that control the calls to aes_init() and the aes_init() routine itself will
- have to be changed for a specific implementation. If global variables are
- available it will generally be preferable to use them with the precomputed
- FIXED_TABLES option that uses static global tables.
-
- The following defines can be used to control the way the tables
- are defined, initialised and used in embedded environments that
- require special features for these purposes
-
- the 't_dec' construction is used to declare fixed table arrays
- the 't_set' construction is used to set fixed table values
- the 't_use' construction is used to access fixed table values
-
- 256 byte tables:
-
- t_xxx(s,box) => forward S box
- t_xxx(i,box) => inverse S box
-
- 256 32-bit word OR 4 x 256 32-bit word tables:
-
- t_xxx(f,n) => forward normal round
- t_xxx(f,l) => forward last round
- t_xxx(i,n) => inverse normal round
- t_xxx(i,l) => inverse last round
- t_xxx(l,s) => key schedule table
- t_xxx(i,m) => key schedule table
-
- Other variables and tables:
-
- t_xxx(r,c) => the rcon table
-*/
-
-#if !defined( _AESTAB_H )
-#define _AESTAB_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#define t_dec(m,n) t_##m##n
-#define t_set(m,n) t_##m##n
-#define t_use(m,n) t_##m##n
-
-#if defined(FIXED_TABLES)
-# if !defined( __GNUC__ ) && (defined( __MSDOS__ ) || defined( __WIN16__ ))
-/* make tables far data to avoid using too much DGROUP space (PG) */
-# define CONST const far
-# else
-# define CONST const
-# endif
-#else
-# define CONST
-#endif
-
-#if defined(DO_TABLES)
-# define EXTERN
-#else
-# define EXTERN extern
-#endif
-
-#if defined(_MSC_VER) && defined(TABLE_ALIGN)
-#define ALIGN __declspec(align(TABLE_ALIGN))
-#else
-#define ALIGN
-#endif
-
-#if defined( __WATCOMC__ ) && ( __WATCOMC__ >= 1100 )
-# define XP_DIR __cdecl
-#else
-# define XP_DIR
-#endif
-
-#if defined(DO_TABLES) && defined(FIXED_TABLES)
-#define d_1(t,n,b,e) EXTERN ALIGN CONST XP_DIR t n[256] = b(e)
-#define d_4(t,n,b,e,f,g,h) EXTERN ALIGN CONST XP_DIR t n[4][256] = { b(e), b(f), b(g), b(h) }
-EXTERN ALIGN CONST uint_32t t_dec(r,c)[RC_LENGTH] = rc_data(w0);
-#else
-#define d_1(t,n,b,e) EXTERN ALIGN CONST XP_DIR t n[256]
-#define d_4(t,n,b,e,f,g,h) EXTERN ALIGN CONST XP_DIR t n[4][256]
-EXTERN ALIGN CONST uint_32t t_dec(r,c)[RC_LENGTH];
-#endif
-
-#if defined( SBX_SET )
- d_1(uint_8t, t_dec(s,box), sb_data, h0);
-#endif
-#if defined( ISB_SET )
- d_1(uint_8t, t_dec(i,box), isb_data, h0);
-#endif
-
-#if defined( FT1_SET )
- d_1(uint_32t, t_dec(f,n), sb_data, u0);
-#endif
-#if defined( FT4_SET )
- d_4(uint_32t, t_dec(f,n), sb_data, u0, u1, u2, u3);
-#endif
-
-#if defined( FL1_SET )
- d_1(uint_32t, t_dec(f,l), sb_data, w0);
-#endif
-#if defined( FL4_SET )
- d_4(uint_32t, t_dec(f,l), sb_data, w0, w1, w2, w3);
-#endif
-
-#if defined( IT1_SET )
- d_1(uint_32t, t_dec(i,n), isb_data, v0);
-#endif
-#if defined( IT4_SET )
- d_4(uint_32t, t_dec(i,n), isb_data, v0, v1, v2, v3);
-#endif
-
-#if defined( IL1_SET )
- d_1(uint_32t, t_dec(i,l), isb_data, w0);
-#endif
-#if defined( IL4_SET )
- d_4(uint_32t, t_dec(i,l), isb_data, w0, w1, w2, w3);
-#endif
-
-#if defined( LS1_SET )
-#if defined( FL1_SET )
-#undef LS1_SET
-#else
- d_1(uint_32t, t_dec(l,s), sb_data, w0);
-#endif
-#endif
-
-#if defined( LS4_SET )
-#if defined( FL4_SET )
-#undef LS4_SET
-#else
- d_4(uint_32t, t_dec(l,s), sb_data, w0, w1, w2, w3);
-#endif
-#endif
-
-#if defined( IM1_SET )
- d_1(uint_32t, t_dec(i,m), mm_data, v0);
-#endif
-#if defined( IM4_SET )
- d_4(uint_32t, t_dec(i,m), mm_data, v0, v1, v2, v3);
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/brg_endian.h b/ios/RCTPushy/SSZipArchive/aes/brg_endian.h
deleted file mode 100755
index 82e48f0..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/brg_endian.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-*/
-
-#ifndef _BRG_ENDIAN_H
-#define _BRG_ENDIAN_H
-
-#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */
-#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */
-
-/* Include files where endian defines and byteswap functions may reside */
-#if defined( __sun )
-# include
-#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ )
-# include
-#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \
- defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ )
-# include
-#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
-# if !defined( __MINGW32__ ) && !defined( _AIX )
-# include
-# if !defined( __BEOS__ )
-# include
-# endif
-# endif
-#endif
-
-/* Now attempt to set the define for platform byte order using any */
-/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */
-/* seem to encompass most endian symbol definitions */
-
-#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN )
-# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-# endif
-#elif defined( BIG_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-#elif defined( LITTLE_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-#endif
-
-#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN )
-# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-# endif
-#elif defined( _BIG_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-#elif defined( _LITTLE_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-#endif
-
-#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN )
-# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-# endif
-#elif defined( __BIG_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-#elif defined( __LITTLE_ENDIAN )
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-#endif
-
-#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ )
-# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-# endif
-#elif defined( __BIG_ENDIAN__ )
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-#elif defined( __LITTLE_ENDIAN__ )
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-#endif
-
-/* if the platform byte order could not be determined, then try to */
-/* set this define using common machine defines */
-#if !defined(PLATFORM_BYTE_ORDER)
-
-#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \
- defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \
- defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \
- defined( vax ) || defined( vms ) || defined( VMS ) || \
- defined( __VMS ) || defined( _M_X64 )
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-
-#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \
- defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \
- defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \
- defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \
- defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \
- defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \
- defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX )
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-
-#elif 0 /* **** EDIT HERE IF NECESSARY **** */
-# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
-#elif 0 /* **** EDIT HERE IF NECESSARY **** */
-# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
-#else
-# error Please edit lines 126 or 128 in brg_endian.h to set the platform byte order
-#endif
-
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/brg_types.h b/ios/RCTPushy/SSZipArchive/aes/brg_types.h
deleted file mode 100755
index 40d4af5..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/brg_types.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
----------------------------------------------------------------------------
-Copyright (c) 1998-2010, Brian Gladman, Worcester, UK. All rights reserved.
-
-The redistribution and use of this software (with or without changes)
-is allowed without the payment of fees or royalties provided that:
-
- source code distributions include the above copyright notice, this
- list of conditions and the following disclaimer;
-
- binary distributions include the above copyright notice, this list
- of conditions and the following disclaimer in their documentation.
-
-This software is provided 'as is' with no explicit or implied warranties
-in respect of its operation, including, but not limited to, correctness
-and fitness for purpose.
----------------------------------------------------------------------------
-Issue Date: 20/12/2007
-
- The unsigned integer types defined here are of the form uint_t where
- is the length of the type; for example, the unsigned 32-bit type is
- 'uint_32t'. These are NOT the same as the 'C99 integer types' that are
- defined in the inttypes.h and stdint.h headers since attempts to use these
- types have shown that support for them is still highly variable. However,
- since the latter are of the form uint_t, a regular expression search
- and replace (in VC++ search on 'uint_{:z}t' and replace with 'uint\1_t')
- can be used to convert the types used here to the C99 standard types.
-*/
-
-#ifndef _BRG_TYPES_H
-#define _BRG_TYPES_H
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-#include
-
-#if defined( _MSC_VER ) && ( _MSC_VER >= 1300 )
-# include
-# define ptrint_t intptr_t
-#elif defined( __ECOS__ )
-# define intptr_t unsigned int
-# define ptrint_t intptr_t
-#elif defined( __GNUC__ ) && ( __GNUC__ >= 3 )
-# include
-# define ptrint_t intptr_t
-#else
-# define ptrint_t int
-#endif
-
-#ifndef BRG_UI8
-# define BRG_UI8
-# if UCHAR_MAX == 255u
- typedef unsigned char uint_8t;
-# else
-# error Please define uint_8t as an 8-bit unsigned integer type in brg_types.h
-# endif
-#endif
-
-#ifndef BRG_UI16
-# define BRG_UI16
-# if USHRT_MAX == 65535u
- typedef unsigned short uint_16t;
-# else
-# error Please define uint_16t as a 16-bit unsigned short type in brg_types.h
-# endif
-#endif
-
-#ifndef BRG_UI32
-# define BRG_UI32
-# if UINT_MAX == 4294967295u
-# define li_32(h) 0x##h##u
- typedef unsigned int uint_32t;
-# elif ULONG_MAX == 4294967295u
-# define li_32(h) 0x##h##ul
- typedef unsigned long uint_32t;
-# elif defined( _CRAY )
-# error This code needs 32-bit data types, which Cray machines do not provide
-# else
-# error Please define uint_32t as a 32-bit unsigned integer type in brg_types.h
-# endif
-#endif
-
-#ifndef BRG_UI64
-# if defined( __BORLANDC__ ) && !defined( __MSDOS__ )
-# define BRG_UI64
-# define li_64(h) 0x##h##ui64
- typedef unsigned __int64 uint_64t;
-# elif defined( _MSC_VER ) && ( _MSC_VER < 1300 ) /* 1300 == VC++ 7.0 */
-# define BRG_UI64
-# define li_64(h) 0x##h##ui64
- typedef unsigned __int64 uint_64t;
-# elif defined( __sun ) && defined( ULONG_MAX ) && ULONG_MAX == 0xfffffffful
-# define BRG_UI64
-# define li_64(h) 0x##h##ull
- typedef unsigned long long uint_64t;
-# elif defined( __MVS__ )
-# define BRG_UI64
-# define li_64(h) 0x##h##ull
- typedef unsigned int long long uint_64t;
-# elif defined( UINT_MAX ) && UINT_MAX > 4294967295u
-# if UINT_MAX == 18446744073709551615u
-# define BRG_UI64
-# define li_64(h) 0x##h##u
- typedef unsigned int uint_64t;
-# endif
-# elif defined( ULONG_MAX ) && ULONG_MAX > 4294967295u
-# if ULONG_MAX == 18446744073709551615ul
-# define BRG_UI64
-# define li_64(h) 0x##h##ul
- typedef unsigned long uint_64t;
-# endif
-# elif defined( ULLONG_MAX ) && ULLONG_MAX > 4294967295u
-# if ULLONG_MAX == 18446744073709551615ull
-# define BRG_UI64
-# define li_64(h) 0x##h##ull
- typedef unsigned long long uint_64t;
-# endif
-# elif defined( ULONG_LONG_MAX ) && ULONG_LONG_MAX > 4294967295u
-# if ULONG_LONG_MAX == 18446744073709551615ull
-# define BRG_UI64
-# define li_64(h) 0x##h##ull
- typedef unsigned long long uint_64t;
-# endif
-# endif
-#endif
-
-#if !defined( BRG_UI64 )
-# if defined( NEED_UINT_64T )
-# error Please define uint_64t as an unsigned 64 bit type in brg_types.h
-# endif
-#endif
-
-#ifndef RETURN_VALUES
-# define RETURN_VALUES
-# if defined( DLL_EXPORT )
-# if defined( _MSC_VER ) || defined ( __INTEL_COMPILER )
-# define VOID_RETURN __declspec( dllexport ) void __stdcall
-# define INT_RETURN __declspec( dllexport ) int __stdcall
-# elif defined( __GNUC__ )
-# define VOID_RETURN __declspec( __dllexport__ ) void
-# define INT_RETURN __declspec( __dllexport__ ) int
-# else
-# error Use of the DLL is only available on the Microsoft, Intel and GCC compilers
-# endif
-# elif defined( DLL_IMPORT )
-# if defined( _MSC_VER ) || defined ( __INTEL_COMPILER )
-# define VOID_RETURN __declspec( dllimport ) void __stdcall
-# define INT_RETURN __declspec( dllimport ) int __stdcall
-# elif defined( __GNUC__ )
-# define VOID_RETURN __declspec( __dllimport__ ) void
-# define INT_RETURN __declspec( __dllimport__ ) int
-# else
-# error Use of the DLL is only available on the Microsoft, Intel and GCC compilers
-# endif
-# elif defined( __WATCOMC__ )
-# define VOID_RETURN void __cdecl
-# define INT_RETURN int __cdecl
-# else
-# define VOID_RETURN void
-# define INT_RETURN int
-# endif
-#endif
-
-/* These defines are used to detect and set the memory alignment of pointers.
- Note that offsets are in bytes.
-
- ALIGN_OFFSET(x,n) return the positive or zero offset of
- the memory addressed by the pointer 'x'
- from an address that is aligned on an
- 'n' byte boundary ('n' is a power of 2)
-
- ALIGN_FLOOR(x,n) return a pointer that points to memory
- that is aligned on an 'n' byte boundary
- and is not higher than the memory address
- pointed to by 'x' ('n' is a power of 2)
-
- ALIGN_CEIL(x,n) return a pointer that points to memory
- that is aligned on an 'n' byte boundary
- and is not lower than the memory address
- pointed to by 'x' ('n' is a power of 2)
-*/
-
-#define ALIGN_OFFSET(x,n) (((ptrint_t)(x)) & ((n) - 1))
-#define ALIGN_FLOOR(x,n) ((uint_8t*)(x) - ( ((ptrint_t)(x)) & ((n) - 1)))
-#define ALIGN_CEIL(x,n) ((uint_8t*)(x) + (-((ptrint_t)(x)) & ((n) - 1)))
-
-/* These defines are used to declare buffers in a way that allows
- faster operations on longer variables to be used. In all these
- defines 'size' must be a power of 2 and >= 8. NOTE that the
- buffer size is in bytes but the type length is in bits
-
- UNIT_TYPEDEF(x,size) declares a variable 'x' of length
- 'size' bits
-
- BUFR_TYPEDEF(x,size,bsize) declares a buffer 'x' of length 'bsize'
- bytes defined as an array of variables
- each of 'size' bits (bsize must be a
- multiple of size / 8)
-
- UNIT_CAST(x,size) casts a variable to a type of
- length 'size' bits
-
- UPTR_CAST(x,size) casts a pointer to a pointer to a
- varaiable of length 'size' bits
-*/
-
-#define UI_TYPE(size) uint_##size##t
-#define UNIT_TYPEDEF(x,size) typedef UI_TYPE(size) x
-#define BUFR_TYPEDEF(x,size,bsize) typedef UI_TYPE(size) x[bsize / (size >> 3)]
-#define UNIT_CAST(x,size) ((UI_TYPE(size) )(x))
-#define UPTR_CAST(x,size) ((UI_TYPE(size)*)(x))
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/entropy.c b/ios/RCTPushy/SSZipArchive/aes/entropy.c
deleted file mode 100755
index 5840a97..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/entropy.c
+++ /dev/null
@@ -1,54 +0,0 @@
-#ifdef _WIN32
-#include
-#else
-#include
-#include
-#include
-#endif
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#ifdef _WIN32
-int entropy_fun(unsigned char buf[], unsigned int len)
-{
- HCRYPTPROV provider;
- unsigned __int64 pentium_tsc[1];
- unsigned int i;
- int result = 0;
-
-
- if (CryptAcquireContext(&provider, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_SILENT))
- {
- result = CryptGenRandom(provider, len, buf);
- CryptReleaseContext(provider, 0);
- if (result)
- return len;
- }
-
- QueryPerformanceCounter((LARGE_INTEGER *)pentium_tsc);
-
- for(i = 0; i < 8 && i < len; ++i)
- buf[i] = ((unsigned char*)pentium_tsc)[i];
-
- return i;
-}
-#else
-int entropy_fun(unsigned char buf[], unsigned int len)
-{
- int frand = open("/dev/random", O_RDONLY);
- int rlen = 0;
- if (frand != -1)
- {
- rlen = (int)read(frand, buf, len);
- close(frand);
- }
- return rlen;
-}
-#endif
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/entropy.h b/ios/RCTPushy/SSZipArchive/aes/entropy.h
deleted file mode 100755
index 306620c..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/entropy.h
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#ifndef _ENTROPY_FUN_H
-#define _ENTROPY_FUN_H
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-int entropy_fun(unsigned char buf[], unsigned int len);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/fileenc.c b/ios/RCTPushy/SSZipArchive/aes/fileenc.c
deleted file mode 100755
index 5057036..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/fileenc.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
- All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- -------------------------------------------------------------------------
- Issue Date: 24/01/2003
-
- This file implements password based file encryption and authentication
- using AES in CTR mode, HMAC-SHA1 authentication and RFC2898 password
- based key derivation.
-
- */
-
-#include
-
-#include "fileenc.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* subroutine for data encryption/decryption */
-/* this could be speeded up a lot by aligning */
-/* buffers and using 32 bit operations */
-
-static void encr_data(unsigned char data[], unsigned long d_len, fcrypt_ctx cx[1])
-{
- unsigned long i = 0, pos = cx->encr_pos;
-
- while (i < d_len) {
- if (pos == AES_BLOCK_SIZE) {
- unsigned int j = 0;
- /* increment encryption nonce */
- while (j < 8 && !++cx->nonce[j])
- ++j;
- /* encrypt the nonce to form next xor buffer */
- aes_encrypt(cx->nonce, cx->encr_bfr, cx->encr_ctx);
- pos = 0;
- }
-
- data[i++] ^= cx->encr_bfr[pos++];
- }
-
- cx->encr_pos = (unsigned int)pos;
-}
-
-int fcrypt_init(
- int mode, /* the mode to be used (input) */
- const unsigned char pwd[], /* the user specified password (input) */
- unsigned int pwd_len, /* the length of the password (input) */
- const unsigned char salt[], /* the salt (input) */
-#ifdef PASSWORD_VERIFIER
- unsigned char pwd_ver[PWD_VER_LENGTH], /* 2 byte password verifier (output) */
-#endif
- fcrypt_ctx cx[1]) /* the file encryption context (output) */
-{
- unsigned char kbuf[2 * MAX_KEY_LENGTH + PWD_VER_LENGTH];
-
- if (pwd_len > MAX_PWD_LENGTH)
- return PASSWORD_TOO_LONG;
-
- if (mode < 1 || mode > 3)
- return BAD_MODE;
-
- cx->mode = mode;
- cx->pwd_len = pwd_len;
-
- /* derive the encryption and authentication keys and the password verifier */
- derive_key(pwd, pwd_len, salt, SALT_LENGTH(mode), KEYING_ITERATIONS,
- kbuf, 2 * KEY_LENGTH(mode) + PWD_VER_LENGTH);
-
- /* initialise the encryption nonce and buffer pos */
- cx->encr_pos = AES_BLOCK_SIZE;
- /* if we need a random component in the encryption */
- /* nonce, this is where it would have to be set */
- memset(cx->nonce, 0, AES_BLOCK_SIZE * sizeof(unsigned char));
-
- /* initialise for encryption using key 1 */
- aes_encrypt_key(kbuf, KEY_LENGTH(mode), cx->encr_ctx);
-
- /* initialise for authentication using key 2 */
- hmac_sha_begin(cx->auth_ctx);
- hmac_sha_key(kbuf + KEY_LENGTH(mode), KEY_LENGTH(mode), cx->auth_ctx);
-
-#ifdef PASSWORD_VERIFIER
- memcpy(pwd_ver, kbuf + 2 * KEY_LENGTH(mode), PWD_VER_LENGTH);
-#endif
-
- return GOOD_RETURN;
-}
-
-/* perform 'in place' encryption and authentication */
-
-void fcrypt_encrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1])
-{
- encr_data(data, data_len, cx);
- hmac_sha_data(data, data_len, cx->auth_ctx);
-}
-
-/* perform 'in place' authentication and decryption */
-
-void fcrypt_decrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1])
-{
- hmac_sha_data(data, data_len, cx->auth_ctx);
- encr_data(data, data_len, cx);
-}
-
-/* close encryption/decryption and return the MAC value */
-
-int fcrypt_end(unsigned char mac[], fcrypt_ctx cx[1])
-{
- hmac_sha_end(mac, MAC_LENGTH(cx->mode), cx->auth_ctx);
- return MAC_LENGTH(cx->mode); /* return MAC length in bytes */
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/fileenc.h b/ios/RCTPushy/SSZipArchive/aes/fileenc.h
deleted file mode 100755
index ba64a7c..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/fileenc.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
- All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 24/01/2003
-
- This file contains the header file for fileenc.c, which implements password
- based file encryption and authentication using AES in CTR mode, HMAC-SHA1
- authentication and RFC2898 password based key derivation.
-*/
-
-#ifndef _FENC_H
-#define _FENC_H
-
-#include "aes.h"
-#include "hmac.h"
-#include "pwd2key.h"
-
-#define PASSWORD_VERIFIER
-
-#define MAX_KEY_LENGTH 32
-#define MAX_PWD_LENGTH 128
-#define MAX_SALT_LENGTH 16
-#define KEYING_ITERATIONS 1000
-
-#ifdef PASSWORD_VERIFIER
-#define PWD_VER_LENGTH 2
-#else
-#define PWD_VER_LENGTH 0
-#endif
-
-#define GOOD_RETURN 0
-#define PASSWORD_TOO_LONG -100
-#define BAD_MODE -101
-
-/*
- Field lengths (in bytes) versus File Encryption Mode (0 < mode < 4)
-
- Mode Key Salt MAC Overhead
- 1 16 8 10 18
- 2 24 12 10 22
- 3 32 16 10 26
-
- The following macros assume that the mode value is correct.
-*/
-
-#define KEY_LENGTH(mode) (8 * (mode & 3) + 8)
-#define SALT_LENGTH(mode) (4 * (mode & 3) + 4)
-#define MAC_LENGTH(mode) (10)
-
-/* the context for file encryption */
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-typedef struct
-{ unsigned char nonce[AES_BLOCK_SIZE]; /* the CTR nonce */
- unsigned char encr_bfr[AES_BLOCK_SIZE]; /* encrypt buffer */
- aes_encrypt_ctx encr_ctx[1]; /* encryption context */
- hmac_ctx auth_ctx[1]; /* authentication context */
- unsigned int encr_pos; /* block position (enc) */
- unsigned int pwd_len; /* password length */
- unsigned int mode; /* File encryption mode */
-} fcrypt_ctx;
-
-/* initialise file encryption or decryption */
-
-int fcrypt_init(
- int mode, /* the mode to be used (input) */
- const unsigned char pwd[], /* the user specified password (input) */
- unsigned int pwd_len, /* the length of the password (input) */
- const unsigned char salt[], /* the salt (input) */
-#ifdef PASSWORD_VERIFIER
- unsigned char pwd_ver[PWD_VER_LENGTH], /* 2 byte password verifier (output) */
-#endif
- fcrypt_ctx cx[1]); /* the file encryption context (output) */
-
-/* perform 'in place' encryption or decryption and authentication */
-
-void fcrypt_encrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]);
-void fcrypt_decrypt(unsigned char data[], unsigned int data_len, fcrypt_ctx cx[1]);
-
-/* close encryption/decryption and return the MAC value */
-/* the return value is the length of the MAC */
-
-int fcrypt_end(unsigned char mac[], /* the MAC value (output) */
- fcrypt_ctx cx[1]); /* the context (input) */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/hmac.c b/ios/RCTPushy/SSZipArchive/aes/hmac.c
deleted file mode 100755
index c71b14e..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/hmac.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 26/08/2003
-
- This is an implementation of HMAC, the FIPS standard keyed hash function
-*/
-
-#include "hmac.h"
-#include "brg_types.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* initialise the HMAC context to zero */
-void hmac_sha_begin(hmac_ctx cx[1])
-{
- memset(cx, 0, sizeof(hmac_ctx));
-}
-
-/* input the HMAC key (can be called multiple times) */
-int hmac_sha_key(const unsigned char key[], unsigned long key_len, hmac_ctx cx[1])
-{
- if(cx->klen == HMAC_IN_DATA) /* error if further key input */
- return HMAC_BAD_MODE; /* is attempted in data mode */
-
- if(cx->klen + key_len > HASH_INPUT_SIZE) /* if the key has to be hashed */
- {
- if(cx->klen <= HASH_INPUT_SIZE) /* if the hash has not yet been */
- { /* started, initialise it and */
- sha_begin(cx->ctx); /* hash stored key characters */
- sha_hash(cx->key, cx->klen, cx->ctx);
- }
-
- sha_hash(key, key_len, cx->ctx); /* hash long key data into hash */
- }
- else /* otherwise store key data */
- memcpy(cx->key + cx->klen, key, key_len);
-
- cx->klen += key_len; /* update the key length count */
- return HMAC_OK;
-}
-
-/* input the HMAC data (can be called multiple times) - */
-/* note that this call terminates the key input phase */
-void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx cx[1])
-{ unsigned int i;
-
- if(cx->klen != HMAC_IN_DATA) /* if not yet in data phase */
- {
- if(cx->klen > HASH_INPUT_SIZE) /* if key is being hashed */
- { /* complete the hash and */
- sha_end(cx->key, cx->ctx); /* store the result as the */
- cx->klen = HASH_OUTPUT_SIZE; /* key and set new length */
- }
-
- /* pad the key if necessary */
- memset(cx->key + cx->klen, 0, HASH_INPUT_SIZE - cx->klen);
-
- /* xor ipad into key value */
- for(i = 0; i < (HASH_INPUT_SIZE >> 2); ++i)
- ((uint_32t*)cx->key)[i] ^= 0x36363636;
-
- /* and start hash operation */
- sha_begin(cx->ctx);
- sha_hash(cx->key, HASH_INPUT_SIZE, cx->ctx);
-
- /* mark as now in data mode */
- cx->klen = HMAC_IN_DATA;
- }
-
- /* hash the data (if any) */
- if(data_len)
- sha_hash(data, data_len, cx->ctx);
-}
-
-/* compute and output the MAC value */
-void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1])
-{ unsigned char dig[HASH_OUTPUT_SIZE];
- unsigned int i;
-
- /* if no data has been entered perform a null data phase */
- if(cx->klen != HMAC_IN_DATA)
- hmac_sha_data((const unsigned char*)0, 0, cx);
-
- sha_end(dig, cx->ctx); /* complete the inner hash */
-
- /* set outer key value using opad and removing ipad */
- for(i = 0; i < (HASH_INPUT_SIZE >> 2); ++i)
- ((uint_32t*)cx->key)[i] ^= 0x36363636 ^ 0x5c5c5c5c;
-
- /* perform the outer hash operation */
- sha_begin(cx->ctx);
- sha_hash(cx->key, HASH_INPUT_SIZE, cx->ctx);
- sha_hash(dig, HASH_OUTPUT_SIZE, cx->ctx);
- sha_end(dig, cx->ctx);
-
- /* output the hash value */
- for(i = 0; i < mac_len; ++i)
- mac[i] = dig[i];
-}
-
-/* 'do it all in one go' subroutine */
-void hmac_sha(const unsigned char key[], unsigned long key_len,
- const unsigned char data[], unsigned long data_len,
- unsigned char mac[], unsigned long mac_len)
-{ hmac_ctx cx[1];
-
- hmac_sha_begin(cx);
- hmac_sha_key(key, key_len, cx);
- hmac_sha_data(data, data_len, cx);
- hmac_sha_end(mac, mac_len, cx);
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/hmac.h b/ios/RCTPushy/SSZipArchive/aes/hmac.h
deleted file mode 100755
index 643037c..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/hmac.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 26/08/2003
-
- This is an implementation of HMAC, the FIPS standard keyed hash function
-*/
-
-#ifndef _HMAC_H
-#define _HMAC_H
-
-#include
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#define USE_SHA1
-
-#if !defined(USE_SHA1) && !defined(USE_SHA256)
-#error define USE_SHA1 or USE_SHA256 to set the HMAC hash algorithm
-#endif
-
-#ifdef USE_SHA1
-
-#include "sha1.h"
-
-#define HASH_INPUT_SIZE SHA1_BLOCK_SIZE
-#define HASH_OUTPUT_SIZE SHA1_DIGEST_SIZE
-#define sha_ctx sha1_ctx
-#define sha_begin sha1_begin
-#define sha_hash sha1_hash
-#define sha_end sha1_end
-
-#endif
-
-#ifdef USE_SHA256
-
-#include "sha2.h"
-
-#define HASH_INPUT_SIZE SHA256_BLOCK_SIZE
-#define HASH_OUTPUT_SIZE SHA256_DIGEST_SIZE
-#define sha_ctx sha256_ctx
-#define sha_begin sha256_begin
-#define sha_hash sha256_hash
-#define sha_end sha256_end
-
-#endif
-
-#define HMAC_OK 0
-#define HMAC_BAD_MODE -1
-#define HMAC_IN_DATA 0xffffffff
-
-typedef struct
-{ unsigned char key[HASH_INPUT_SIZE];
- sha_ctx ctx[1];
- unsigned long klen;
-} hmac_ctx;
-
-void hmac_sha_begin(hmac_ctx cx[1]);
-
-int hmac_sha_key(const unsigned char key[], unsigned long key_len, hmac_ctx cx[1]);
-
-void hmac_sha_data(const unsigned char data[], unsigned long data_len, hmac_ctx cx[1]);
-
-void hmac_sha_end(unsigned char mac[], unsigned long mac_len, hmac_ctx cx[1]);
-
-void hmac_sha(const unsigned char key[], unsigned long key_len,
- const unsigned char data[], unsigned long data_len,
- unsigned char mac[], unsigned long mac_len);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/prng.c b/ios/RCTPushy/SSZipArchive/aes/prng.c
deleted file mode 100755
index 2f91090..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/prng.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
- All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 24/01/2003
-
- This file implements a random data pool based on the use of an external
- entropy function. It is based on the ideas advocated by Peter Gutmann in
- his work on pseudo random sequence generators. It is not a 'paranoid'
- random sequence generator and no attempt is made to protect the pool
- from prying eyes either by memory locking or by techniques to obscure
- its location in memory.
-*/
-
-#include
-#include "prng.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* mix a random data pool using the SHA1 compression function (as */
-/* suggested by Peter Gutmann in his paper on random pools) */
-
-static void prng_mix(unsigned char buf[])
-{ unsigned int i, len;
- sha1_ctx ctx[1];
-
- /*lint -e{663} unusual array to pointer conversion */
- for(i = 0; i < PRNG_POOL_SIZE; i += SHA1_DIGEST_SIZE)
- {
- /* copy digest size pool block into SHA1 hash block */
- memcpy(ctx->hash, buf + (i ? i : PRNG_POOL_SIZE)
- - SHA1_DIGEST_SIZE, SHA1_DIGEST_SIZE);
-
- /* copy data from pool into the SHA1 data buffer */
- len = PRNG_POOL_SIZE - i;
- memcpy(ctx->wbuf, buf + i, (len > SHA1_BLOCK_SIZE ? SHA1_BLOCK_SIZE : len));
-
- if(len < SHA1_BLOCK_SIZE)
- memcpy(((char*)ctx->wbuf) + len, buf, SHA1_BLOCK_SIZE - len);
-
- /* compress using the SHA1 compression function */
- sha1_compile(ctx);
-
- /* put digest size block back into the random pool */
- memcpy(buf + i, ctx->hash, SHA1_DIGEST_SIZE);
- }
-}
-
-/* refresh the output buffer and update the random pool by adding */
-/* entropy and remixing */
-
-static void update_pool(prng_ctx ctx[1])
-{ unsigned int i = 0;
-
- /* transfer random pool data to the output buffer */
- memcpy(ctx->obuf, ctx->rbuf, PRNG_POOL_SIZE);
-
- /* enter entropy data into the pool */
- while(i < PRNG_POOL_SIZE)
- i += ctx->entropy(ctx->rbuf + i, PRNG_POOL_SIZE - i);
-
- /* invert and xor the original pool data into the pool */
- for(i = 0; i < PRNG_POOL_SIZE; ++i)
- ctx->rbuf[i] ^= ~ctx->obuf[i];
-
- /* mix the pool and the output buffer */
- prng_mix(ctx->rbuf);
- prng_mix(ctx->obuf);
-}
-
-void prng_init(prng_entropy_fn fun, prng_ctx ctx[1])
-{ int i;
-
- /* clear the buffers and the counter in the context */
- memset(ctx, 0, sizeof(prng_ctx));
-
- /* set the pointer to the entropy collection function */
- ctx->entropy = fun;
-
- /* initialise the random data pool */
- update_pool(ctx);
-
- /* mix the pool a minimum number of times */
- for(i = 0; i < PRNG_MIN_MIX; ++i)
- prng_mix(ctx->rbuf);
-
- /* update the pool to prime the pool output buffer */
- update_pool(ctx);
-}
-
-/* provide random bytes from the random data pool */
-
-void prng_rand(unsigned char data[], unsigned int data_len, prng_ctx ctx[1])
-{ unsigned char *rp = data;
- unsigned int len, pos = ctx->pos;
-
- while(data_len)
- {
- /* transfer 'data_len' bytes (or the number of bytes remaining */
- /* the pool output buffer if less) into the output */
- len = (data_len < PRNG_POOL_SIZE - pos ? data_len : PRNG_POOL_SIZE - pos);
- memcpy(rp, ctx->obuf + pos, len);
- rp += len; /* update ouput buffer position pointer */
- pos += len; /* update pool output buffer pointer */
- data_len -= len; /* update the remaining data count */
-
- /* refresh the random pool if necessary */
- if(pos == PRNG_POOL_SIZE)
- {
- update_pool(ctx); pos = 0;
- }
- }
-
- ctx->pos = pos;
-}
-
-void prng_end(prng_ctx ctx[1])
-{
- /* ensure the data in the context is destroyed */
- memset(ctx, 0, sizeof(prng_ctx));
-}
-
-#if defined(__cplusplus)
-}
-#endif
-
diff --git a/ios/RCTPushy/SSZipArchive/aes/prng.h b/ios/RCTPushy/SSZipArchive/aes/prng.h
deleted file mode 100755
index f934b51..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/prng.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman < >, Worcester, UK.
- All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 24/01/2003
-
- This is the header file for an implementation of a random data pool based on
- the use of an external entropy function (inspired by Peter Gutmann's work).
-*/
-
-#ifndef _PRNG_H
-#define _PRNG_H
-
-#include "sha1.h"
-
-#define PRNG_POOL_LEN 256 /* minimum random pool size */
-#define PRNG_MIN_MIX 20 /* min initial pool mixing iterations */
-
-/* ensure that pool length is a multiple of the SHA1 digest size */
-
-#define PRNG_POOL_SIZE (SHA1_DIGEST_SIZE * (1 + (PRNG_POOL_LEN - 1) / SHA1_DIGEST_SIZE))
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* A function for providing entropy is a parameter in the prng_init() */
-/* call. This function has the following form and returns a maximum */
-/* of 'len' bytes of pseudo random data in the buffer 'buf'. It can */
-/* return less than 'len' bytes but will be repeatedly called for more */
-/* data in this case. */
-
-typedef int (*prng_entropy_fn)(unsigned char buf[], unsigned int len);
-
-typedef struct
-{ unsigned char rbuf[PRNG_POOL_SIZE]; /* the random pool */
- unsigned char obuf[PRNG_POOL_SIZE]; /* pool output buffer */
- unsigned int pos; /* output buffer position */
- prng_entropy_fn entropy; /* entropy function pointer */
-} prng_ctx;
-
-/* initialise the random stream generator */
-void prng_init(prng_entropy_fn fun, prng_ctx ctx[1]);
-
-/* obtain random bytes from the generator */
-void prng_rand(unsigned char data[], unsigned int data_len, prng_ctx ctx[1]);
-
-/* close the random stream generator */
-void prng_end(prng_ctx ctx[1]);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/pwd2key.c b/ios/RCTPushy/SSZipArchive/aes/pwd2key.c
deleted file mode 100755
index 80a4760..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/pwd2key.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 26/08/2003
-
- This is an implementation of RFC2898, which specifies key derivation from
- a password and a salt value.
-*/
-
-#include
-#include "hmac.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-void derive_key(const unsigned char pwd[], /* the PASSWORD */
- unsigned int pwd_len, /* and its length */
- const unsigned char salt[], /* the SALT and its */
- unsigned int salt_len, /* length */
- unsigned int iter, /* the number of iterations */
- unsigned char key[], /* space for the output key */
- unsigned int key_len)/* and its required length */
-{
- unsigned int i, j, k, n_blk;
- unsigned char uu[HASH_OUTPUT_SIZE], ux[HASH_OUTPUT_SIZE];
- hmac_ctx c1[1], c2[1], c3[1];
-
- /* set HMAC context (c1) for password */
- hmac_sha_begin(c1);
- hmac_sha_key(pwd, pwd_len, c1);
-
- /* set HMAC context (c2) for password and salt */
- memcpy(c2, c1, sizeof(hmac_ctx));
- hmac_sha_data(salt, salt_len, c2);
-
- /* find the number of SHA blocks in the key */
- n_blk = 1 + (key_len - 1) / HASH_OUTPUT_SIZE;
-
- for(i = 0; i < n_blk; ++i) /* for each block in key */
- {
- /* ux[] holds the running xor value */
- memset(ux, 0, HASH_OUTPUT_SIZE);
-
- /* set HMAC context (c3) for password and salt */
- memcpy(c3, c2, sizeof(hmac_ctx));
-
- /* enter additional data for 1st block into uu */
- uu[0] = (unsigned char)((i + 1) >> 24);
- uu[1] = (unsigned char)((i + 1) >> 16);
- uu[2] = (unsigned char)((i + 1) >> 8);
- uu[3] = (unsigned char)(i + 1);
-
- /* this is the key mixing iteration */
- for(j = 0, k = 4; j < iter; ++j)
- {
- /* add previous round data to HMAC */
- hmac_sha_data(uu, k, c3);
-
- /* obtain HMAC for uu[] */
- hmac_sha_end(uu, HASH_OUTPUT_SIZE, c3);
-
- /* xor into the running xor block */
- for(k = 0; k < HASH_OUTPUT_SIZE; ++k)
- ux[k] ^= uu[k];
-
- /* set HMAC context (c3) for password */
- memcpy(c3, c1, sizeof(hmac_ctx));
- }
-
- /* compile key blocks into the key output */
- j = 0; k = i * HASH_OUTPUT_SIZE;
- while(j < HASH_OUTPUT_SIZE && k < key_len)
- key[k++] = ux[j++];
- }
-}
-
-#ifdef TEST
-
-#include
-
-struct
-{ unsigned int pwd_len;
- unsigned int salt_len;
- unsigned int it_count;
- unsigned char *pwd;
- unsigned char salt[32];
- unsigned char key[32];
-} tests[] =
-{
- { 8, 4, 5, (unsigned char*)"password",
- {
- 0x12, 0x34, 0x56, 0x78
- },
- {
- 0x5c, 0x75, 0xce, 0xf0, 0x1a, 0x96, 0x0d, 0xf7,
- 0x4c, 0xb6, 0xb4, 0x9b, 0x9e, 0x38, 0xe6, 0xb5
- }
- },
- { 8, 8, 5, (unsigned char*)"password",
- {
- 0x12, 0x34, 0x56, 0x78, 0x78, 0x56, 0x34, 0x12
- },
- {
- 0xd1, 0xda, 0xa7, 0x86, 0x15, 0xf2, 0x87, 0xe6,
- 0xa1, 0xc8, 0xb1, 0x20, 0xd7, 0x06, 0x2a, 0x49
- }
- },
- { 8, 21, 1, (unsigned char*)"password",
- {
- "ATHENA.MIT.EDUraeburn"
- },
- {
- 0xcd, 0xed, 0xb5, 0x28, 0x1b, 0xb2, 0xf8, 0x01,
- 0x56, 0x5a, 0x11, 0x22, 0xb2, 0x56, 0x35, 0x15
- }
- },
- { 8, 21, 2, (unsigned char*)"password",
- {
- "ATHENA.MIT.EDUraeburn"
- },
- {
- 0x01, 0xdb, 0xee, 0x7f, 0x4a, 0x9e, 0x24, 0x3e,
- 0x98, 0x8b, 0x62, 0xc7, 0x3c, 0xda, 0x93, 0x5d
- }
- },
- { 8, 21, 1200, (unsigned char*)"password",
- {
- "ATHENA.MIT.EDUraeburn"
- },
- {
- 0x5c, 0x08, 0xeb, 0x61, 0xfd, 0xf7, 0x1e, 0x4e,
- 0x4e, 0xc3, 0xcf, 0x6b, 0xa1, 0xf5, 0x51, 0x2b
- }
- }
-};
-
-int main()
-{ unsigned int i, j, key_len = 256;
- unsigned char key[256];
-
- printf("\nTest of RFC2898 Password Based Key Derivation");
- for(i = 0; i < 5; ++i)
- {
- derive_key(tests[i].pwd, tests[i].pwd_len, tests[i].salt,
- tests[i].salt_len, tests[i].it_count, key, key_len);
-
- printf("\ntest %i: ", i + 1);
- printf("key %s", memcmp(tests[i].key, key, 16) ? "is bad" : "is good");
- for(j = 0; j < key_len && j < 64; j += 4)
- {
- if(j % 16 == 0)
- printf("\n");
- printf("0x%02x%02x%02x%02x ", key[j], key[j + 1], key[j + 2], key[j + 3]);
- }
- printf(j < key_len ? " ... \n" : "\n");
- }
- printf("\n");
- return 0;
-}
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/pwd2key.h b/ios/RCTPushy/SSZipArchive/aes/pwd2key.h
deleted file mode 100755
index 99c1ecc..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/pwd2key.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 26/08/2003
-
- This is an implementation of RFC2898, which specifies key derivation from
- a password and a salt value.
-*/
-
-#ifndef PWD2KEY_H
-#define PWD2KEY_H
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-void derive_key(
- const unsigned char pwd[], /* the PASSWORD, and */
- unsigned int pwd_len, /* its length */
- const unsigned char salt[], /* the SALT and its */
- unsigned int salt_len, /* length */
- unsigned int iter, /* the number of iterations */
- unsigned char key[], /* space for the output key */
- unsigned int key_len); /* and its required length */
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/sha1.c b/ios/RCTPushy/SSZipArchive/aes/sha1.c
deleted file mode 100755
index 0fbf05e..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/sha1.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 01/08/2005
-
- This is a byte oriented version of SHA1 that operates on arrays of bytes
- stored in memory.
-*/
-
-#include /* for memcpy() etc. */
-
-#include "sha1.h"
-#include "brg_endian.h"
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-#if defined( _MSC_VER ) && ( _MSC_VER > 800 )
-#pragma intrinsic(memcpy)
-#endif
-
-#if 0 && defined(_MSC_VER)
-#define rotl32 _lrotl
-#define rotr32 _lrotr
-#else
-#define rotl32(x,n) (((x) << n) | ((x) >> (32 - n)))
-#define rotr32(x,n) (((x) >> n) | ((x) << (32 - n)))
-#endif
-
-#if !defined(bswap_32)
-#define bswap_32(x) ((rotr32((x), 24) & 0x00ff00ff) | (rotr32((x), 8) & 0xff00ff00))
-#endif
-
-#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
-#define SWAP_BYTES
-#else
-#undef SWAP_BYTES
-#endif
-
-#if defined(SWAP_BYTES)
-#define bsw_32(p,n) \
- { int _i = (n); while(_i--) ((uint_32t*)p)[_i] = bswap_32(((uint_32t*)p)[_i]); }
-#else
-#define bsw_32(p,n)
-#endif
-
-#define SHA1_MASK (SHA1_BLOCK_SIZE - 1)
-
-#if 0
-
-#define ch(x,y,z) (((x) & (y)) ^ (~(x) & (z)))
-#define parity(x,y,z) ((x) ^ (y) ^ (z))
-#define maj(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
-
-#else /* Discovered by Rich Schroeppel and Colin Plumb */
-
-#define ch(x,y,z) ((z) ^ ((x) & ((y) ^ (z))))
-#define parity(x,y,z) ((x) ^ (y) ^ (z))
-#define maj(x,y,z) (((x) & (y)) | ((z) & ((x) ^ (y))))
-
-#endif
-
-/* Compile 64 bytes of hash data into SHA1 context. Note */
-/* that this routine assumes that the byte order in the */
-/* ctx->wbuf[] at this point is in such an order that low */
-/* address bytes in the ORIGINAL byte stream will go in */
-/* this buffer to the high end of 32-bit words on BOTH big */
-/* and little endian systems */
-
-#ifdef ARRAY
-#define q(v,n) v[n]
-#else
-#define q(v,n) v##n
-#endif
-
-#define one_cycle(v,a,b,c,d,e,f,k,h) \
- q(v,e) += rotr32(q(v,a),27) + \
- f(q(v,b),q(v,c),q(v,d)) + k + h; \
- q(v,b) = rotr32(q(v,b), 2)
-
-#define five_cycle(v,f,k,i) \
- one_cycle(v, 0,1,2,3,4, f,k,hf(i )); \
- one_cycle(v, 4,0,1,2,3, f,k,hf(i+1)); \
- one_cycle(v, 3,4,0,1,2, f,k,hf(i+2)); \
- one_cycle(v, 2,3,4,0,1, f,k,hf(i+3)); \
- one_cycle(v, 1,2,3,4,0, f,k,hf(i+4))
-
-VOID_RETURN sha1_compile(sha1_ctx ctx[1])
-{ uint_32t *w = ctx->wbuf;
-
-#ifdef ARRAY
- uint_32t v[5];
- memcpy(v, ctx->hash, 5 * sizeof(uint_32t));
-#else
- uint_32t v0, v1, v2, v3, v4;
- v0 = ctx->hash[0]; v1 = ctx->hash[1];
- v2 = ctx->hash[2]; v3 = ctx->hash[3];
- v4 = ctx->hash[4];
-#endif
-
-#define hf(i) w[i]
-
- five_cycle(v, ch, 0x5a827999, 0);
- five_cycle(v, ch, 0x5a827999, 5);
- five_cycle(v, ch, 0x5a827999, 10);
- one_cycle(v,0,1,2,3,4, ch, 0x5a827999, hf(15)); \
-
-#undef hf
-#define hf(i) (w[(i) & 15] = rotl32( \
- w[((i) + 13) & 15] ^ w[((i) + 8) & 15] \
- ^ w[((i) + 2) & 15] ^ w[(i) & 15], 1))
-
- one_cycle(v,4,0,1,2,3, ch, 0x5a827999, hf(16));
- one_cycle(v,3,4,0,1,2, ch, 0x5a827999, hf(17));
- one_cycle(v,2,3,4,0,1, ch, 0x5a827999, hf(18));
- one_cycle(v,1,2,3,4,0, ch, 0x5a827999, hf(19));
-
- five_cycle(v, parity, 0x6ed9eba1, 20);
- five_cycle(v, parity, 0x6ed9eba1, 25);
- five_cycle(v, parity, 0x6ed9eba1, 30);
- five_cycle(v, parity, 0x6ed9eba1, 35);
-
- five_cycle(v, maj, 0x8f1bbcdc, 40);
- five_cycle(v, maj, 0x8f1bbcdc, 45);
- five_cycle(v, maj, 0x8f1bbcdc, 50);
- five_cycle(v, maj, 0x8f1bbcdc, 55);
-
- five_cycle(v, parity, 0xca62c1d6, 60);
- five_cycle(v, parity, 0xca62c1d6, 65);
- five_cycle(v, parity, 0xca62c1d6, 70);
- five_cycle(v, parity, 0xca62c1d6, 75);
-
-#ifdef ARRAY
- ctx->hash[0] += v[0]; ctx->hash[1] += v[1];
- ctx->hash[2] += v[2]; ctx->hash[3] += v[3];
- ctx->hash[4] += v[4];
-#else
- ctx->hash[0] += v0; ctx->hash[1] += v1;
- ctx->hash[2] += v2; ctx->hash[3] += v3;
- ctx->hash[4] += v4;
-#endif
-}
-
-VOID_RETURN sha1_begin(sha1_ctx ctx[1])
-{
- ctx->count[0] = ctx->count[1] = 0;
- ctx->hash[0] = 0x67452301;
- ctx->hash[1] = 0xefcdab89;
- ctx->hash[2] = 0x98badcfe;
- ctx->hash[3] = 0x10325476;
- ctx->hash[4] = 0xc3d2e1f0;
-}
-
-/* SHA1 hash data in an array of bytes into hash buffer and */
-/* call the hash_compile function as required. */
-
-VOID_RETURN sha1_hash(const unsigned char data[], unsigned long len, sha1_ctx ctx[1])
-{ uint_32t pos = (uint_32t)(ctx->count[0] & SHA1_MASK),
- space = SHA1_BLOCK_SIZE - pos;
- const unsigned char *sp = data;
-
- if((ctx->count[0] += len) < len)
- ++(ctx->count[1]);
-
- while(len >= space) /* tranfer whole blocks if possible */
- {
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space);
- sp += space; len -= space; space = SHA1_BLOCK_SIZE; pos = 0;
- bsw_32(ctx->wbuf, SHA1_BLOCK_SIZE >> 2);
- sha1_compile(ctx);
- }
-
- memcpy(((unsigned char*)ctx->wbuf) + pos, sp, len);
-}
-
-/* SHA1 final padding and digest calculation */
-
-VOID_RETURN sha1_end(unsigned char hval[], sha1_ctx ctx[1])
-{ uint_32t i = (uint_32t)(ctx->count[0] & SHA1_MASK);
-
- /* put bytes in the buffer in an order in which references to */
- /* 32-bit words will put bytes with lower addresses into the */
- /* top of 32 bit words on BOTH big and little endian machines */
- bsw_32(ctx->wbuf, (i + 3) >> 2);
-
- /* we now need to mask valid bytes and add the padding which is */
- /* a single 1 bit and as many zero bits as necessary. Note that */
- /* we can always add the first padding byte here because the */
- /* buffer always has at least one empty slot */
- ctx->wbuf[i >> 2] &= 0xffffff80 << 8 * (~i & 3);
- ctx->wbuf[i >> 2] |= 0x00000080 << 8 * (~i & 3);
-
- /* we need 9 or more empty positions, one for the padding byte */
- /* (above) and eight for the length count. If there is not */
- /* enough space, pad and empty the buffer */
- if(i > SHA1_BLOCK_SIZE - 9)
- {
- if(i < 60) ctx->wbuf[15] = 0;
- sha1_compile(ctx);
- i = 0;
- }
- else /* compute a word index for the empty buffer positions */
- i = (i >> 2) + 1;
-
- while(i < 14) /* and zero pad all but last two positions */
- ctx->wbuf[i++] = 0;
-
- /* the following 32-bit length fields are assembled in the */
- /* wrong byte order on little endian machines but this is */
- /* corrected later since they are only ever used as 32-bit */
- /* word values. */
- ctx->wbuf[14] = (ctx->count[1] << 3) | (ctx->count[0] >> 29);
- ctx->wbuf[15] = ctx->count[0] << 3;
- sha1_compile(ctx);
-
- /* extract the hash value as bytes in case the hash buffer is */
- /* misaligned for 32-bit words */
- for(i = 0; i < SHA1_DIGEST_SIZE; ++i)
- hval[i] = (unsigned char)(ctx->hash[i >> 2] >> (8 * (~i & 3)));
-}
-
-VOID_RETURN sha1(unsigned char hval[], const unsigned char data[], unsigned long len)
-{ sha1_ctx cx[1];
-
- sha1_begin(cx); sha1_hash(data, len, cx); sha1_end(hval, cx);
-}
-
-#if defined(__cplusplus)
-}
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/aes/sha1.h b/ios/RCTPushy/SSZipArchive/aes/sha1.h
deleted file mode 100755
index bace6af..0000000
--- a/ios/RCTPushy/SSZipArchive/aes/sha1.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- ---------------------------------------------------------------------------
- Copyright (c) 2002, Dr Brian Gladman, Worcester, UK. All rights reserved.
-
- LICENSE TERMS
-
- The free distribution and use of this software in both source and binary
- form is allowed (with or without changes) provided that:
-
- 1. distributions of this source code include the above copyright
- notice, this list of conditions and the following disclaimer;
-
- 2. distributions in binary form include the above copyright
- notice, this list of conditions and the following disclaimer
- in the documentation and/or other associated materials;
-
- 3. the copyright holder's name is not used to endorse products
- built using this software without specific written permission.
-
- ALTERNATIVELY, provided that this notice is retained in full, this product
- may be distributed under the terms of the GNU General Public License (GPL),
- in which case the provisions of the GPL apply INSTEAD OF those given above.
-
- DISCLAIMER
-
- This software is provided 'as is' with no explicit or implied warranties
- in respect of its properties, including, but not limited to, correctness
- and/or fitness for purpose.
- ---------------------------------------------------------------------------
- Issue Date: 01/08/2005
-*/
-
-#ifndef _SHA1_H
-#define _SHA1_H
-
-#include
-#include "brg_types.h"
-
-#define SHA1_BLOCK_SIZE 64
-#define SHA1_DIGEST_SIZE 20
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* type to hold the SHA256 context */
-
-typedef struct
-{ uint_32t count[2];
- uint_32t hash[5];
- uint_32t wbuf[16];
-} sha1_ctx;
-
-/* Note that these prototypes are the same for both bit and */
-/* byte oriented implementations. However the length fields */
-/* are in bytes or bits as appropriate for the version used */
-/* and bit sequences are input as arrays of bytes in which */
-/* bit sequences run from the most to the least significant */
-/* end of each byte */
-
-VOID_RETURN sha1_compile(sha1_ctx ctx[1]);
-
-VOID_RETURN sha1_begin(sha1_ctx ctx[1]);
-VOID_RETURN sha1_hash(const unsigned char data[], unsigned long len, sha1_ctx ctx[1]);
-VOID_RETURN sha1_end(unsigned char hval[], sha1_ctx ctx[1]);
-VOID_RETURN sha1(unsigned char hval[], const unsigned char data[], unsigned long len);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/minizip/crypt.h b/ios/RCTPushy/SSZipArchive/minizip/crypt.h
deleted file mode 100755
index 46c63fb..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/crypt.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* crypt.h -- base code for traditional PKWARE encryption
- Version 1.01e, February 12th, 2005
-
- Copyright (C) 1998-2005 Gilles Vollant
- Modifications for Info-ZIP crypting
- Copyright (C) 2003 Terry Thorsen
-
- This code is a modified version of crypting code in Info-ZIP distribution
-
- Copyright (C) 1990-2000 Info-ZIP. All rights reserved.
-
- See the Info-ZIP LICENSE file version 2000-Apr-09 or later for terms of use
- which also may be found at: ftp://ftp.info-zip.org/pub/infozip/license.html
-
- The encryption/decryption parts of this source code (as opposed to the
- non-echoing password parts) were originally written in Europe. The
- whole source package can be freely distributed, including from the USA.
- (Prior to January 2000, re-export from the US was a violation of US law.)
-
- This encryption code is a direct transcription of the algorithm from
- Roger Schlafly, described by Phil Katz in the file appnote.txt. This
- file (appnote.txt) is distributed with the PKZIP program (even in the
- version without encryption capabilities).
-
- If you don't need crypting in your application, just define symbols
- NOCRYPT and NOUNCRYPT.
-*/
-
-#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
-
-/***********************************************************************
- * Return the next byte in the pseudo-random sequence
- */
-static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
-{
- unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
- * unpredictable manner on 16-bit systems; not a problem
- * with any known compiler so far, though */
-
- temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
- return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
-}
-
-/***********************************************************************
- * Update the encryption keys with the next byte of plain text
- */
-static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c)
-{
- (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
- (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
- (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
- {
- register int keyshift = (int)((*(pkeys+1)) >> 24);
- (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
- }
- return c;
-}
-
-
-/***********************************************************************
- * Initialize the encryption keys and the random header according to
- * the given password.
- */
-static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab)
-{
- *(pkeys+0) = 305419896L;
- *(pkeys+1) = 591751049L;
- *(pkeys+2) = 878082192L;
- while (*passwd != 0) {
- update_keys(pkeys,pcrc_32_tab,(int)*passwd);
- passwd++;
- }
-}
-
-#define zdecode(pkeys,pcrc_32_tab,c) \
- (update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
-
-#define zencode(pkeys,pcrc_32_tab,c,t) \
- (t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
-
-#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
-
-#define RAND_HEAD_LEN 12
- /* "last resort" source for second part of crypt seed pattern */
-# ifndef ZCR_SEED2
-# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
-# endif
-
-static int crypthead(const char* passwd, /* password string */
- unsigned char* buf, /* where to write header */
- int bufSize,
- unsigned long* pkeys,
- const unsigned long* pcrc_32_tab,
- unsigned long crcForCrypting)
-{
- int n; /* index in random header */
- int t; /* temporary */
- int c; /* random byte */
- unsigned char header[RAND_HEAD_LEN-2]; /* random header */
- static unsigned calls = 0; /* ensure different random header each time */
-
- if (bufSize> 7) & 0xff;
- header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
- }
- /* Encrypt random header (last two bytes is high word of crc) */
- init_keys(passwd, pkeys, pcrc_32_tab);
- for (n = 0; n < RAND_HEAD_LEN-2; n++)
- {
- buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
- }
- buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
- buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
- return n;
-}
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/minizip/ioapi.c b/ios/RCTPushy/SSZipArchive/minizip/ioapi.c
deleted file mode 100755
index 857f7b9..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/ioapi.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/* ioapi.h -- IO base function header for compress/uncompress .zip
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications for Zip64 support
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
-*/
-
-#include
-#include
-
-#include "ioapi.h"
-
-#if defined(_WIN32)
-# define snprintf _snprintf
-#endif
-
-#ifdef __APPLE__
-/* In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions */
-# define FOPEN_FUNC(filename, mode) fopen(filename, mode)
-# define FTELLO_FUNC(stream) ftello(stream)
-# define FSEEKO_FUNC(stream, offset, origin) fseeko(stream, offset, origin)
-#else
-# define FOPEN_FUNC(filename, mode) fopen64(filename, mode)
-# define FTELLO_FUNC(stream) ftello64(stream)
-# define FSEEKO_FUNC(stream, offset, origin) fseeko64(stream, offset, origin)
-#endif
-
-/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
-#ifndef SEEK_CUR
-# define SEEK_CUR 1
-#endif
-#ifndef SEEK_END
-# define SEEK_END 2
-#endif
-#ifndef SEEK_SET
-# define SEEK_SET 0
-#endif
-
-voidpf call_zopen64 (const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode)
-{
- if (pfilefunc->zfile_func64.zopen64_file != NULL)
- return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode);
- return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode);
-}
-
-voidpf call_zopendisk64 OF((const zlib_filefunc64_32_def* pfilefunc, voidpf filestream, int number_disk, int mode))
-{
- if (pfilefunc->zfile_func64.zopendisk64_file != NULL)
- return (*(pfilefunc->zfile_func64.zopendisk64_file)) (pfilefunc->zfile_func64.opaque,filestream,number_disk,mode);
- return (*(pfilefunc->zopendisk32_file))(pfilefunc->zfile_func64.opaque,filestream,number_disk,mode);
-}
-
-long call_zseek64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin)
-{
- uLong offsetTruncated;
- if (pfilefunc->zfile_func64.zseek64_file != NULL)
- return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin);
- offsetTruncated = (uLong)offset;
- if (offsetTruncated != offset)
- return -1;
- return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin);
-}
-
-ZPOS64_T call_ztell64 (const zlib_filefunc64_32_def* pfilefunc,voidpf filestream)
-{
- uLong tell_uLong;
- if (pfilefunc->zfile_func64.zseek64_file != NULL)
- return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream);
- tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);
- if ((tell_uLong) == 0xffffffff)
- return (ZPOS64_T)-1;
- return tell_uLong;
-}
-
-void fill_zlib_filefunc64_32_def_from_filefunc32(zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32)
-{
- p_filefunc64_32->zfile_func64.zopen64_file = NULL;
- p_filefunc64_32->zfile_func64.zopendisk64_file = NULL;
- p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file;
- p_filefunc64_32->zopendisk32_file = p_filefunc32->zopendisk_file;
- p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;
- p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file;
- p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file;
- p_filefunc64_32->zfile_func64.ztell64_file = NULL;
- p_filefunc64_32->zfile_func64.zseek64_file = NULL;
- p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file;
- p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;
- p_filefunc64_32->zfile_func64.opaque = p_filefunc32->opaque;
- p_filefunc64_32->zseek32_file = p_filefunc32->zseek_file;
- p_filefunc64_32->ztell32_file = p_filefunc32->ztell_file;
-}
-
-static voidpf ZCALLBACK fopen_file_func OF((voidpf opaque, const char* filename, int mode));
-static uLong ZCALLBACK fread_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size));
-static uLong ZCALLBACK fwrite_file_func OF((voidpf opaque, voidpf stream, const void* buf,uLong size));
-static ZPOS64_T ZCALLBACK ftell64_file_func OF((voidpf opaque, voidpf stream));
-static long ZCALLBACK fseek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
-static int ZCALLBACK fclose_file_func OF((voidpf opaque, voidpf stream));
-static int ZCALLBACK ferror_file_func OF((voidpf opaque, voidpf stream));
-
-typedef struct
-{
- FILE *file;
- int filenameLength;
- void *filename;
-} FILE_IOPOSIX;
-
-static voidpf file_build_ioposix(FILE *file, const char *filename)
-{
- FILE_IOPOSIX *ioposix = NULL;
- if (file == NULL)
- return NULL;
- ioposix = (FILE_IOPOSIX*)malloc(sizeof(FILE_IOPOSIX));
- ioposix->file = file;
- ioposix->filenameLength = (int)strlen(filename) + 1;
- ioposix->filename = (char*)malloc(ioposix->filenameLength * sizeof(char));
- strncpy(ioposix->filename, filename, ioposix->filenameLength);
- return (voidpf)ioposix;
-}
-
-static voidpf ZCALLBACK fopen_file_func (voidpf opaque, const char* filename, int mode)
-{
- FILE* file = NULL;
- const char* mode_fopen = NULL;
- if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER) == ZLIB_FILEFUNC_MODE_READ)
- mode_fopen = "rb";
- else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
- mode_fopen = "r+b";
- else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
- mode_fopen = "wb";
-
- if ((filename != NULL) && (mode_fopen != NULL))
- {
- file = fopen(filename, mode_fopen);
- return file_build_ioposix(file, filename);
- }
- return file;
-}
-
-static voidpf ZCALLBACK fopen64_file_func (voidpf opaque, const void* filename, int mode)
-{
- FILE* file = NULL;
- const char* mode_fopen = NULL;
- if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER) == ZLIB_FILEFUNC_MODE_READ)
- mode_fopen = "rb";
- else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
- mode_fopen = "r+b";
- else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
- mode_fopen = "wb";
-
- if ((filename != NULL) && (mode_fopen != NULL))
- {
- file = FOPEN_FUNC((const char*)filename, mode_fopen);
- return file_build_ioposix(file, (const char*)filename);
- }
- return file;
-}
-
-static voidpf ZCALLBACK fopendisk64_file_func (voidpf opaque, voidpf stream, int number_disk, int mode)
-{
- FILE_IOPOSIX *ioposix = NULL;
- char *diskFilename = NULL;
- voidpf ret = NULL;
- int i = 0;
-
- if (stream == NULL)
- return NULL;
- ioposix = (FILE_IOPOSIX*)stream;
- diskFilename = (char*)malloc(ioposix->filenameLength * sizeof(char));
- strncpy(diskFilename, ioposix->filename, ioposix->filenameLength);
- for (i = ioposix->filenameLength - 1; i >= 0; i -= 1)
- {
- if (diskFilename[i] != '.')
- continue;
- snprintf(&diskFilename[i], ioposix->filenameLength - i, ".z%02d", number_disk + 1);
- break;
- }
- if (i >= 0)
- ret = fopen64_file_func(opaque, diskFilename, mode);
- free(diskFilename);
- return ret;
-}
-
-static voidpf ZCALLBACK fopendisk_file_func (voidpf opaque, voidpf stream, int number_disk, int mode)
-{
- FILE_IOPOSIX *ioposix = NULL;
- char *diskFilename = NULL;
- voidpf ret = NULL;
- int i = 0;
-
- if (stream == NULL)
- return NULL;
- ioposix = (FILE_IOPOSIX*)stream;
- diskFilename = (char*)malloc(ioposix->filenameLength * sizeof(char));
- strncpy(diskFilename, ioposix->filename, ioposix->filenameLength);
- for (i = ioposix->filenameLength - 1; i >= 0; i -= 1)
- {
- if (diskFilename[i] != '.')
- continue;
- snprintf(&diskFilename[i], ioposix->filenameLength - i, ".z%02d", number_disk + 1);
- break;
- }
- if (i >= 0)
- ret = fopen_file_func(opaque, diskFilename, mode);
- free(diskFilename);
- return ret;
-}
-
-static uLong ZCALLBACK fread_file_func (voidpf opaque, voidpf stream, void* buf, uLong size)
-{
- FILE_IOPOSIX *ioposix = NULL;
- uLong ret;
- if (stream == NULL)
- return -1;
- ioposix = (FILE_IOPOSIX*)stream;
- ret = (uLong)fread(buf, 1, (size_t)size, ioposix->file);
- return ret;
-}
-
-static uLong ZCALLBACK fwrite_file_func (voidpf opaque, voidpf stream, const void* buf, uLong size)
-{
- FILE_IOPOSIX *ioposix = NULL;
- uLong ret;
- if (stream == NULL)
- return -1;
- ioposix = (FILE_IOPOSIX*)stream;
- ret = (uLong)fwrite(buf, 1, (size_t)size, ioposix->file);
- return ret;
-}
-
-static long ZCALLBACK ftell_file_func (voidpf opaque, voidpf stream)
-{
- FILE_IOPOSIX *ioposix = NULL;
- long ret = -1;
- if (stream == NULL)
- return ret;
- ioposix = (FILE_IOPOSIX*)stream;
- ret = ftell(ioposix->file);
- return ret;
-}
-
-static ZPOS64_T ZCALLBACK ftell64_file_func (voidpf opaque, voidpf stream)
-{
- FILE_IOPOSIX *ioposix = NULL;
- ZPOS64_T ret = -1;
- if (stream == NULL)
- return ret;
- ioposix = (FILE_IOPOSIX*)stream;
- ret = FTELLO_FUNC(ioposix->file);
- return ret;
-}
-
-static long ZCALLBACK fseek_file_func (voidpf opaque, voidpf stream, uLong offset, int origin)
-{
- FILE_IOPOSIX *ioposix = NULL;
- int fseek_origin = 0;
- long ret = 0;
-
- if (stream == NULL)
- return -1;
- ioposix = (FILE_IOPOSIX*)stream;
-
- switch (origin)
- {
- case ZLIB_FILEFUNC_SEEK_CUR:
- fseek_origin = SEEK_CUR;
- break;
- case ZLIB_FILEFUNC_SEEK_END:
- fseek_origin = SEEK_END;
- break;
- case ZLIB_FILEFUNC_SEEK_SET:
- fseek_origin = SEEK_SET;
- break;
- default:
- return -1;
- }
- if (fseek(ioposix->file, offset, fseek_origin) != 0)
- ret = -1;
- return ret;
-}
-
-static long ZCALLBACK fseek64_file_func (voidpf opaque, voidpf stream, ZPOS64_T offset, int origin)
-{
- FILE_IOPOSIX *ioposix = NULL;
- int fseek_origin = 0;
- long ret = 0;
-
- if (stream == NULL)
- return -1;
- ioposix = (FILE_IOPOSIX*)stream;
-
- switch (origin)
- {
- case ZLIB_FILEFUNC_SEEK_CUR:
- fseek_origin = SEEK_CUR;
- break;
- case ZLIB_FILEFUNC_SEEK_END:
- fseek_origin = SEEK_END;
- break;
- case ZLIB_FILEFUNC_SEEK_SET:
- fseek_origin = SEEK_SET;
- break;
- default:
- return -1;
- }
-
- if(FSEEKO_FUNC(ioposix->file, offset, fseek_origin) != 0)
- ret = -1;
-
- return ret;
-}
-
-
-static int ZCALLBACK fclose_file_func (voidpf opaque, voidpf stream)
-{
- FILE_IOPOSIX *ioposix = NULL;
- int ret = -1;
- if (stream == NULL)
- return ret;
- ioposix = (FILE_IOPOSIX*)stream;
- if (ioposix->filename != NULL)
- free(ioposix->filename);
- ret = fclose(ioposix->file);
- free(ioposix);
- return ret;
-}
-
-static int ZCALLBACK ferror_file_func (voidpf opaque, voidpf stream)
-{
- FILE_IOPOSIX *ioposix = NULL;
- int ret = -1;
- if (stream == NULL)
- return ret;
- ioposix = (FILE_IOPOSIX*)stream;
- ret = ferror(ioposix->file);
- return ret;
-}
-
-void fill_fopen_filefunc (zlib_filefunc_def* pzlib_filefunc_def)
-{
- pzlib_filefunc_def->zopen_file = fopen_file_func;
- pzlib_filefunc_def->zopendisk_file = fopendisk_file_func;
- pzlib_filefunc_def->zread_file = fread_file_func;
- pzlib_filefunc_def->zwrite_file = fwrite_file_func;
- pzlib_filefunc_def->ztell_file = ftell_file_func;
- pzlib_filefunc_def->zseek_file = fseek_file_func;
- pzlib_filefunc_def->zclose_file = fclose_file_func;
- pzlib_filefunc_def->zerror_file = ferror_file_func;
- pzlib_filefunc_def->opaque = NULL;
-}
-
-void fill_fopen64_filefunc (zlib_filefunc64_def* pzlib_filefunc_def)
-{
- pzlib_filefunc_def->zopen64_file = fopen64_file_func;
- pzlib_filefunc_def->zopendisk64_file = fopendisk64_file_func;
- pzlib_filefunc_def->zread_file = fread_file_func;
- pzlib_filefunc_def->zwrite_file = fwrite_file_func;
- pzlib_filefunc_def->ztell64_file = ftell64_file_func;
- pzlib_filefunc_def->zseek64_file = fseek64_file_func;
- pzlib_filefunc_def->zclose_file = fclose_file_func;
- pzlib_filefunc_def->zerror_file = ferror_file_func;
- pzlib_filefunc_def->opaque = NULL;
-}
diff --git a/ios/RCTPushy/SSZipArchive/minizip/ioapi.h b/ios/RCTPushy/SSZipArchive/minizip/ioapi.h
deleted file mode 100755
index 742fae5..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/ioapi.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ioapi.h -- IO base function header for compress/uncompress .zip
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications for Zip64 support
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
-*/
-
-#ifndef _ZLIBIOAPI64_H
-#define _ZLIBIOAPI64_H
-
-#if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__))
-# ifndef __USE_FILE_OFFSET64
-# define __USE_FILE_OFFSET64
-# endif
-# ifndef __USE_LARGEFILE64
-# define __USE_LARGEFILE64
-# endif
-# ifndef _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE
-# endif
-# ifndef _FILE_OFFSET_BIT
-# define _FILE_OFFSET_BIT 64
-# endif
-#endif
-
-#include
-#include
-#include "zlib.h"
-
-#if defined(USE_FILE32API)
-# define fopen64 fopen
-# define ftello64 ftell
-# define fseeko64 fseek
-#else
-# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
-# define fopen64 fopen
-# define ftello64 ftello
-# define fseeko64 fseeko
-# endif
-# ifdef _MSC_VER
-# define fopen64 fopen
-# if (_MSC_VER >= 1400) && (!(defined(NO_MSCVER_FILE64_FUNC)))
-# define ftello64 _ftelli64
-# define fseeko64 _fseeki64
-# else /* old MSC */
-# define ftello64 ftell
-# define fseeko64 fseek
-# endif
-# endif
-#endif
-
-/* a type choosen by DEFINE */
-#ifdef HAVE_64BIT_INT_CUSTOM
-typedef 64BIT_INT_CUSTOM_TYPE ZPOS64_T;
-#else
-# ifdef HAS_STDINT_H
-# include "stdint.h"
- typedef uint64_t ZPOS64_T;
-# else
-# if defined(_MSC_VER) || defined(__BORLANDC__)
- typedef unsigned __int64 ZPOS64_T;
-# else
- typedef unsigned long long int ZPOS64_T;
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_FILEFUNC_SEEK_CUR (1)
-#define ZLIB_FILEFUNC_SEEK_END (2)
-#define ZLIB_FILEFUNC_SEEK_SET (0)
-
-#define ZLIB_FILEFUNC_MODE_READ (1)
-#define ZLIB_FILEFUNC_MODE_WRITE (2)
-#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
-#define ZLIB_FILEFUNC_MODE_EXISTING (4)
-#define ZLIB_FILEFUNC_MODE_CREATE (8)
-
-#ifndef ZCALLBACK
-# if (defined(WIN32) || defined(_WIN32) || defined (WINDOWS) || \
- defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
-# define ZCALLBACK CALLBACK
-# else
-# define ZCALLBACK
-# endif
-#endif
-
-typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
-typedef voidpf (ZCALLBACK *opendisk_file_func) OF((voidpf opaque, voidpf stream, int number_disk, int mode));
-typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
-typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
-typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
-typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
-
-typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
-typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
-
-/* here is the "old" 32 bits structure structure */
-typedef struct zlib_filefunc_def_s
-{
- open_file_func zopen_file;
- opendisk_file_func zopendisk_file;
- read_file_func zread_file;
- write_file_func zwrite_file;
- tell_file_func ztell_file;
- seek_file_func zseek_file;
- close_file_func zclose_file;
- testerror_file_func zerror_file;
- voidpf opaque;
-} zlib_filefunc_def;
-
-typedef ZPOS64_T (ZCALLBACK *tell64_file_func) OF((voidpf opaque, voidpf stream));
-typedef long (ZCALLBACK *seek64_file_func) OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
-typedef voidpf (ZCALLBACK *open64_file_func) OF((voidpf opaque, const void* filename, int mode));
-typedef voidpf (ZCALLBACK *opendisk64_file_func)OF((voidpf opaque, voidpf stream, int number_disk, int mode));
-
-typedef struct zlib_filefunc64_def_s
-{
- open64_file_func zopen64_file;
- opendisk64_file_func zopendisk64_file;
- read_file_func zread_file;
- write_file_func zwrite_file;
- tell64_file_func ztell64_file;
- seek64_file_func zseek64_file;
- close_file_func zclose_file;
- testerror_file_func zerror_file;
- voidpf opaque;
-} zlib_filefunc64_def;
-
-void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
-void fill_fopen64_filefunc OF((zlib_filefunc64_def* pzlib_filefunc_def));
-
-/* now internal definition, only for zip.c and unzip.h */
-typedef struct zlib_filefunc64_32_def_s
-{
- zlib_filefunc64_def zfile_func64;
- open_file_func zopen32_file;
- opendisk_file_func zopendisk32_file;
- tell_file_func ztell32_file;
- seek_file_func zseek32_file;
-} zlib_filefunc64_32_def;
-
-#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
-#define ZWRITE64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zwrite_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
-/*#define ZTELL64(filefunc,filestream) ((*((filefunc).ztell64_file)) ((filefunc).opaque,filestream))*/
-/*#define ZSEEK64(filefunc,filestream,pos,mode) ((*((filefunc).zseek64_file)) ((filefunc).opaque,filestream,pos,mode))*/
-#define ZCLOSE64(filefunc,filestream) ((*((filefunc).zfile_func64.zclose_file)) ((filefunc).zfile_func64.opaque,filestream))
-#define ZERROR64(filefunc,filestream) ((*((filefunc).zfile_func64.zerror_file)) ((filefunc).zfile_func64.opaque,filestream))
-
-voidpf call_zopen64 OF((const zlib_filefunc64_32_def* pfilefunc,const void*filename,int mode));
-voidpf call_zopendisk64 OF((const zlib_filefunc64_32_def* pfilefunc, voidpf filestream, int number_disk, int mode));
-long call_zseek64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream, ZPOS64_T offset, int origin));
-ZPOS64_T call_ztell64 OF((const zlib_filefunc64_32_def* pfilefunc,voidpf filestream));
-
-void fill_zlib_filefunc64_32_def_from_filefunc32 OF((zlib_filefunc64_32_def* p_filefunc64_32,const zlib_filefunc_def* p_filefunc32));
-
-#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode)))
-#define ZOPENDISK64(filefunc,filestream,diskn,mode) (call_zopendisk64((&(filefunc)),(filestream),(diskn),(mode)))
-#define ZTELL64(filefunc,filestream) (call_ztell64((&(filefunc)),(filestream)))
-#define ZSEEK64(filefunc,filestream,pos,mode) (call_zseek64((&(filefunc)),(filestream),(pos),(mode)))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/minizip/mztools.c b/ios/RCTPushy/SSZipArchive/minizip/mztools.c
deleted file mode 100755
index 80d50e0..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/mztools.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- Additional tools for Minizip
- Code: Xavier Roche '2004
- License: Same as ZLIB (www.gzip.org)
-*/
-
-/* Code */
-#include
-#include
-#include
-#include "zlib.h"
-#include "unzip.h"
-#include "mztools.h"
-
-#define READ_8(adr) ((unsigned char)*(adr))
-#define READ_16(adr) ( READ_8(adr) | (READ_8(adr+1) << 8) )
-#define READ_32(adr) ( READ_16(adr) | (READ_16((adr)+2) << 16) )
-
-#define WRITE_8(buff, n) do { \
- *((unsigned char*)(buff)) = (unsigned char) ((n) & 0xff); \
-} while(0)
-#define WRITE_16(buff, n) do { \
- WRITE_8((unsigned char*)(buff), n); \
- WRITE_8(((unsigned char*)(buff)) + 1, (n) >> 8); \
-} while(0)
-#define WRITE_32(buff, n) do { \
- WRITE_16((unsigned char*)(buff), (n) & 0xffff); \
- WRITE_16((unsigned char*)(buff) + 2, (n) >> 16); \
-} while(0)
-
-extern int ZEXPORT unzRepair(file, fileOut, fileOutTmp, nRecovered, bytesRecovered)
-const char* file;
-const char* fileOut;
-const char* fileOutTmp;
-uLong* nRecovered;
-uLong* bytesRecovered;
-{
- int err = Z_OK;
- FILE* fpZip = fopen(file, "rb");
- FILE* fpOut = fopen(fileOut, "wb");
- FILE* fpOutCD = fopen(fileOutTmp, "wb");
- if (fpZip != NULL && fpOut != NULL) {
- int entries = 0;
- uLong totalBytes = 0;
- char header[30];
- char filename[256];
- char extra[1024];
- int offset = 0;
- int offsetCD = 0;
- while ( fread(header, 1, 30, fpZip) == 30 ) {
- int currentOffset = offset;
-
- /* File entry */
- if (READ_32(header) == 0x04034b50) {
- unsigned int version = READ_16(header + 4);
- unsigned int gpflag = READ_16(header + 6);
- unsigned int method = READ_16(header + 8);
- unsigned int filetime = READ_16(header + 10);
- unsigned int filedate = READ_16(header + 12);
- unsigned int crc = READ_32(header + 14); /* crc */
- unsigned int cpsize = READ_32(header + 18); /* compressed size */
- unsigned int uncpsize = READ_32(header + 22); /* uncompressed sz */
- unsigned int fnsize = READ_16(header + 26); /* file name length */
- unsigned int extsize = READ_16(header + 28); /* extra field length */
- filename[0] = extra[0] = '\0';
-
- /* Header */
- if (fwrite(header, 1, 30, fpOut) == 30) {
- offset += 30;
- } else {
- err = Z_ERRNO;
- break;
- }
-
- /* Filename */
- if (fnsize > 0) {
- if (fread(filename, 1, fnsize, fpZip) == fnsize) {
- if (fwrite(filename, 1, fnsize, fpOut) == fnsize) {
- offset += fnsize;
- } else {
- err = Z_ERRNO;
- break;
- }
- } else {
- err = Z_ERRNO;
- break;
- }
- } else {
- err = Z_STREAM_ERROR;
- break;
- }
-
- /* Extra field */
- if (extsize > 0) {
- if (fread(extra, 1, extsize, fpZip) == extsize) {
- if (fwrite(extra, 1, extsize, fpOut) == extsize) {
- offset += extsize;
- } else {
- err = Z_ERRNO;
- break;
- }
- } else {
- err = Z_ERRNO;
- break;
- }
- }
-
- /* Data */
- {
- int dataSize = cpsize;
- if (dataSize == 0) {
- dataSize = uncpsize;
- }
- if (dataSize > 0) {
- char* data = malloc(dataSize);
- if (data != NULL) {
- if ((int)fread(data, 1, dataSize, fpZip) == dataSize) {
- if ((int)fwrite(data, 1, dataSize, fpOut) == dataSize) {
- offset += dataSize;
- totalBytes += dataSize;
- } else {
- err = Z_ERRNO;
- }
- } else {
- err = Z_ERRNO;
- }
- free(data);
- if (err != Z_OK) {
- break;
- }
- } else {
- err = Z_MEM_ERROR;
- break;
- }
- }
- }
-
- /* Central directory entry */
- {
- char centralDirectoryEntryHeader[46];
- //char* comment = "";
- //int comsize = (int) strlen(comment);
- WRITE_32(centralDirectoryEntryHeader, 0x02014b50);
- WRITE_16(centralDirectoryEntryHeader + 4, version);
- WRITE_16(centralDirectoryEntryHeader + 6, version);
- WRITE_16(centralDirectoryEntryHeader + 8, gpflag);
- WRITE_16(centralDirectoryEntryHeader + 10, method);
- WRITE_16(centralDirectoryEntryHeader + 12, filetime);
- WRITE_16(centralDirectoryEntryHeader + 14, filedate);
- WRITE_32(centralDirectoryEntryHeader + 16, crc);
- WRITE_32(centralDirectoryEntryHeader + 20, cpsize);
- WRITE_32(centralDirectoryEntryHeader + 24, uncpsize);
- WRITE_16(centralDirectoryEntryHeader + 28, fnsize);
- WRITE_16(centralDirectoryEntryHeader + 30, extsize);
- WRITE_16(centralDirectoryEntryHeader + 32, 0 /*comsize*/);
- WRITE_16(centralDirectoryEntryHeader + 34, 0); /* disk # */
- WRITE_16(centralDirectoryEntryHeader + 36, 0); /* int attrb */
- WRITE_32(centralDirectoryEntryHeader + 38, 0); /* ext attrb */
- WRITE_32(centralDirectoryEntryHeader + 42, currentOffset);
- /* Header */
- if (fwrite(centralDirectoryEntryHeader, 1, 46, fpOutCD) == 46) {
- offsetCD += 46;
-
- /* Filename */
- if (fnsize > 0) {
- if (fwrite(filename, 1, fnsize, fpOutCD) == fnsize) {
- offsetCD += fnsize;
- } else {
- err = Z_ERRNO;
- break;
- }
- } else {
- err = Z_STREAM_ERROR;
- break;
- }
-
- /* Extra field */
- if (extsize > 0) {
- if (fwrite(extra, 1, extsize, fpOutCD) == extsize) {
- offsetCD += extsize;
- } else {
- err = Z_ERRNO;
- break;
- }
- }
-
- /* Comment field */
- /*
- if (comsize > 0) {
- if ((int)fwrite(comment, 1, comsize, fpOutCD) == comsize) {
- offsetCD += comsize;
- } else {
- err = Z_ERRNO;
- break;
- }
- }
- */
-
- } else {
- err = Z_ERRNO;
- break;
- }
- }
-
- /* Success */
- entries++;
-
- } else {
- break;
- }
- }
-
- /* Final central directory */
- {
- int entriesZip = entries;
- char finalCentralDirectoryHeader[22];
- //char* comment = ""; // "ZIP File recovered by zlib/minizip/mztools";
- //int comsize = (int) strlen(comment);
- if (entriesZip > 0xffff) {
- entriesZip = 0xffff;
- }
- WRITE_32(finalCentralDirectoryHeader, 0x06054b50);
- WRITE_16(finalCentralDirectoryHeader + 4, 0); /* disk # */
- WRITE_16(finalCentralDirectoryHeader + 6, 0); /* disk # */
- WRITE_16(finalCentralDirectoryHeader + 8, entriesZip); /* hack */
- WRITE_16(finalCentralDirectoryHeader + 10, entriesZip); /* hack */
- WRITE_32(finalCentralDirectoryHeader + 12, offsetCD); /* size of CD */
- WRITE_32(finalCentralDirectoryHeader + 16, offset); /* offset to CD */
- WRITE_16(finalCentralDirectoryHeader + 20, 0 /*comsize*/); /* comment */
-
- /* Header */
- if (fwrite(finalCentralDirectoryHeader, 1, 22, fpOutCD) == 22) {
-
- /* Comment field */
- /*
- if (comsize > 0) {
- if ((int)fwrite(comment, 1, comsize, fpOutCD) != comsize) {
- err = Z_ERRNO;
- }
- }
- */
- } else {
- err = Z_ERRNO;
- }
- }
-
- /* Final merge (file + central directory) */
- fclose(fpOutCD);
- if (err == Z_OK) {
- fpOutCD = fopen(fileOutTmp, "rb");
- if (fpOutCD != NULL) {
- int nRead;
- char buffer[8192];
- while ( (nRead = (int)fread(buffer, 1, sizeof(buffer), fpOutCD)) > 0) {
- if ((int)fwrite(buffer, 1, nRead, fpOut) != nRead) {
- err = Z_ERRNO;
- break;
- }
- }
- fclose(fpOutCD);
- }
- }
-
- /* Close */
- fclose(fpZip);
- fclose(fpOut);
-
- /* Wipe temporary file */
- (void)remove(fileOutTmp);
-
- /* Number of recovered entries */
- if (err == Z_OK) {
- if (nRecovered != NULL) {
- *nRecovered = entries;
- }
- if (bytesRecovered != NULL) {
- *bytesRecovered = totalBytes;
- }
- }
- } else {
- err = Z_STREAM_ERROR;
- }
- return err;
-}
diff --git a/ios/RCTPushy/SSZipArchive/minizip/mztools.h b/ios/RCTPushy/SSZipArchive/minizip/mztools.h
deleted file mode 100755
index 88b3459..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/mztools.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Additional tools for Minizip
- Code: Xavier Roche '2004
- License: Same as ZLIB (www.gzip.org)
-*/
-
-#ifndef _zip_tools_H
-#define _zip_tools_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _ZLIB_H
-#include "zlib.h"
-#endif
-
-#include "unzip.h"
-
-/* Repair a ZIP file (missing central directory)
- file: file to recover
- fileOut: output file after recovery
- fileOutTmp: temporary file name used for recovery
-*/
-extern int ZEXPORT unzRepair(const char* file,
- const char* fileOut,
- const char* fileOutTmp,
- uLong* nRecovered,
- uLong* bytesRecovered);
-
-#endif
diff --git a/ios/RCTPushy/SSZipArchive/minizip/unzip.c b/ios/RCTPushy/SSZipArchive/minizip/unzip.c
deleted file mode 100755
index 09d13d1..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/unzip.c
+++ /dev/null
@@ -1,1839 +0,0 @@
-/* unzip.c -- IO for uncompress .zip files using zlib
- Version 1.1, February 14h, 2010
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications of Unzip for Zip64
- Copyright (C) 2007-2008 Even Rouault
- Modifications for Zip64 support on both zip and unzip
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
- Modifications for AES, PKWARE disk spanning
- Copyright (C) 2010-2014 Nathan Moinvaziri
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
- */
-
-
-#include
-#include
-#include
-
-/*#ifndef NOUNCRYPT
- # define NOUNCRYPT
- #endif*/
-
-#include "zlib.h"
-#include "unzip.h"
-
-#include "Common.h"
-
-#ifdef STDC
-# include
-# include
-# include
-#endif
-#ifdef NO_ERRNO_H
-extern int errno;
-#else
-# include
-#endif
-
-#ifdef HAVE_AES
-# define AES_METHOD (99)
-# define AES_PWVERIFYSIZE (2)
-# define AES_MAXSALTLENGTH (16)
-# define AES_AUTHCODESIZE (10)
-# define AES_HEADERSIZE (11)
-# define AES_KEYSIZE(mode) (64 + (mode * 64))
-
-# include "aes.h"
-# include "fileenc.h"
-#endif
-#ifndef NOUNCRYPT
-# include "crypt.h"
-#endif
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-#define DISKHEADERMAGIC (0x08074b50)
-#define LOCALHEADERMAGIC (0x04034b50)
-#define CENTRALHEADERMAGIC (0x02014b50)
-#define ENDHEADERMAGIC (0x06054b50)
-#define ZIP64ENDHEADERMAGIC (0x06064b50)
-#define ZIP64ENDLOCHEADERMAGIC (0x07064b50)
-
-#define SIZECENTRALDIRITEM (0x2e)
-#define SIZECENTRALHEADERLOCATOR (0x14) /* 20 */
-#define SIZEZIPLOCALHEADER (0x1e)
-
-#ifndef BUFREADCOMMENT
-# define BUFREADCOMMENT (0x400)
-#endif
-
-#ifndef UNZ_BUFSIZE
-# define UNZ_BUFSIZE (64 * 1024)
-#endif
-#ifndef UNZ_MAXFILENAMEINZIP
-# define UNZ_MAXFILENAMEINZIP (256)
-#endif
-
-#ifndef ALLOC
-# define ALLOC(size) (malloc(size))
-#endif
-#ifndef TRYFREE
-# define TRYFREE(p) {if (p) free(p); }
-#endif
-
-const char unz_copyright[] =
- " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
-
-/* unz_file_info_interntal contain internal info about a file in zipfile*/
-typedef struct unz_file_info64_internal_s {
- ZPOS64_T offset_curfile; /* relative offset of local header 8 bytes */
- ZPOS64_T byte_before_the_zipfile; /* byte before the zipfile, (>0 for sfx) */
-#ifdef HAVE_AES
- uLong aes_encryption_mode;
- uLong aes_compression_method;
- uLong aes_version;
-#endif
-} unz_file_info64_internal;
-
-/* file_in_zip_read_info_s contain internal information about a file in zipfile */
-typedef struct {
- Bytef *read_buffer; /* internal buffer for compressed data */
- z_stream stream; /* zLib stream structure for inflate */
-
-#ifdef HAVE_BZIP2
- bz_stream bstream; /* bzLib stream structure for bziped */
-#endif
-#ifdef HAVE_AES
- fcrypt_ctx aes_ctx;
-#endif
-
- ZPOS64_T pos_in_zipfile; /* position in byte on the zipfile, for fseek */
- uLong stream_initialised; /* flag set if stream structure is initialised */
-
- ZPOS64_T offset_local_extrafield; /* offset of the local extra field */
- uInt size_local_extrafield; /* size of the local extra field */
- ZPOS64_T pos_local_extrafield; /* position in the local extra field in read */
- ZPOS64_T total_out_64;
-
- uLong crc32; /* crc32 of all data uncompressed */
- uLong crc32_wait; /* crc32 we must obtain after decompress all */
- ZPOS64_T rest_read_compressed; /* number of byte to be decompressed */
- ZPOS64_T rest_read_uncompressed; /* number of byte to be obtained after decomp */
-
- zlib_filefunc64_32_def z_filefunc;
-
- voidpf filestream; /* io structore of the zipfile */
- uLong compression_method; /* compression method (0==store) */
- ZPOS64_T byte_before_the_zipfile; /* byte before the zipfile, (>0 for sfx) */
- int raw;
-} file_in_zip64_read_info_s;
-
-/* unz64_s contain internal information about the zipfile */
-typedef struct {
- zlib_filefunc64_32_def z_filefunc;
- voidpf filestream; /* io structure of the current zipfile */
- voidpf filestream_with_CD; /* io structure of the disk with the central directory */
- unz_global_info64 gi; /* public global information */
- ZPOS64_T byte_before_the_zipfile; /* byte before the zipfile, (>0 for sfx)*/
- ZPOS64_T num_file; /* number of the current file in the zipfile*/
- ZPOS64_T pos_in_central_dir; /* pos of the current file in the central dir*/
- ZPOS64_T current_file_ok; /* flag about the usability of the current file*/
- ZPOS64_T central_pos; /* position of the beginning of the central dir*/
- uLong number_disk; /* number of the current disk, used for spanning ZIP*/
- ZPOS64_T size_central_dir; /* size of the central directory */
- ZPOS64_T offset_central_dir; /* offset of start of central directory with
- respect to the starting disk number */
-
- unz_file_info64 cur_file_info; /* public info about the current file in zip*/
- unz_file_info64_internal cur_file_info_internal;
- /* private info about it*/
- file_in_zip64_read_info_s *pfile_in_zip_read;
- /* structure about the current file if we are decompressing it */
- int isZip64; /* is the current file zip64 */
-#ifndef NOUNCRYPT
- unsigned long keys[3]; /* keys defining the pseudo-random sequence */
- const unsigned long *pcrc_32_tab;
-#endif
-} unz64_s;
-
-/* Translate date/time from Dos format to tm_unz (readable more easily) */
-local void unz64local_DosDateToTmuDate(ZPOS64_T ulDosDate, tm_unz *ptm)
-{
- ZPOS64_T uDate = (ZPOS64_T)(ulDosDate >> 16);
-
- ptm->tm_mday = (uInt)(uDate & 0x1f);
- ptm->tm_mon = (uInt)((((uDate) & 0x1E0) / 0x20) - 1);
- ptm->tm_year = (uInt)(((uDate & 0x0FE00) / 0x0200) + 1980);
- ptm->tm_hour = (uInt)((ulDosDate & 0xF800) / 0x800);
- ptm->tm_min = (uInt)((ulDosDate & 0x7E0) / 0x20);
- ptm->tm_sec = (uInt)(2 * (ulDosDate & 0x1f));
-
-#define unz64local_in_range(min, max, value) ((min) <= (value) && (value) <= (max))
- if (!unz64local_in_range(0, 11, ptm->tm_mon) ||
- !unz64local_in_range(1, 31, ptm->tm_mday) ||
- !unz64local_in_range(0, 23, ptm->tm_hour) ||
- !unz64local_in_range(0, 59, ptm->tm_min) ||
- !unz64local_in_range(0, 59, ptm->tm_sec))
- /* Invalid date stored, so don't return it. */
- memset(ptm, 0, sizeof(tm_unz));
-#undef unz64local_in_range
-}
-
-/* Read a byte from a gz_stream; Return EOF for end of file. */
-local int unz64local_getByte(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
-{
- unsigned char c;
- int err = (int)ZREAD64(*pzlib_filefunc_def, filestream, &c, 1);
- if (err == 1) {
- *pi = (int)c;
- return UNZ_OK;
- }
- if (ZERROR64(*pzlib_filefunc_def, filestream))
- return UNZ_ERRNO;
- return UNZ_EOF;
-}
-
-local int unz64local_getShort OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, uLong * pX));
-local int unz64local_getShort(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
-{
- uLong x;
- int i = 0;
- int err;
-
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (uLong)i;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((uLong)i) << 8;
-
- if (err == UNZ_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-local int unz64local_getLong OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, uLong * pX));
-local int unz64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
-{
- uLong x;
- int i = 0;
- int err;
-
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (uLong)i;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((uLong)i) << 8;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((uLong)i) << 16;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((uLong)i) << 24;
-
- if (err == UNZ_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-local int unz64local_getLong64 OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, ZPOS64_T * pX));
-local int unz64local_getLong64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
-{
- ZPOS64_T x;
- int i = 0;
- int err;
-
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (ZPOS64_T)i;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 8;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 16;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 24;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 32;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 40;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 48;
- if (err == UNZ_OK)
- err = unz64local_getByte(pzlib_filefunc_def, filestream, &i);
- x |= ((ZPOS64_T)i) << 56;
-
- if (err == UNZ_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-/* Locate the Central directory of a zip file (at the end, just before the global comment) */
-local ZPOS64_T unz64local_SearchCentralDir OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream));
-local ZPOS64_T unz64local_SearchCentralDir(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
-{
- unsigned char *buf;
- ZPOS64_T file_size;
- ZPOS64_T back_read = 4;
- ZPOS64_T max_back = 0xffff; /* maximum size of global comment */
- ZPOS64_T pos_found = 0;
- uLong read_size;
- ZPOS64_T read_pos;
- int i;
-
- buf = (unsigned char *)ALLOC(BUFREADCOMMENT + 4);
- if (buf == NULL)
- return 0;
-
- if (ZSEEK64(*pzlib_filefunc_def, filestream, 0, ZLIB_FILEFUNC_SEEK_END) != 0) {
- TRYFREE(buf);
- return 0;
- }
-
- file_size = ZTELL64(*pzlib_filefunc_def, filestream);
-
- if (max_back > file_size)
- max_back = file_size;
-
- while (back_read < max_back) {
- if (back_read + BUFREADCOMMENT > max_back)
- back_read = max_back;
- else
- back_read += BUFREADCOMMENT;
-
- read_pos = file_size - back_read;
- read_size = ((BUFREADCOMMENT + 4) < (file_size - read_pos)) ?
- (BUFREADCOMMENT + 4) : (uLong)(file_size - read_pos);
-
- if (ZSEEK64(*pzlib_filefunc_def, filestream, read_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- break;
- if (ZREAD64(*pzlib_filefunc_def, filestream, buf, read_size) != read_size)
- break;
-
- for (i = (int)read_size - 3; (i--) > 0; )
- if (((*(buf + i)) == (ENDHEADERMAGIC & 0xff)) &&
- ((*(buf + i + 1)) == (ENDHEADERMAGIC >> 8 & 0xff)) &&
- ((*(buf + i + 2)) == (ENDHEADERMAGIC >> 16 & 0xff)) &&
- ((*(buf + i + 3)) == (ENDHEADERMAGIC >> 24 & 0xff))) {
- pos_found = read_pos + i;
- break;
- }
-
- if (pos_found != 0)
- break;
- }
- TRYFREE(buf);
- return pos_found;
-}
-
-/* Locate the Central directory 64 of a zipfile (at the end, just before the global comment) */
-local ZPOS64_T unz64local_SearchCentralDir64 OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream,
- const ZPOS64_T endcentraloffset));
-local ZPOS64_T unz64local_SearchCentralDir64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream,
- const ZPOS64_T endcentraloffset)
-{
- ZPOS64_T offset;
- uLong uL;
-
- /* Zip64 end of central directory locator */
- if (ZSEEK64(*pzlib_filefunc_def, filestream, endcentraloffset - SIZECENTRALHEADERLOCATOR, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return 0;
-
- /* read locator signature */
- if (unz64local_getLong(pzlib_filefunc_def, filestream, &uL) != UNZ_OK)
- return 0;
- if (uL != ZIP64ENDLOCHEADERMAGIC)
- return 0;
- /* number of the disk with the start of the zip64 end of central directory */
- if (unz64local_getLong(pzlib_filefunc_def, filestream, &uL) != UNZ_OK)
- return 0;
- /* relative offset of the zip64 end of central directory record */
- if (unz64local_getLong64(pzlib_filefunc_def, filestream, &offset) != UNZ_OK)
- return 0;
- /* total number of disks */
- if (unz64local_getLong(pzlib_filefunc_def, filestream, &uL) != UNZ_OK)
- return 0;
- /* Goto end of central directory record */
- if (ZSEEK64(*pzlib_filefunc_def, filestream, offset, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return 0;
- /* the signature */
- if (unz64local_getLong(pzlib_filefunc_def, filestream, &uL) != UNZ_OK)
- return 0;
- if (uL != ZIP64ENDHEADERMAGIC)
- return 0;
-
- return offset;
-}
-
-local unzFile unzOpenInternal(const void *path, zlib_filefunc64_32_def *pzlib_filefunc64_32_def)
-{
- unz64_s us;
- unz64_s *s;
- ZPOS64_T central_pos;
- uLong uL;
- voidpf filestream = NULL;
- ZPOS64_T number_entry_CD;
- int err = UNZ_OK;
-
- if (unz_copyright[0] != ' ')
- return NULL;
-
- us.filestream = NULL;
- us.filestream_with_CD = NULL;
- us.z_filefunc.zseek32_file = NULL;
- us.z_filefunc.ztell32_file = NULL;
- if (pzlib_filefunc64_32_def == NULL)
- fill_fopen64_filefunc(&us.z_filefunc.zfile_func64);
- else
- us.z_filefunc = *pzlib_filefunc64_32_def;
-
- us.filestream = ZOPEN64(us.z_filefunc, path, ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_EXISTING);
-
- if (us.filestream == NULL)
- return NULL;
-
- us.filestream_with_CD = us.filestream;
- us.isZip64 = 0;
-
- /* Use unz64local_SearchCentralDir first. Only based on the result
- is it necessary to locate the unz64local_SearchCentralDir64 */
- central_pos = unz64local_SearchCentralDir(&us.z_filefunc, us.filestream);
- if (central_pos) {
- if (ZSEEK64(us.z_filefunc, us.filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = UNZ_ERRNO;
-
- /* the signature, already checked */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- /* number of this disk */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- us.number_disk = uL;
- /* number of the disk with the start of the central directory */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- us.gi.number_disk_with_CD = uL;
- /* total number of entries in the central directory on this disk */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- us.gi.number_entry = uL;
- /* total number of entries in the central directory */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- number_entry_CD = uL;
- if (number_entry_CD != us.gi.number_entry)
- err = UNZ_BADZIPFILE;
- /* size of the central directory */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- us.size_central_dir = uL;
- /* offset of start of central directory with respect to the starting disk number */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- us.offset_central_dir = uL;
- /* zipfile comment length */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &us.gi.size_comment) != UNZ_OK)
- err = UNZ_ERRNO;
-
- if ((err == UNZ_OK) &&
- ((us.gi.number_entry == 0xffff) || (us.size_central_dir == 0xffff) || (us.offset_central_dir == 0xffffffff))) {
- /* Format should be Zip64, as the central directory or file size is too large */
- central_pos = unz64local_SearchCentralDir64(&us.z_filefunc, us.filestream, central_pos);
- if (central_pos) {
- ZPOS64_T uL64;
-
- us.isZip64 = 1;
-
- if (ZSEEK64(us.z_filefunc, us.filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = UNZ_ERRNO;
-
- /* the signature, already checked */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- /* size of zip64 end of central directory record */
- if (unz64local_getLong64(&us.z_filefunc, us.filestream, &uL64) != UNZ_OK)
- err = UNZ_ERRNO;
- /* version made by */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- /* version needed to extract */
- if (unz64local_getShort(&us.z_filefunc, us.filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- /* number of this disk */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &us.number_disk) != UNZ_OK)
- err = UNZ_ERRNO;
- /* number of the disk with the start of the central directory */
- if (unz64local_getLong(&us.z_filefunc, us.filestream, &us.gi.number_disk_with_CD) != UNZ_OK)
- err = UNZ_ERRNO;
- /* total number of entries in the central directory on this disk */
- if (unz64local_getLong64(&us.z_filefunc, us.filestream, &us.gi.number_entry) != UNZ_OK)
- err = UNZ_ERRNO;
- /* total number of entries in the central directory */
- if (unz64local_getLong64(&us.z_filefunc, us.filestream, &number_entry_CD) != UNZ_OK)
- err = UNZ_ERRNO;
- if (number_entry_CD != us.gi.number_entry)
- err = UNZ_BADZIPFILE;
- /* size of the central directory */
- if (unz64local_getLong64(&us.z_filefunc, us.filestream, &us.size_central_dir) != UNZ_OK)
- err = UNZ_ERRNO;
- /* offset of start of central directory with respect to the starting disk number */
- if (unz64local_getLong64(&us.z_filefunc, us.filestream, &us.offset_central_dir) != UNZ_OK)
- err = UNZ_ERRNO;
- } else
- err = UNZ_BADZIPFILE;
- }
- } else
- err = UNZ_ERRNO;
-
- if ((err == UNZ_OK) && (central_pos < us.offset_central_dir + us.size_central_dir))
- err = UNZ_BADZIPFILE;
-
- if (err != UNZ_OK) {
- ZCLOSE64(us.z_filefunc, us.filestream);
- return NULL;
- }
-
- if (us.gi.number_disk_with_CD == 0) {
- /* If there is only one disk open another stream so we don't have to seek between the CD
- and the file headers constantly */
- filestream = ZOPEN64(us.z_filefunc, path, ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_EXISTING);
- if (filestream != NULL)
- us.filestream = filestream;
- }
-
- /* Hack for zip files that have no respect for zip64
- if ((central_pos > 0xffffffff) && (us.offset_central_dir < 0xffffffff))
- us.offset_central_dir = central_pos - us.size_central_dir;*/
-
- us.byte_before_the_zipfile = central_pos - (us.offset_central_dir + us.size_central_dir);
- us.central_pos = central_pos;
- us.pfile_in_zip_read = NULL;
-
- s = (unz64_s *)ALLOC(sizeof(unz64_s));
- if (s != NULL) {
- *s = us;
- unzGoToFirstFile((unzFile)s);
- }
- return (unzFile)s;
-}
-
-extern unzFile ZEXPORT unzOpen2(const char *path, zlib_filefunc_def *pzlib_filefunc32_def)
-{
- if (pzlib_filefunc32_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill, pzlib_filefunc32_def);
- return unzOpenInternal(path, &zlib_filefunc64_32_def_fill);
- }
- return unzOpenInternal(path, NULL);
-}
-
-extern unzFile ZEXPORT unzOpen2_64(const void *path, zlib_filefunc64_def *pzlib_filefunc_def)
-{
- if (pzlib_filefunc_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
- zlib_filefunc64_32_def_fill.ztell32_file = NULL;
- zlib_filefunc64_32_def_fill.zseek32_file = NULL;
- return unzOpenInternal(path, &zlib_filefunc64_32_def_fill);
- }
- return unzOpenInternal(path, NULL);
-}
-
-extern unzFile ZEXPORT unzOpen(const char *path)
-{
- return unzOpenInternal(path, NULL);
-}
-
-extern unzFile ZEXPORT unzOpen64(const void *path)
-{
- return unzOpenInternal(path, NULL);
-}
-
-extern int ZEXPORT unzClose(unzFile file)
-{
- unz64_s *s;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
-
- if (s->pfile_in_zip_read != NULL)
- unzCloseCurrentFile(file);
-
- if ((s->filestream != NULL) && (s->filestream != s->filestream_with_CD))
- ZCLOSE64(s->z_filefunc, s->filestream);
- if (s->filestream_with_CD != NULL)
- ZCLOSE64(s->z_filefunc, s->filestream_with_CD);
-
- s->filestream = NULL;
- s->filestream_with_CD = NULL;
- TRYFREE(s);
- return UNZ_OK;
-}
-
-/* Goto to the next available disk for spanned archives */
-local int unzGoToNextDisk OF((unzFile file));
-local int unzGoToNextDisk(unzFile file)
-{
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- uLong number_disk_next = 0;
-
- s = (unz64_s *)file;
- if (s == NULL)
- return UNZ_PARAMERROR;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
- number_disk_next = s->number_disk;
-
- if ((pfile_in_zip_read_info != NULL) && (pfile_in_zip_read_info->rest_read_uncompressed > 0))
- /* We are currently reading a file and we need the next sequential disk */
- number_disk_next += 1;
- else
- /* Goto the disk for the current file */
- number_disk_next = s->cur_file_info.disk_num_start;
-
- if (number_disk_next != s->number_disk) {
- /* Switch disks */
- if ((s->filestream != NULL) && (s->filestream != s->filestream_with_CD))
- ZCLOSE64(s->z_filefunc, s->filestream);
-
- if (number_disk_next == s->gi.number_disk_with_CD) {
- s->filestream = s->filestream_with_CD;
- } else {
- s->filestream = ZOPENDISK64(s->z_filefunc, s->filestream_with_CD, (unsigned int)number_disk_next,
- ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_EXISTING);
- }
-
- if (s->filestream == NULL)
- return UNZ_ERRNO;
-
- s->number_disk = number_disk_next;
- }
-
- return UNZ_OK;
-}
-
-extern int ZEXPORT unzGetGlobalInfo(unzFile file, unz_global_info *pglobal_info32)
-{
- unz64_s *s;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- /* to do : check if number_entry is not truncated */
- pglobal_info32->number_entry = (uLong)s->gi.number_entry;
- pglobal_info32->size_comment = s->gi.size_comment;
- pglobal_info32->number_disk_with_CD = s->gi.number_disk_with_CD;
- return UNZ_OK;
-}
-
-extern int ZEXPORT unzGetGlobalInfo64(unzFile file, unz_global_info64 *pglobal_info)
-{
- unz64_s *s;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- *pglobal_info = s->gi;
- return UNZ_OK;
-}
-
-extern int ZEXPORT unzGetGlobalComment(unzFile file, char *comment, uLong comment_size)
-{
- unz64_s *s;
- uLong bytes_to_read = comment_size;
- if (file == NULL)
- return (int)UNZ_PARAMERROR;
- s = (unz64_s *)file;
-
- if (bytes_to_read > s->gi.size_comment)
- bytes_to_read = s->gi.size_comment;
-
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, s->central_pos + 22, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return UNZ_ERRNO;
-
- if (bytes_to_read > 0) {
- *comment = 0;
- if (ZREAD64(s->z_filefunc, s->filestream_with_CD, comment, bytes_to_read) != bytes_to_read)
- return UNZ_ERRNO;
- }
-
- if ((comment != NULL) && (comment_size > s->gi.size_comment))
- *(comment + s->gi.size_comment) = 0;
- return (int)bytes_to_read;
-}
-
-/* Get Info about the current file in the zipfile, with internal only info */
-local int unz64local_GetCurrentFileInfoInternal(unzFile file, unz_file_info64 *pfile_info,
- unz_file_info64_internal *pfile_info_internal, char *filename, uLong filename_size, void *extrafield,
- uLong extrafield_size, char *comment, uLong comment_size)
-{
- unz64_s *s;
- unz_file_info64 file_info;
- unz_file_info64_internal file_info_internal;
- ZPOS64_T bytes_to_read;
- int err = UNZ_OK;
- uLong uMagic;
- long lSeek = 0;
- ZPOS64_T current_pos = 0;
- uLong acc = 0;
- uLong uL;
- ZPOS64_T uL64;
-
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
-
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD,
- s->pos_in_central_dir + s->byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = UNZ_ERRNO;
-
- /* Check the magic */
- if (err == UNZ_OK) {
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &uMagic) != UNZ_OK)
- err = UNZ_ERRNO;
- else if (uMagic != CENTRALHEADERMAGIC)
- err = UNZ_BADZIPFILE;
- }
-
- /* Read central directory header */
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.version) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.version_needed) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.flag) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.compression_method) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &file_info.dosDate) != UNZ_OK)
- err = UNZ_ERRNO;
- unz64local_DosDateToTmuDate(file_info.dosDate, &file_info.tmu_date);
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &file_info.crc) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- file_info.compressed_size = uL;
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- file_info.uncompressed_size = uL;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.size_filename) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.size_file_extra) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.size_file_comment) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.disk_num_start) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &file_info.internal_fa) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &file_info.external_fa) != UNZ_OK)
- err = UNZ_ERRNO;
- /* Relative offset of local header */
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
-
- file_info.size_file_extra_internal = 0;
- file_info.disk_offset = uL;
- file_info_internal.offset_curfile = uL;
-#ifdef HAVE_AES
- file_info_internal.aes_compression_method = 0;
- file_info_internal.aes_encryption_mode = 0;
- file_info_internal.aes_version = 0;
-#endif
-
- lSeek += file_info.size_filename;
-
- if ((err == UNZ_OK) && (filename != NULL)) {
- if (file_info.size_filename < filename_size) {
- *(filename + file_info.size_filename) = 0;
- bytes_to_read = file_info.size_filename;
- } else
- bytes_to_read = filename_size;
-
- if ((file_info.size_filename > 0) && (filename_size > 0))
- if (ZREAD64(s->z_filefunc, s->filestream_with_CD, filename, (uLong)bytes_to_read) != bytes_to_read)
- err = UNZ_ERRNO;
- lSeek -= (uLong)bytes_to_read;
- }
-
- /* Read extrafield */
- if ((err == UNZ_OK) && (extrafield != NULL)) {
- if (file_info.size_file_extra < extrafield_size)
- bytes_to_read = file_info.size_file_extra;
- else
- bytes_to_read = extrafield_size;
-
- if (lSeek != 0) {
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, lSeek, ZLIB_FILEFUNC_SEEK_CUR) == 0)
- lSeek = 0;
- else
- err = UNZ_ERRNO;
- }
-
- if ((file_info.size_file_extra > 0) && (extrafield_size > 0))
- if (ZREAD64(s->z_filefunc, s->filestream_with_CD, extrafield, (uLong)bytes_to_read) != bytes_to_read)
- err = UNZ_ERRNO;
- lSeek += file_info.size_file_extra - (uLong)bytes_to_read;
- } else
- lSeek += file_info.size_file_extra;
-
- if ((err == UNZ_OK) && (file_info.size_file_extra != 0)) {
- if (lSeek != 0) {
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, lSeek, ZLIB_FILEFUNC_SEEK_CUR) == 0)
- lSeek = 0;
- else
- err = UNZ_ERRNO;
- }
-
- /* We are going to parse the extra field so we need to move back */
- current_pos = ZTELL64(s->z_filefunc, s->filestream_with_CD);
- if (current_pos < file_info.size_file_extra)
- err = UNZ_ERRNO;
- current_pos -= file_info.size_file_extra;
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, current_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = UNZ_ERRNO;
-
- while ((err != UNZ_ERRNO) && (acc < file_info.size_file_extra)) {
- uLong headerid;
- uLong datasize;
-
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &headerid) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &datasize) != UNZ_OK)
- err = UNZ_ERRNO;
-
- /* ZIP64 extra fields */
- if (headerid == 0x0001) {
- /* Subtract size of ZIP64 field, since ZIP64 is handled internally */
- file_info.size_file_extra_internal += 2 + 2 + datasize;
-
- if (file_info.uncompressed_size == 0xffffffff) {
- if (unz64local_getLong64(&s->z_filefunc, s->filestream_with_CD, &file_info.uncompressed_size) != UNZ_OK)
- err = UNZ_ERRNO;
- }
- if (file_info.compressed_size == 0xffffffff) {
- if (unz64local_getLong64(&s->z_filefunc, s->filestream_with_CD, &file_info.compressed_size) != UNZ_OK)
- err = UNZ_ERRNO;
- }
- if (file_info_internal.offset_curfile == 0xffffffff) {
- /* Relative Header offset */
- if (unz64local_getLong64(&s->z_filefunc, s->filestream_with_CD, &uL64) != UNZ_OK)
- err = UNZ_ERRNO;
- file_info_internal.offset_curfile = uL64;
- file_info.disk_offset = uL64;
- }
- if (file_info.disk_num_start == 0xffffffff) {
- /* Disk Start Number */
- if (unz64local_getLong(&s->z_filefunc, s->filestream_with_CD, &file_info.disk_num_start) != UNZ_OK)
- err = UNZ_ERRNO;
- }
- }
-#ifdef HAVE_AES
- /* AES header */
- else if (headerid == 0x9901) {
- /* Subtract size of AES field, since AES is handled internally */
- file_info.size_file_extra_internal += 2 + 2 + datasize;
-
- /* Verify version info */
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- /* Support AE-1 and AE-2 */
- if (uL != 1 && uL != 2)
- err = UNZ_ERRNO;
- file_info_internal.aes_version = uL;
- if (unz64local_getByte(&s->z_filefunc, s->filestream_with_CD, (int *)&uL) != UNZ_OK)
- err = UNZ_ERRNO;
- if ((char)uL != 'A')
- err = UNZ_ERRNO;
- if (unz64local_getByte(&s->z_filefunc, s->filestream_with_CD, (int *)&uL) != UNZ_OK)
- err = UNZ_ERRNO;
- if ((char)uL != 'E')
- err = UNZ_ERRNO;
- /* Get AES encryption strength and actual compression method */
- if (unz64local_getByte(&s->z_filefunc, s->filestream_with_CD, (int *)&uL) != UNZ_OK)
- err = UNZ_ERRNO;
- file_info_internal.aes_encryption_mode = uL;
- if (unz64local_getShort(&s->z_filefunc, s->filestream_with_CD, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- file_info_internal.aes_compression_method = uL;
- }
-#endif
- else {
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, datasize, ZLIB_FILEFUNC_SEEK_CUR) != 0)
- err = UNZ_ERRNO;
- }
-
- acc += 2 + 2 + datasize;
- }
- }
-
- if (file_info.disk_num_start == s->gi.number_disk_with_CD)
- file_info_internal.byte_before_the_zipfile = s->byte_before_the_zipfile;
- else
- file_info_internal.byte_before_the_zipfile = 0;
-
- if ((err == UNZ_OK) && (comment != NULL)) {
- if (file_info.size_file_comment < comment_size) {
- *(comment + file_info.size_file_comment) = 0;
- bytes_to_read = file_info.size_file_comment;
- } else
- bytes_to_read = comment_size;
-
- if (lSeek != 0) {
- if (ZSEEK64(s->z_filefunc, s->filestream_with_CD, lSeek, ZLIB_FILEFUNC_SEEK_CUR) != 0)
- err = UNZ_ERRNO;
- }
-
- if ((file_info.size_file_comment > 0) && (comment_size > 0))
- if (ZREAD64(s->z_filefunc, s->filestream_with_CD, comment, (uLong)bytes_to_read) != bytes_to_read)
- err = UNZ_ERRNO;
- lSeek += file_info.size_file_comment - (uLong)bytes_to_read;
- } else
- lSeek += file_info.size_file_comment;
-
- if ((err == UNZ_OK) && (pfile_info != NULL))
- *pfile_info = file_info;
-
- if ((err == UNZ_OK) && (pfile_info_internal != NULL))
- *pfile_info_internal = file_info_internal;
-
- return err;
-}
-
-extern int ZEXPORT unzGetCurrentFileInfo(unzFile file, unz_file_info *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size)
-{
- unz_file_info64 file_info64;
- int err;
-
- err = unz64local_GetCurrentFileInfoInternal(file, &file_info64, NULL, filename, filename_size,
- extrafield, extrafield_size, comment, comment_size);
-
- if ((err == UNZ_OK) && (pfile_info != NULL)) {
- pfile_info->version = file_info64.version;
- pfile_info->version_needed = file_info64.version_needed;
- pfile_info->flag = file_info64.flag;
- pfile_info->compression_method = file_info64.compression_method;
- pfile_info->dosDate = file_info64.dosDate;
- pfile_info->crc = file_info64.crc;
-
- pfile_info->size_filename = file_info64.size_filename;
- pfile_info->size_file_extra = file_info64.size_file_extra - file_info64.size_file_extra_internal;
- pfile_info->size_file_comment = file_info64.size_file_comment;
-
- pfile_info->disk_num_start = file_info64.disk_num_start;
- pfile_info->internal_fa = file_info64.internal_fa;
- pfile_info->external_fa = file_info64.external_fa;
-
- pfile_info->tmu_date = file_info64.tmu_date,
-
- pfile_info->compressed_size = (uLong)file_info64.compressed_size;
- pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size;
-
- }
- return err;
-}
-
-extern int ZEXPORT unzGetCurrentFileInfo64(unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size)
-{
- return unz64local_GetCurrentFileInfoInternal(file, pfile_info, NULL, filename, filename_size,
- extrafield, extrafield_size, comment, comment_size);
-}
-
-/* Read the local header of the current zipfile. Check the coherency of the local header and info in the
- end of central directory about this file store in *piSizeVar the size of extra info in local header
- (filename and size of extra field data) */
-local int unz64local_CheckCurrentFileCoherencyHeader(unz64_s *s, uInt *piSizeVar, ZPOS64_T *poffset_local_extrafield,
- uInt *psize_local_extrafield)
-{
- uLong uMagic, uL, uFlags;
- uLong size_filename;
- uLong size_extra_field;
- int err = UNZ_OK;
- int compression_method = 0;
-
- *piSizeVar = 0;
- *poffset_local_extrafield = 0;
- *psize_local_extrafield = 0;
-
- err = unzGoToNextDisk((unzFile)s);
- if (err != UNZ_OK)
- return err;
-
- if (ZSEEK64(s->z_filefunc, s->filestream, s->cur_file_info_internal.offset_curfile +
- s->cur_file_info_internal.byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return UNZ_ERRNO;
-
- if (err == UNZ_OK) {
- if (unz64local_getLong(&s->z_filefunc, s->filestream, &uMagic) != UNZ_OK)
- err = UNZ_ERRNO;
- else if (uMagic != LOCALHEADERMAGIC)
- err = UNZ_BADZIPFILE;
- }
-
- if (unz64local_getShort(&s->z_filefunc, s->filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream, &uFlags) != UNZ_OK)
- err = UNZ_ERRNO;
- if (unz64local_getShort(&s->z_filefunc, s->filestream, &uL) != UNZ_OK)
- err = UNZ_ERRNO;
- else if ((err == UNZ_OK) && (uL != s->cur_file_info.compression_method))
- err = UNZ_BADZIPFILE;
-
- compression_method = (int)s->cur_file_info.compression_method;
-#ifdef HAVE_AES
- if (compression_method == AES_METHOD)
- compression_method = (int)s->cur_file_info_internal.aes_compression_method;
-#endif
-
- if ((err == UNZ_OK) && (compression_method != 0) &&
-#ifdef HAVE_BZIP2
- (compression_method != Z_BZIP2ED) &&
-#endif
- (compression_method != Z_DEFLATED))
- err = UNZ_BADZIPFILE;
-
- if (unz64local_getLong(&s->z_filefunc, s->filestream, &uL) != UNZ_OK) /* date/time */
- err = UNZ_ERRNO;
- if (unz64local_getLong(&s->z_filefunc, s->filestream, &uL) != UNZ_OK) /* crc */
- err = UNZ_ERRNO;
- else if ((err == UNZ_OK) && (uL != s->cur_file_info.crc) && ((uFlags & 8) == 0))
- err = UNZ_BADZIPFILE;
- if (unz64local_getLong(&s->z_filefunc, s->filestream, &uL) != UNZ_OK) /* size compr */
- err = UNZ_ERRNO;
- else if ((uL != 0xffffffff) && (err == UNZ_OK) && (uL != s->cur_file_info.compressed_size) && ((uFlags & 8) == 0))
- err = UNZ_BADZIPFILE;
- if (unz64local_getLong(&s->z_filefunc, s->filestream, &uL) != UNZ_OK) /* size uncompr */
- err = UNZ_ERRNO;
- else if ((uL != 0xffffffff) && (err == UNZ_OK) && (uL != s->cur_file_info.uncompressed_size) && ((uFlags & 8) == 0))
- err = UNZ_BADZIPFILE;
- if (unz64local_getShort(&s->z_filefunc, s->filestream, &size_filename) != UNZ_OK)
- err = UNZ_ERRNO;
- else if ((err == UNZ_OK) && (size_filename != s->cur_file_info.size_filename))
- err = UNZ_BADZIPFILE;
-
- *piSizeVar += (uInt)size_filename;
-
- if (unz64local_getShort(&s->z_filefunc, s->filestream, &size_extra_field) != UNZ_OK)
- err = UNZ_ERRNO;
- *poffset_local_extrafield = s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + size_filename;
- *psize_local_extrafield = (uInt)size_extra_field;
-
- *piSizeVar += (uInt)size_extra_field;
-
- return err;
-}
-
-/*
- Open for reading data the current file in the zipfile.
- If there is no error and the file is opened, the return value is UNZ_OK.
- */
-extern int ZEXPORT unzOpenCurrentFile3(unzFile file, int *method, int *level, int raw, const char *password)
-{
- int err = UNZ_OK;
- int compression_method;
- uInt iSizeVar;
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- ZPOS64_T offset_local_extrafield;
- uInt size_local_extrafield;
-#ifndef NOUNCRYPT
- char source[12];
-#else
- if (password != NULL)
- return UNZ_PARAMERROR;
-#endif
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- if (!s->current_file_ok)
- return UNZ_PARAMERROR;
-
- if (s->pfile_in_zip_read != NULL)
- unzCloseCurrentFile(file);
-
- if (unz64local_CheckCurrentFileCoherencyHeader(s, &iSizeVar, &offset_local_extrafield, &size_local_extrafield) != UNZ_OK)
- return UNZ_BADZIPFILE;
-
- pfile_in_zip_read_info = (file_in_zip64_read_info_s *)ALLOC(sizeof(file_in_zip64_read_info_s));
- if (pfile_in_zip_read_info == NULL)
- return UNZ_INTERNALERROR;
-
- pfile_in_zip_read_info->read_buffer = (Bytef *)ALLOC(UNZ_BUFSIZE);
- pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
- pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
- pfile_in_zip_read_info->pos_local_extrafield = 0;
- pfile_in_zip_read_info->raw = raw;
-
- if (pfile_in_zip_read_info->read_buffer == NULL) {
- TRYFREE(pfile_in_zip_read_info);
- return UNZ_INTERNALERROR;
- }
-
- pfile_in_zip_read_info->stream_initialised = 0;
-
- compression_method = (int)s->cur_file_info.compression_method;
-#ifdef HAVE_AES
- if (compression_method == AES_METHOD)
- compression_method = (int)s->cur_file_info_internal.aes_compression_method;
-#endif
-
- if (method != NULL)
- *method = compression_method;
-
- if (level != NULL) {
- *level = 6;
- switch (s->cur_file_info.flag & 0x06) {
- case 6: *level = 1; break;
- case 4: *level = 2; break;
- case 2: *level = 9; break;
- }
- }
-
- if ((compression_method != 0) &&
-#ifdef HAVE_BZIP2
- (compression_method != Z_BZIP2ED) &&
-#endif
- (compression_method != Z_DEFLATED))
- err = UNZ_BADZIPFILE;
-
- pfile_in_zip_read_info->crc32_wait = s->cur_file_info.crc;
- pfile_in_zip_read_info->crc32 = 0;
- pfile_in_zip_read_info->total_out_64 = 0;
- pfile_in_zip_read_info->compression_method = compression_method;
- pfile_in_zip_read_info->filestream = s->filestream;
- pfile_in_zip_read_info->z_filefunc = s->z_filefunc;
- if (s->number_disk == s->gi.number_disk_with_CD)
- pfile_in_zip_read_info->byte_before_the_zipfile = s->byte_before_the_zipfile;
- else
- pfile_in_zip_read_info->byte_before_the_zipfile = 0;
- pfile_in_zip_read_info->stream.total_out = 0;
- pfile_in_zip_read_info->stream.total_in = 0;
- pfile_in_zip_read_info->stream.next_in = NULL;
-
- if (!raw) {
- if (compression_method == Z_BZIP2ED) {
-#ifdef HAVE_BZIP2
- pfile_in_zip_read_info->bstream.bzalloc = (void *(*)(void *, int, int)) 0;
- pfile_in_zip_read_info->bstream.bzfree = (free_func)0;
- pfile_in_zip_read_info->bstream.opaque = (voidpf)0;
- pfile_in_zip_read_info->bstream.state = (voidpf)0;
-
- pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
- pfile_in_zip_read_info->stream.zfree = (free_func)0;
- pfile_in_zip_read_info->stream.opaque = (voidpf)0;
- pfile_in_zip_read_info->stream.next_in = (voidpf)0;
- pfile_in_zip_read_info->stream.avail_in = 0;
-
- err = BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0);
- if (err == Z_OK)
- pfile_in_zip_read_info->stream_initialised = Z_BZIP2ED;
- else {
- TRYFREE(pfile_in_zip_read_info);
- return err;
- }
-#else
- pfile_in_zip_read_info->raw = 1;
-#endif
- } else if (compression_method == Z_DEFLATED) {
- pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
- pfile_in_zip_read_info->stream.zfree = (free_func)0;
- pfile_in_zip_read_info->stream.opaque = (voidpf)s;
- pfile_in_zip_read_info->stream.next_in = 0;
- pfile_in_zip_read_info->stream.avail_in = 0;
-
- err = inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
- if (err == Z_OK)
- pfile_in_zip_read_info->stream_initialised = Z_DEFLATED;
- else {
- TRYFREE(pfile_in_zip_read_info);
- return err;
- }
- /* windowBits is passed < 0 to tell that there is no zlib header.
- * Note that in this case inflate *requires* an extra "dummy" byte
- * after the compressed stream in order to complete decompression and
- * return Z_STREAM_END.
- * In unzip, i don't wait absolutely Z_STREAM_END because I known the
- * size of both compressed and uncompressed data
- */
- }
- }
-
- pfile_in_zip_read_info->rest_read_compressed = s->cur_file_info.compressed_size;
- pfile_in_zip_read_info->rest_read_uncompressed = s->cur_file_info.uncompressed_size;
- pfile_in_zip_read_info->pos_in_zipfile = s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + iSizeVar;
- pfile_in_zip_read_info->stream.avail_in = (uInt)0;
-
- s->pfile_in_zip_read = pfile_in_zip_read_info;
-
-#ifndef NOUNCRYPT
- if ((password != NULL) && ((s->cur_file_info.flag & 1) != 0)) {
- if (ZSEEK64(s->z_filefunc, s->filestream,
- s->pfile_in_zip_read->pos_in_zipfile + s->pfile_in_zip_read->byte_before_the_zipfile,
- ZLIB_FILEFUNC_SEEK_SET) != 0)
- return UNZ_INTERNALERROR;
-#ifdef HAVE_AES
- if (s->cur_file_info.compression_method == AES_METHOD) {
- unsigned char passverify[AES_PWVERIFYSIZE];
- unsigned char saltvalue[AES_MAXSALTLENGTH];
- uInt saltlength;
-
- if ((s->cur_file_info_internal.aes_encryption_mode < 1) ||
- (s->cur_file_info_internal.aes_encryption_mode > 3))
- return UNZ_INTERNALERROR;
-
- saltlength = SALT_LENGTH(s->cur_file_info_internal.aes_encryption_mode);
-
- if (ZREAD64(s->z_filefunc, s->filestream, saltvalue, saltlength) != saltlength)
- return UNZ_INTERNALERROR;
- if (ZREAD64(s->z_filefunc, s->filestream, passverify, AES_PWVERIFYSIZE) != AES_PWVERIFYSIZE)
- return UNZ_INTERNALERROR;
-
- fcrypt_init((int)s->cur_file_info_internal.aes_encryption_mode, (unsigned char *)password, (unsigned int)strlen(password), saltvalue,
- passverify, &s->pfile_in_zip_read->aes_ctx);
-
- pfile_in_zip_read_info->rest_read_compressed -= saltlength + AES_PWVERIFYSIZE;
- pfile_in_zip_read_info->rest_read_compressed -= AES_AUTHCODESIZE;
-
- s->pfile_in_zip_read->pos_in_zipfile += saltlength + AES_PWVERIFYSIZE;
- } else
-#endif
- {
- int i;
- s->pcrc_32_tab = (const unsigned long *)get_crc_table();
- init_keys(password, s->keys, s->pcrc_32_tab);
-
- if (ZREAD64(s->z_filefunc, s->filestream, source, 12) < 12)
- return UNZ_INTERNALERROR;
-
- for (i = 0; i < 12; i++)
- zdecode(s->keys, s->pcrc_32_tab, source[i]);
-
- pfile_in_zip_read_info->rest_read_compressed -= 12;
-
- s->pfile_in_zip_read->pos_in_zipfile += 12;
- }
- }
-#endif
-
- return UNZ_OK;
-}
-
-extern int ZEXPORT unzOpenCurrentFile(unzFile file)
-{
- return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
-}
-
-extern int ZEXPORT unzOpenCurrentFilePassword(unzFile file, const char *password)
-{
- return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
-}
-
-extern int ZEXPORT unzOpenCurrentFile2(unzFile file, int *method, int *level, int raw)
-{
- return unzOpenCurrentFile3(file, method, level, raw, NULL);
-}
-
-/* Read bytes from the current file.
- buf contain buffer where data must be copied
- len the size of buf.
-
- return the number of byte copied if some bytes are copied
- return 0 if the end of file was reached
- return <0 with error code if there is an error (UNZ_ERRNO for IO error, or zLib error for uncompress error) */
-extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, unsigned len)
-{
- int err = UNZ_OK;
- uInt read = 0;
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info == NULL)
- return UNZ_PARAMERROR;
- if (pfile_in_zip_read_info->read_buffer == NULL)
- return UNZ_END_OF_LIST_OF_FILE;
- if (len == 0)
- return 0;
-
- pfile_in_zip_read_info->stream.next_out = (Bytef *)buf;
- pfile_in_zip_read_info->stream.avail_out = (uInt)len;
-
- if (pfile_in_zip_read_info->raw) {
- if (len > pfile_in_zip_read_info->rest_read_compressed + pfile_in_zip_read_info->stream.avail_in)
- pfile_in_zip_read_info->stream.avail_out = (uInt)pfile_in_zip_read_info->rest_read_compressed +
- pfile_in_zip_read_info->stream.avail_in;
- } else {
-
- // NOTE:
- // This bit of code seems to try to set the amount of space in the output buffer based on the
- // value stored in the headers stored in the .zip file. However, if those values are incorrect
- // it may result in a loss of data when uncompresssing that file. The compressed data is still
- // legit and will deflate without knowing the uncompressed code so this tidbit is unnecessary and
- // may cause issues for some .zip files.
- //
- // It's removed in here to fix those issues.
- //
- // See: https://github.com/ZipArchive/ziparchive/issues/16
- //
-
- /*
-
-
- FIXME: Upgrading to minizip 1.1 caused issues here, Uncommented the code that was commented before. 11/24/2015
- */
-
- if (len > pfile_in_zip_read_info->rest_read_uncompressed)
- pfile_in_zip_read_info->stream.avail_out = (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
-
-
-
- }
-
- while (pfile_in_zip_read_info->stream.avail_out > 0) {
- if (pfile_in_zip_read_info->stream.avail_in == 0) {
- uInt bytes_to_read = UNZ_BUFSIZE;
- uInt bytes_not_read = 0;
- uInt bytes_read = 0;
- uInt total_bytes_read = 0;
-
- if (pfile_in_zip_read_info->stream.next_in != NULL)
- bytes_not_read = (uInt)(pfile_in_zip_read_info->read_buffer + UNZ_BUFSIZE -
- pfile_in_zip_read_info->stream.next_in);
- bytes_to_read -= bytes_not_read;
- if (bytes_not_read > 0)
- memcpy(pfile_in_zip_read_info->read_buffer, pfile_in_zip_read_info->stream.next_in, bytes_not_read);
- if (pfile_in_zip_read_info->rest_read_compressed < bytes_to_read)
- bytes_to_read = (uInt)pfile_in_zip_read_info->rest_read_compressed;
-
- while (total_bytes_read != bytes_to_read) {
- if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream,
- pfile_in_zip_read_info->pos_in_zipfile + pfile_in_zip_read_info->byte_before_the_zipfile,
- ZLIB_FILEFUNC_SEEK_SET) != 0)
- return UNZ_ERRNO;
-
- bytes_read = (int)ZREAD64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream,
- pfile_in_zip_read_info->read_buffer + bytes_not_read + total_bytes_read,
- bytes_to_read - total_bytes_read);
-
- total_bytes_read += bytes_read;
- pfile_in_zip_read_info->pos_in_zipfile += bytes_read;
-
- if (bytes_read == 0) {
- if (ZERROR64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream))
- return UNZ_ERRNO;
-
- err = unzGoToNextDisk(file);
- if (err != UNZ_OK)
- return err;
-
- pfile_in_zip_read_info->pos_in_zipfile = 0;
- pfile_in_zip_read_info->filestream = s->filestream;
- }
- }
-
-#ifndef NOUNCRYPT
- if ((s->cur_file_info.flag & 1) != 0) {
-#ifdef HAVE_AES
- if (s->cur_file_info.compression_method == AES_METHOD) {
- fcrypt_decrypt(pfile_in_zip_read_info->read_buffer, bytes_to_read, &s->pfile_in_zip_read->aes_ctx);
- } else
-#endif
- {
- uInt i;
- for (i = 0; i < total_bytes_read; i++)
- pfile_in_zip_read_info->read_buffer[i] =
- zdecode(s->keys, s->pcrc_32_tab, pfile_in_zip_read_info->read_buffer[i]);
- }
- }
-#endif
-
- pfile_in_zip_read_info->rest_read_compressed -= total_bytes_read;
- pfile_in_zip_read_info->stream.next_in = (Bytef *)pfile_in_zip_read_info->read_buffer;
- pfile_in_zip_read_info->stream.avail_in = (uInt)bytes_not_read + total_bytes_read;
- }
-
- if ((pfile_in_zip_read_info->compression_method == 0) || (pfile_in_zip_read_info->raw)) {
- uInt copy, i;
-
- if ((pfile_in_zip_read_info->stream.avail_in == 0) &&
- (pfile_in_zip_read_info->rest_read_compressed == 0))
- return (read == 0) ? UNZ_EOF : read;
-
- if (pfile_in_zip_read_info->stream.avail_out < pfile_in_zip_read_info->stream.avail_in)
- copy = pfile_in_zip_read_info->stream.avail_out;
- else
- copy = pfile_in_zip_read_info->stream.avail_in;
-
- for (i = 0; i < copy; i++)
- *(pfile_in_zip_read_info->stream.next_out + i) =
- *(pfile_in_zip_read_info->stream.next_in + i);
-
- pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + copy;
- pfile_in_zip_read_info->rest_read_uncompressed -= copy;
- pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
- pfile_in_zip_read_info->stream.next_out, copy);
-
- pfile_in_zip_read_info->stream.avail_in -= copy;
- pfile_in_zip_read_info->stream.avail_out -= copy;
- pfile_in_zip_read_info->stream.next_out += copy;
- pfile_in_zip_read_info->stream.next_in += copy;
- pfile_in_zip_read_info->stream.total_out += copy;
- read += copy;
- } else if (pfile_in_zip_read_info->compression_method == Z_BZIP2ED) {
-#ifdef HAVE_BZIP2
- uLong total_out_before, total_out_after;
- const Bytef *buf_before;
- uLong out_bytes;
-
- pfile_in_zip_read_info->bstream.next_in = (char *)pfile_in_zip_read_info->stream.next_in;
- pfile_in_zip_read_info->bstream.avail_in = pfile_in_zip_read_info->stream.avail_in;
- pfile_in_zip_read_info->bstream.total_in_lo32 = pfile_in_zip_read_info->stream.total_in;
- pfile_in_zip_read_info->bstream.total_in_hi32 = 0;
- pfile_in_zip_read_info->bstream.next_out = (char *)pfile_in_zip_read_info->stream.next_out;
- pfile_in_zip_read_info->bstream.avail_out = pfile_in_zip_read_info->stream.avail_out;
- pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out;
- pfile_in_zip_read_info->bstream.total_out_hi32 = 0;
-
- total_out_before = pfile_in_zip_read_info->bstream.total_out_lo32;
- buf_before = (const Bytef *)pfile_in_zip_read_info->bstream.next_out;
-
- err = BZ2_bzDecompress(&pfile_in_zip_read_info->bstream);
-
- total_out_after = pfile_in_zip_read_info->bstream.total_out_lo32;
- out_bytes = total_out_after - total_out_before;
-
- pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + out_bytes;
- pfile_in_zip_read_info->rest_read_uncompressed -= out_bytes;
- pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32, buf_before, (uInt)(out_bytes));
-
- read += (uInt)(total_out_after - total_out_before);
-
- pfile_in_zip_read_info->stream.next_in = (Bytef *)pfile_in_zip_read_info->bstream.next_in;
- pfile_in_zip_read_info->stream.avail_in = pfile_in_zip_read_info->bstream.avail_in;
- pfile_in_zip_read_info->stream.total_in = pfile_in_zip_read_info->bstream.total_in_lo32;
- pfile_in_zip_read_info->stream.next_out = (Bytef *)pfile_in_zip_read_info->bstream.next_out;
- pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out;
- pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32;
-
- if (err == BZ_STREAM_END)
- return (read == 0) ? UNZ_EOF : read;
- if (err != BZ_OK)
- break;
-#endif
- } else {
- ZPOS64_T total_out_before, total_out_after;
- const Bytef *buf_before;
- ZPOS64_T out_bytes;
- int flush = Z_SYNC_FLUSH;
-
- total_out_before = pfile_in_zip_read_info->stream.total_out;
- buf_before = pfile_in_zip_read_info->stream.next_out;
-
- /*
- if ((pfile_in_zip_read_info->rest_read_uncompressed ==
- pfile_in_zip_read_info->stream.avail_out) &&
- (pfile_in_zip_read_info->rest_read_compressed == 0))
- flush = Z_FINISH;
- */
- err = inflate(&pfile_in_zip_read_info->stream, flush);
-
- if ((err >= 0) && (pfile_in_zip_read_info->stream.msg != NULL))
- err = Z_DATA_ERROR;
-
- total_out_after = pfile_in_zip_read_info->stream.total_out;
- out_bytes = total_out_after - total_out_before;
-
- pfile_in_zip_read_info->total_out_64 += out_bytes;
- pfile_in_zip_read_info->rest_read_uncompressed -= out_bytes;
- pfile_in_zip_read_info->crc32 =
- crc32(pfile_in_zip_read_info->crc32, buf_before, (uInt)(out_bytes));
-
- read += (uInt)(total_out_after - total_out_before);
-
- if (err == Z_STREAM_END)
- return (read == 0) ? UNZ_EOF : read;
- if (err != Z_OK)
- break;
- }
- }
-
- if (err == Z_OK)
- return read;
- return err;
-}
-
-extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64(unzFile file)
-{
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- s = (unz64_s *)file;
- if (file == NULL)
- return 0; /* UNZ_PARAMERROR */
- pfile_in_zip_read_info = s->pfile_in_zip_read;
- if (pfile_in_zip_read_info == NULL)
- return 0; /* UNZ_PARAMERROR */
- return pfile_in_zip_read_info->pos_in_zipfile + pfile_in_zip_read_info->byte_before_the_zipfile;
-}
-
-extern int ZEXPORT unzGetLocalExtrafield(unzFile file, voidp buf, unsigned len)
-{
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- uInt read_now;
- ZPOS64_T size_to_read;
-
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info == NULL)
- return UNZ_PARAMERROR;
-
- size_to_read = pfile_in_zip_read_info->size_local_extrafield - pfile_in_zip_read_info->pos_local_extrafield;
-
- if (buf == NULL)
- return (int)size_to_read;
-
- if (len > size_to_read)
- read_now = (uInt)size_to_read;
- else
- read_now = (uInt)len;
-
- if (read_now == 0)
- return 0;
-
- if (ZSEEK64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream,
- pfile_in_zip_read_info->offset_local_extrafield + pfile_in_zip_read_info->pos_local_extrafield,
- ZLIB_FILEFUNC_SEEK_SET) != 0)
- return UNZ_ERRNO;
-
- if (ZREAD64(pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->filestream, buf, read_now) != read_now)
- return UNZ_ERRNO;
-
- return (int)read_now;
-}
-
-extern int ZEXPORT unzCloseCurrentFile(unzFile file)
-{
- int err = UNZ_OK;
-
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info == NULL)
- return UNZ_PARAMERROR;
-
-#ifdef HAVE_AES
- if (s->cur_file_info.compression_method == AES_METHOD) {
- unsigned char authcode[AES_AUTHCODESIZE];
- unsigned char rauthcode[AES_AUTHCODESIZE];
-
- if (ZREAD64(s->z_filefunc, s->filestream, authcode, AES_AUTHCODESIZE) != AES_AUTHCODESIZE)
- return UNZ_ERRNO;
-
- if (fcrypt_end(rauthcode, &s->pfile_in_zip_read->aes_ctx) != AES_AUTHCODESIZE)
- err = UNZ_CRCERROR;
- if (memcmp(authcode, rauthcode, AES_AUTHCODESIZE) != 0)
- err = UNZ_CRCERROR;
- }
- /* AES zip version AE-1 will expect a valid crc as well */
- if ((s->cur_file_info.compression_method != AES_METHOD) ||
- (s->cur_file_info_internal.aes_version == 0x0001))
-#endif
- {
- if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
- (!pfile_in_zip_read_info->raw)) {
- if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
- err = UNZ_CRCERROR;
- }
- }
-
- TRYFREE(pfile_in_zip_read_info->read_buffer);
- pfile_in_zip_read_info->read_buffer = NULL;
- if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED)
- inflateEnd(&pfile_in_zip_read_info->stream);
-#ifdef HAVE_BZIP2
- else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED)
- BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream);
-#endif
-
- pfile_in_zip_read_info->stream_initialised = 0;
- TRYFREE(pfile_in_zip_read_info);
-
- s->pfile_in_zip_read = NULL;
-
- return err;
-}
-
-extern int ZEXPORT unzGoToFirstFile2(unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size)
-{
- int err = UNZ_OK;
- unz64_s *s;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- s->pos_in_central_dir = s->offset_central_dir;
- s->num_file = 0;
- err = unz64local_GetCurrentFileInfoInternal(file, &s->cur_file_info, &s->cur_file_info_internal,
- filename, filename_size, extrafield, extrafield_size, comment, comment_size);
- s->current_file_ok = (err == UNZ_OK);
- if ((err == UNZ_OK) && (pfile_info != NULL))
- memcpy(pfile_info, &s->cur_file_info, sizeof(unz_file_info64));
- return err;
-}
-
-extern int ZEXPORT unzGoToFirstFile(unzFile file)
-{
- return unzGoToFirstFile2(file, NULL, NULL, 0, NULL, 0, NULL, 0);
-}
-
-extern int ZEXPORT unzGoToNextFile2(unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size)
-{
- unz64_s *s;
- int err;
-
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- if (!s->current_file_ok)
- return UNZ_END_OF_LIST_OF_FILE;
- if (s->gi.number_entry != 0xffff) /* 2^16 files overflow hack */
- if (s->num_file + 1 == s->gi.number_entry)
- return UNZ_END_OF_LIST_OF_FILE;
- s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
- s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment;
- s->num_file++;
- err = unz64local_GetCurrentFileInfoInternal(file, &s->cur_file_info, &s->cur_file_info_internal,
- filename, filename_size, extrafield, extrafield_size, comment, comment_size);
- s->current_file_ok = (err == UNZ_OK);
- if ((err == UNZ_OK) && (pfile_info != NULL))
- memcpy(pfile_info, &s->cur_file_info, sizeof(unz_file_info64));
- return err;
-}
-
-extern int ZEXPORT unzGoToNextFile(unzFile file)
-{
- return unzGoToNextFile2(file, NULL, NULL, 0, NULL, 0, NULL, 0);
-}
-
-extern int ZEXPORT unzLocateFile(unzFile file, const char *filename, unzFileNameComparer filename_compare_func)
-{
- unz64_s *s;
- int err;
- unz_file_info64 cur_file_info_saved;
- unz_file_info64_internal cur_file_info_internal_saved;
- ZPOS64_T num_file_saved;
- ZPOS64_T pos_in_central_dir_saved;
- char current_filename[UNZ_MAXFILENAMEINZIP + 1];
-
- if (file == NULL)
- return UNZ_PARAMERROR;
- if (strlen(filename) >= UNZ_MAXFILENAMEINZIP)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- if (!s->current_file_ok)
- return UNZ_END_OF_LIST_OF_FILE;
-
- /* Save the current state */
- num_file_saved = s->num_file;
- pos_in_central_dir_saved = s->pos_in_central_dir;
- cur_file_info_saved = s->cur_file_info;
- cur_file_info_internal_saved = s->cur_file_info_internal;
-
- err = unzGoToFirstFile2(file, NULL, current_filename, sizeof(current_filename) - 1, NULL, 0, NULL, 0);
-
- while (err == UNZ_OK) {
- if (filename_compare_func != NULL)
- err = filename_compare_func(file, current_filename, filename);
- else
- err = strcmp(current_filename, filename);
- if (err == 0)
- return UNZ_OK;
- err = unzGoToNextFile2(file, NULL, current_filename, sizeof(current_filename) - 1, NULL, 0, NULL, 0);
- }
-
- /* We failed, so restore the state of the 'current file' to where we were. */
- s->num_file = num_file_saved;
- s->pos_in_central_dir = pos_in_central_dir_saved;
- s->cur_file_info = cur_file_info_saved;
- s->cur_file_info_internal = cur_file_info_internal_saved;
- return err;
-}
-
-extern int ZEXPORT unzGetFilePos(unzFile file, unz_file_pos *file_pos)
-{
- unz64_file_pos file_pos64;
- int err = unzGetFilePos64(file, &file_pos64);
- if (err == UNZ_OK) {
- file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory;
- file_pos->num_of_file = (uLong)file_pos64.num_of_file;
- }
- return err;
-}
-
-extern int ZEXPORT unzGoToFilePos(unzFile file, unz_file_pos *file_pos)
-{
- unz64_file_pos file_pos64;
-
- if (file_pos == NULL)
- return UNZ_PARAMERROR;
- file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory;
- file_pos64.num_of_file = file_pos->num_of_file;
- return unzGoToFilePos64(file, &file_pos64);
-}
-
-extern int ZEXPORT unzGetFilePos64(unzFile file, unz64_file_pos *file_pos)
-{
- unz64_s *s;
-
- if (file == NULL || file_pos == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- if (!s->current_file_ok)
- return UNZ_END_OF_LIST_OF_FILE;
-
- file_pos->pos_in_zip_directory = s->pos_in_central_dir;
- file_pos->num_of_file = s->num_file;
-
- return UNZ_OK;
-}
-
-extern int ZEXPORT unzGoToFilePos64(unzFile file, const unz64_file_pos *file_pos)
-{
- unz64_s *s;
- int err;
-
- if (file == NULL || file_pos == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
-
- /* jump to the right spot */
- s->pos_in_central_dir = file_pos->pos_in_zip_directory;
- s->num_file = file_pos->num_of_file;
-
- /* set the current file */
- err = unz64local_GetCurrentFileInfoInternal(file, &s->cur_file_info, &s->cur_file_info_internal, NULL, 0, NULL, 0, NULL, 0);
- /* return results */
- s->current_file_ok = (err == UNZ_OK);
- return err;
-}
-
-extern uLong ZEXPORT unzGetOffset(unzFile file)
-{
- ZPOS64_T offset64;
-
- if (file == NULL)
- return 0; /* UNZ_PARAMERROR; */
- offset64 = unzGetOffset64(file);
- return (uLong)offset64;
-}
-
-extern ZPOS64_T ZEXPORT unzGetOffset64(unzFile file)
-{
- unz64_s *s;
-
- if (file == NULL)
- return 0; /* UNZ_PARAMERROR; */
- s = (unz64_s *)file;
- if (!s->current_file_ok)
- return 0;
- if (s->gi.number_entry != 0 && s->gi.number_entry != 0xffff)
- if (s->num_file == s->gi.number_entry)
- return 0;
- return s->pos_in_central_dir;
-}
-
-extern int ZEXPORT unzSetOffset(unzFile file, uLong pos)
-{
- return unzSetOffset64(file, pos);
-}
-
-extern int ZEXPORT unzSetOffset64(unzFile file, ZPOS64_T pos)
-{
- unz64_s *s;
- int err;
-
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
-
- s->pos_in_central_dir = pos;
- s->num_file = s->gi.number_entry; /* hack */
- err = unz64local_GetCurrentFileInfoInternal(file, &s->cur_file_info, &s->cur_file_info_internal, NULL, 0, NULL, 0, NULL, 0);
- s->current_file_ok = (err == UNZ_OK);
- return err;
-}
-
-extern z_off_t ZEXPORT unztell(unzFile file)
-{
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
- if (pfile_in_zip_read_info == NULL)
- return UNZ_PARAMERROR;
- return (z_off_t)pfile_in_zip_read_info->stream.total_out;
-}
-
-extern ZPOS64_T ZEXPORT unztell64(unzFile file)
-{
-
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- if (file == NULL)
- return (ZPOS64_T)-1;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info == NULL)
- return (ZPOS64_T)-1;
-
- return pfile_in_zip_read_info->total_out_64;
-}
-
-extern int ZEXPORT unzeof(unzFile file)
-{
- unz64_s *s;
- file_in_zip64_read_info_s *pfile_in_zip_read_info;
- if (file == NULL)
- return UNZ_PARAMERROR;
- s = (unz64_s *)file;
- pfile_in_zip_read_info = s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info == NULL)
- return UNZ_PARAMERROR;
-
- if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
- return 1;
- return 0;
-}
-
diff --git a/ios/RCTPushy/SSZipArchive/minizip/unzip.h b/ios/RCTPushy/SSZipArchive/minizip/unzip.h
deleted file mode 100755
index 02c4c58..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/unzip.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/* unzip.h -- IO for uncompress .zip files using zlib
- Version 1.1, February 14h, 2010
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications of Unzip for Zip64
- Copyright (C) 2007-2008 Even Rouault
- Modifications for Zip64 support on both zip and unzip
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
-*/
-
-#include "Common.h"
-
-#ifndef _UNZ_H
-#define _UNZ_H
-
-#define HAVE_AES
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _ZLIB_H
-#include "zlib.h"
-#endif
-
-#ifndef _ZLIBIOAPI_H
-#include "ioapi.h"
-#endif
-
-#ifdef HAVE_BZIP2
-#include "bzlib.h"
-#endif
-
-#define Z_BZIP2ED 12
-
-#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
-/* like the STRICT of WIN32, we define a pointer that cannot be converted
- from (void*) without cast */
-typedef struct TagunzFile__ { int unused; } unzFile__;
-typedef unzFile__ *unzFile;
-#else
-typedef voidp unzFile;
-#endif
-
-
-#define UNZ_OK (0)
-#define UNZ_END_OF_LIST_OF_FILE (-100)
-#define UNZ_ERRNO (Z_ERRNO)
-#define UNZ_EOF (0)
-#define UNZ_PARAMERROR (-102)
-#define UNZ_BADZIPFILE (-103)
-#define UNZ_INTERNALERROR (-104)
-#define UNZ_CRCERROR (-105)
-
-
-/***************************************************************************/
-/* Opening and close a zip file */
-
-extern unzFile ZEXPORT unzOpen OF((const char *path));
-extern unzFile ZEXPORT unzOpen64 OF((const void *path));
-/* Open a Zip file.
-
- path should contain the full pathname (by example, on a Windows XP computer
- "c:\\zlib\\zlib113.zip" or on an Unix computer "zlib/zlib113.zip".
- return NULL if zipfile cannot be opened or doesn't exist
- return unzFile handle if no error
-
- NOTE: The "64" function take a const void* pointer, because the path is just the value passed to the
- open64_file_func callback. Under Windows, if UNICODE is defined, using fill_fopen64_filefunc, the path
- is a pointer to a wide unicode string (LPCTSTR is LPCWSTR), so const char* does not describe the reality */
-
-extern unzFile ZEXPORT unzOpen2 OF((const char *path, zlib_filefunc_def* pzlib_filefunc_def));
-/* Open a Zip file, like unzOpen, but provide a set of file low level API for read/write operations */
-extern unzFile ZEXPORT unzOpen2_64 OF((const void *path, zlib_filefunc64_def* pzlib_filefunc_def));
-/* Open a Zip file, like unz64Open, but provide a set of file low level API for read/write 64-bit operations */
-
-extern int ZEXPORT unzClose OF((unzFile file));
-/* Close a ZipFile opened with unzipOpen. If there is files inside the .Zip opened with unzOpenCurrentFile,
- these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
-
- return UNZ_OK if there is no error */
-
-extern int ZEXPORT unzGetGlobalInfo OF((unzFile file, unz_global_info *pglobal_info));
-extern int ZEXPORT unzGetGlobalInfo64 OF((unzFile file, unz_global_info64 *pglobal_info));
-/* Write info about the ZipFile in the *pglobal_info structure.
-
- return UNZ_OK if no error */
-
-extern int ZEXPORT unzGetGlobalComment OF((unzFile file, char *comment, uLong comment_size));
-/* Get the global comment string of the ZipFile, in the comment buffer.
-
- uSizeBuf is the size of the szComment buffer.
- return the number of byte copied or an error code <0 */
-
-/***************************************************************************/
-/* Reading the content of the current zipfile, you can open it, read data from it, and close it
- (you can close it before reading all the file) */
-
-extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
-/* Open for reading data the current file in the zipfile.
-
- return UNZ_OK if no error */
-
-extern int ZEXPORT unzOpenCurrentFilePassword OF((unzFile file, const char* password));
-/* Open for reading data the current file in the zipfile.
- password is a crypting password
-
- return UNZ_OK if no error */
-
-extern int ZEXPORT unzOpenCurrentFile2 OF((unzFile file, int* method, int* level, int raw));
-/* Same as unzOpenCurrentFile, but open for read raw the file (not uncompress)
- if raw==1 *method will receive method of compression, *level will receive level of compression
-
- NOTE: you can set level parameter as NULL (if you did not want known level,
- but you CANNOT set method parameter as NULL */
-
-extern int ZEXPORT unzOpenCurrentFile3 OF((unzFile file, int* method, int* level, int raw, const char* password));
-/* Same as unzOpenCurrentFile, but takes extra parameter password for encrypted files */
-
-extern int ZEXPORT unzReadCurrentFile OF((unzFile file, voidp buf, unsigned len));
-/* Read bytes from the current file (opened by unzOpenCurrentFile)
- buf contain buffer where data must be copied
- len the size of buf.
-
- return the number of byte copied if somes bytes are copied
- return 0 if the end of file was reached
- return <0 with error code if there is an error (UNZ_ERRNO for IO error, or zLib error for uncompress error) */
-
-extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file, unz_file_info *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size));
-extern int ZEXPORT unzGetCurrentFileInfo64 OF((unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size));
-/* Get Info about the current file
-
- pfile_info if != NULL, the *pfile_info structure will contain somes info about the current file
- filename if != NULL, the file name string will be copied in filename
- filename_size is the size of the filename buffer
- extrafield if != NULL, the extra field information from the central header will be copied in to
- extrafield_size is the size of the extraField buffer
- comment if != NULL, the comment string of the file will be copied in to
- comment_size is the size of the comment buffer */
-
-extern ZPOS64_T ZEXPORT unzGetCurrentFileZStreamPos64 OF((unzFile file));
-
-extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file, voidp buf, unsigned len));
-/* Read extra field from the current file (opened by unzOpenCurrentFile)
- This is the local-header version of the extra field (sometimes, there is
- more info in the local-header version than in the central-header)
-
- if buf == NULL, it return the size of the local extra field
- if buf != NULL, len is the size of the buffer, the extra header is copied in buf.
-
- return number of bytes copied in buf, or (if <0) the error code */
-
-extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
-/* Close the file in zip opened with unzOpenCurrentFile
-
- return UNZ_CRCERROR if all the file was read but the CRC is not good */
-
-/***************************************************************************/
-/* Browse the directory of the zipfile */
-
-typedef int (*unzFileNameComparer)(unzFile file, const char *filename1, const char *filename2);
-typedef int (*unzIteratorFunction)(unzFile file);
-typedef int (*unzIteratorFunction2)(unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size);
-
-extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
-/* Set the current file of the zipfile to the first file.
-
- return UNZ_OK if no error */
-
-extern int ZEXPORT unzGoToFirstFile2 OF((unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size));
-/* Set the current file of the zipfile to the first file and retrieves the current info on success.
- Not as seek intensive as unzGoToFirstFile + unzGetCurrentFileInfo.
-
- return UNZ_OK if no error */
-
-extern int ZEXPORT unzGoToNextFile OF((unzFile file));
-/* Set the current file of the zipfile to the next file.
-
- return UNZ_OK if no error
- return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest */
-
-extern int ZEXPORT unzGoToNextFile2 OF((unzFile file, unz_file_info64 *pfile_info, char *filename,
- uLong filename_size, void *extrafield, uLong extrafield_size, char *comment, uLong comment_size));
-/* Set the current file of the zipfile to the next file and retrieves the current
- info on success. Does less seeking around than unzGotoNextFile + unzGetCurrentFileInfo.
-
- return UNZ_OK if no error
- return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest */
-
-extern int ZEXPORT unzLocateFile OF((unzFile file, const char *filename, unzFileNameComparer filename_compare_func));
-/* Try locate the file szFileName in the zipfile. For custom filename comparison pass in comparison function.
-
- return UNZ_OK if the file is found (it becomes the current file)
- return UNZ_END_OF_LIST_OF_FILE if the file is not found */
-
-/***************************************************************************/
-/* Raw access to zip file */
-
-typedef struct unz_file_pos_s
-{
- uLong pos_in_zip_directory; /* offset in zip file directory */
- uLong num_of_file; /* # of file */
-} unz_file_pos;
-
-extern int ZEXPORT unzGetFilePos OF((unzFile file, unz_file_pos* file_pos));
-extern int ZEXPORT unzGoToFilePos OF((unzFile file, unz_file_pos* file_pos));
-
-typedef struct unz64_file_pos_s
-{
- ZPOS64_T pos_in_zip_directory; /* offset in zip file directory */
- ZPOS64_T num_of_file; /* # of file */
-} unz64_file_pos;
-
-extern int ZEXPORT unzGetFilePos64 OF((unzFile file, unz64_file_pos* file_pos));
-extern int ZEXPORT unzGoToFilePos64 OF((unzFile file, const unz64_file_pos* file_pos));
-
-extern uLong ZEXPORT unzGetOffset OF((unzFile file));
-extern ZPOS64_T ZEXPORT unzGetOffset64 OF((unzFile file));
-/* Get the current file offset */
-
-extern int ZEXPORT unzSetOffset OF((unzFile file, uLong pos));
-extern int ZEXPORT unzSetOffset64 OF((unzFile file, ZPOS64_T pos));
-/* Set the current file offset */
-
-extern z_off_t ZEXPORT unztell OF((unzFile file));
-extern ZPOS64_T ZEXPORT unztell64 OF((unzFile file));
-/* return current position in uncompressed data */
-
-extern int ZEXPORT unzeof OF((unzFile file));
-/* return 1 if the end of file was reached, 0 elsewhere */
-
-/***************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _UNZ_H */
diff --git a/ios/RCTPushy/SSZipArchive/minizip/zip.c b/ios/RCTPushy/SSZipArchive/minizip/zip.c
deleted file mode 100755
index b88bd88..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/zip.c
+++ /dev/null
@@ -1,1915 +0,0 @@
-/* zip.c -- IO on .zip files using zlib
- Version 1.1, February 14h, 2010
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications for Zip64 support
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
- Modifications for AES, PKWARE disk spanning
- Copyright (C) 2010-2014 Nathan Moinvaziri
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
- */
-
-#include
-#include
-#include
-#include
-#include "zlib.h"
-#include "zip.h"
-
-#ifdef STDC
-# include
-# include
-# include
-#endif
-#ifdef NO_ERRNO_H
-extern int errno;
-#else
-# include
-#endif
-
-#ifdef HAVE_AES
-# define AES_METHOD (99)
-# define AES_PWVERIFYSIZE (2)
-# define AES_AUTHCODESIZE (10)
-# define AES_MAXSALTLENGTH (16)
-# define AES_VERSION (0x0001)
-# define AES_ENCRYPTIONMODE (0x03)
-
-# include "aes.h"
-# include "fileenc.h"
-# include "prng.h"
-# include "entropy.h"
-#endif
-
-#ifndef NOCRYPT
-# define INCLUDECRYPTINGCODE_IFCRYPTALLOWED
-# include "crypt.h"
-#endif
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-#define SIZEDATA_INDATABLOCK (4096 - (4 * 4))
-
-#define DISKHEADERMAGIC (0x08074b50)
-#define LOCALHEADERMAGIC (0x04034b50)
-#define CENTRALHEADERMAGIC (0x02014b50)
-#define ENDHEADERMAGIC (0x06054b50)
-#define ZIP64ENDHEADERMAGIC (0x06064b50)
-#define ZIP64ENDLOCHEADERMAGIC (0x07064b50)
-
-#define FLAG_LOCALHEADER_OFFSET (0x06)
-#define CRC_LOCALHEADER_OFFSET (0x0e)
-
-#define SIZECENTRALHEADER (0x2e) /* 46 */
-#define SIZECENTRALHEADERLOCATOR (0x14) /* 20 */
-#define SIZECENTRALDIRITEM (0x2e)
-#define SIZEZIPLOCALHEADER (0x1e)
-
-#ifndef BUFREADCOMMENT
-# define BUFREADCOMMENT (0x400)
-#endif
-#ifndef VERSIONMADEBY
-# define VERSIONMADEBY (0x0) /* platform dependent */
-#endif
-
-#ifndef Z_BUFSIZE
-# define Z_BUFSIZE (64 * 1024)
-#endif
-#ifndef Z_MAXFILENAMEINZIP
-# define Z_MAXFILENAMEINZIP (256)
-#endif
-
-#ifndef ALLOC
-# define ALLOC(size) (malloc(size))
-#endif
-#ifndef TRYFREE
-# define TRYFREE(p) {if (p) free(p); }
-#endif
-
-/* NOT sure that this work on ALL platform */
-#define MAKEULONG64(a, b) ((ZPOS64_T)(((unsigned long)(a)) | ((ZPOS64_T)((unsigned long)(b))) << 32))
-
-#ifndef DEF_MEM_LEVEL
-# if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-# else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-# endif
-#endif
-
-const char zip_copyright[] = " zip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
-
-typedef struct linkedlist_datablock_internal_s {
- struct linkedlist_datablock_internal_s *next_datablock;
- uLong avail_in_this_block;
- uLong filled_in_this_block;
- uLong unused; /* for future use and alignment */
- unsigned char data[SIZEDATA_INDATABLOCK];
-} linkedlist_datablock_internal;
-
-typedef struct linkedlist_data_s {
- linkedlist_datablock_internal *first_block;
- linkedlist_datablock_internal *last_block;
-} linkedlist_data;
-
-typedef struct {
- z_stream stream; /* zLib stream structure for inflate */
-#ifdef HAVE_BZIP2
- bz_stream bstream; /* bzLib stream structure for bziped */
-#endif
-#ifdef HAVE_AES
- fcrypt_ctx aes_ctx;
- prng_ctx aes_rng[1];
-#endif
- int stream_initialised; /* 1 is stream is initialized */
- uInt pos_in_buffered_data; /* last written byte in buffered_data */
-
- ZPOS64_T pos_local_header; /* offset of the local header of the file currently writing */
- char *central_header; /* central header data for the current file */
- uLong size_centralextra;
- uLong size_centralheader; /* size of the central header for cur file */
- uLong size_centralextrafree; /* Extra bytes allocated to the central header but that are not used */
- uLong size_comment;
- uLong flag; /* flag of the file currently writing */
-
- int method; /* compression method written to file.*/
- int compression_method; /* compression method to use */
- int raw; /* 1 for directly writing raw data */
- Byte buffered_data[Z_BUFSIZE]; /* buffer contain compressed data to be writ*/
- uLong dosDate;
- uLong crc32;
- int zip64; /* Add ZIP64 extended information in the extra field */
- uLong number_disk; /* number of current disk used for spanning ZIP */
- ZPOS64_T pos_zip64extrainfo;
- ZPOS64_T total_compressed;
- ZPOS64_T total_uncompressed;
-#ifndef NOCRYPT
- unsigned long keys[3]; /* keys defining the pseudo-random sequence */
- const unsigned long *pcrc_32_tab;
- int crypt_header_size;
-#endif
-} curfile64_info;
-
-typedef struct {
- zlib_filefunc64_32_def z_filefunc;
- voidpf filestream; /* io structure of the zipfile */
- voidpf filestream_with_CD; /* io structure of the zipfile with the central dir */
- linkedlist_data central_dir; /* datablock with central dir in construction*/
- int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/
- int append; /* append mode */
- curfile64_info ci; /* info on the file currently writing */
-
- ZPOS64_T begin_pos; /* position of the beginning of the zipfile */
- ZPOS64_T add_position_when_writting_offset;
- ZPOS64_T number_entry;
- ZPOS64_T disk_size; /* size of each disk */
- uLong number_disk; /* number of the current disk, used for spanning ZIP */
- uLong number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP */
-#ifndef NO_ADDFILEINEXISTINGZIP
- char *globalcomment;
-#endif
-} zip64_internal;
-
-/* Allocate a new data block */
-local linkedlist_datablock_internal *allocate_new_datablock OF(());
-local linkedlist_datablock_internal *allocate_new_datablock()
-{
- linkedlist_datablock_internal *ldi;
-
- ldi = (linkedlist_datablock_internal *)ALLOC(sizeof(linkedlist_datablock_internal));
-
- if (ldi != NULL) {
- ldi->next_datablock = NULL;
- ldi->filled_in_this_block = 0;
- ldi->avail_in_this_block = SIZEDATA_INDATABLOCK;
- }
- return ldi;
-}
-
-/* Free data block in linked list */
-local void free_datablock OF((linkedlist_datablock_internal * ldi));
-local void free_datablock(linkedlist_datablock_internal *ldi)
-{
- while (ldi != NULL) {
- linkedlist_datablock_internal *ldinext = ldi->next_datablock;
- TRYFREE(ldi);
- ldi = ldinext;
- }
-}
-
-/* Initialize linked list */
-local void init_linkedlist OF((linkedlist_data * ll));
-local void init_linkedlist(linkedlist_data *ll)
-{
- ll->first_block = ll->last_block = NULL;
-}
-
-/* Free entire linked list and all data blocks */
-local void free_linkedlist OF((linkedlist_data * ll));
-local void free_linkedlist(linkedlist_data *ll)
-{
- free_datablock(ll->first_block);
- ll->first_block = ll->last_block = NULL;
-}
-
-/* Add data to linked list data block */
-local int add_data_in_datablock OF((linkedlist_data * ll, const void *buf, uLong len));
-local int add_data_in_datablock(linkedlist_data *ll, const void *buf, uLong len)
-{
- linkedlist_datablock_internal *ldi;
- const unsigned char *from_copy;
-
- if (ll == NULL)
- return ZIP_INTERNALERROR;
-
- if (ll->last_block == NULL) {
- ll->first_block = ll->last_block = allocate_new_datablock();
- if (ll->first_block == NULL)
- return ZIP_INTERNALERROR;
- }
-
- ldi = ll->last_block;
- from_copy = (unsigned char *)buf;
-
- while (len > 0) {
- uInt copy_this;
- uInt i;
- unsigned char *to_copy;
-
- if (ldi->avail_in_this_block == 0) {
- ldi->next_datablock = allocate_new_datablock();
- if (ldi->next_datablock == NULL)
- return ZIP_INTERNALERROR;
- ldi = ldi->next_datablock;
- ll->last_block = ldi;
- }
-
- if (ldi->avail_in_this_block < len)
- copy_this = (uInt)ldi->avail_in_this_block;
- else
- copy_this = (uInt)len;
-
- to_copy = &(ldi->data[ldi->filled_in_this_block]);
-
- for (i = 0; i < copy_this; i++)
- *(to_copy + i) = *(from_copy + i);
-
- ldi->filled_in_this_block += copy_this;
- ldi->avail_in_this_block -= copy_this;
- from_copy += copy_this;
- len -= copy_this;
- }
- return ZIP_OK;
-}
-
-local uLong zip64local_TmzDateToDosDate OF((const tm_zip * ptm));
-local uLong zip64local_TmzDateToDosDate(const tm_zip *ptm)
-{
- uLong year;
-#define zip64local_in_range(min, max, value) ((min) <= (value) && (value) <= (max))
- /* Years supported:
- * [00, 79] (assumed to be between 2000 and 2079)
- * [80, 207] (assumed to be between 1980 and 2107, typical output of old
- software that does 'year-1900' to get a double digit year)
- * [1980, 2107]
- Due to the date format limitations, only years between 1980 and 2107 can be stored.
- */
- if (!(zip64local_in_range(1980, 2107, ptm->tm_year) || zip64local_in_range(0, 207, ptm->tm_year)) ||
- !zip64local_in_range(0, 11, ptm->tm_mon) ||
- !zip64local_in_range(1, 31, ptm->tm_mday) ||
- !zip64local_in_range(0, 23, ptm->tm_hour) ||
- !zip64local_in_range(0, 59, ptm->tm_min) ||
- !zip64local_in_range(0, 59, ptm->tm_sec))
- return 0;
-#undef zip64local_in_range
-
- year = (uLong)ptm->tm_year;
- if (year >= 1980) /* range [1980, 2107] */
- year -= 1980;
- else if (year >= 80) /* range [80, 99] */
- year -= 80;
- else /* range [00, 79] */
- year += 20;
-
- return
- (uLong)(((ptm->tm_mday) + (32 * (ptm->tm_mon + 1)) + (512 * year)) << 16) |
- ((ptm->tm_sec / 2) + (32 * ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
-}
-
-/* Inputs a long in LSB order to the given file: nbByte == 1, 2 ,4 or 8 (byte, short or long, ZPOS64_T) */
-local int zip64local_putValue OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream,
- ZPOS64_T x, int nbByte));
-local int zip64local_putValue(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream,
- ZPOS64_T x, int nbByte)
-{
- unsigned char buf[8];
- int n;
- for (n = 0; n < nbByte; n++) {
- buf[n] = (unsigned char)(x & 0xff);
- x >>= 8;
- }
- if (x != 0) {
- /* data overflow - hack for ZIP64 (X Roche) */
- for (n = 0; n < nbByte; n++) {
- buf[n] = 0xff;
- }
- }
-
- if (ZWRITE64(*pzlib_filefunc_def, filestream, buf, nbByte) != (uLong)nbByte)
- return ZIP_ERRNO;
-
- return ZIP_OK;
-}
-
-local void zip64local_putValue_inmemory OF((void *dest, ZPOS64_T x, int nbByte));
-local void zip64local_putValue_inmemory(void *dest, ZPOS64_T x, int nbByte)
-{
- unsigned char *buf = (unsigned char *)dest;
- int n;
- for (n = 0; n < nbByte; n++) {
- buf[n] = (unsigned char)(x & 0xff);
- x >>= 8;
- }
-
- if (x != 0) {
- /* data overflow - hack for ZIP64 */
- for (n = 0; n < nbByte; n++) {
- buf[n] = 0xff;
- }
- }
-}
-
-local int zip64local_getByte OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, int *pi));
-local int zip64local_getByte(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, int *pi)
-{
- unsigned char c;
- int err = (int)ZREAD64(*pzlib_filefunc_def, filestream, &c, 1);
- if (err == 1) {
- *pi = (int)c;
- return ZIP_OK;
- }
- if (ZERROR64(*pzlib_filefunc_def, filestream))
- return ZIP_ERRNO;
- return ZIP_EOF;
-}
-
-local int zip64local_getShort OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, uLong * pX));
-local int zip64local_getShort(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
-{
- uLong x;
- int i = 0;
- int err;
-
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (uLong)i;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((uLong)i) << 8;
-
- if (err == ZIP_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-local int zip64local_getLong OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, uLong * pX));
-local int zip64local_getLong(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, uLong *pX)
-{
- uLong x;
- int i = 0;
- int err;
-
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (uLong)i;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((uLong)i) << 8;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((uLong)i) << 16;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((uLong)i) << 24;
-
- if (err == ZIP_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-local int zip64local_getLong64 OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream, ZPOS64_T * pX));
-local int zip64local_getLong64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream, ZPOS64_T *pX)
-{
- ZPOS64_T x;
- int i = 0;
- int err;
-
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x = (ZPOS64_T)i;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 8;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 16;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 24;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 32;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 40;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 48;
- if (err == ZIP_OK)
- err = zip64local_getByte(pzlib_filefunc_def, filestream, &i);
- x += ((ZPOS64_T)i) << 56;
-
- if (err == ZIP_OK)
- *pX = x;
- else
- *pX = 0;
-
- return err;
-}
-
-/* Gets the amount of bytes left to write to the current disk for spanning archives */
-local int zipGetDiskSizeAvailable OF((zipFile file, ZPOS64_T * size_available));
-local int zipGetDiskSizeAvailable(zipFile file, ZPOS64_T *size_available)
-{
- zip64_internal *zi;
- ZPOS64_T current_disk_size;
-
- zi = (zip64_internal *)file;
- ZSEEK64(zi->z_filefunc, zi->filestream, 0, ZLIB_FILEFUNC_SEEK_END);
- current_disk_size = ZTELL64(zi->z_filefunc, zi->filestream);
- *size_available = zi->disk_size - current_disk_size;
- return ZIP_OK;
-}
-
-/* Goes to a specific disk number for spanning archives */
-local int zipGoToSpecificDisk OF((zipFile file, int number_disk, int open_existing));
-local int zipGoToSpecificDisk(zipFile file, int number_disk, int open_existing)
-{
- zip64_internal *zi;
- int err = ZIP_OK;
-
- zi = (zip64_internal *)file;
- if (zi->disk_size == 0)
- return err;
-
- if ((zi->filestream != NULL) && (zi->filestream != zi->filestream_with_CD))
- ZCLOSE64(zi->z_filefunc, zi->filestream);
-
- zi->filestream = ZOPENDISK64(zi->z_filefunc, zi->filestream_with_CD, number_disk, (open_existing == 1) ?
- (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING) :
- (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE));
-
- if (zi->filestream == NULL)
- err = ZIP_ERRNO;
-
- return err;
-}
-
-/* Goes to the first disk in a spanned archive */
-local int zipGoToFirstDisk OF((zipFile file));
-local int zipGoToFirstDisk(zipFile file)
-{
- zip64_internal *zi;
- int number_disk_next;
- int err = ZIP_OK;
-
- zi = (zip64_internal *)file;
-
- if (zi->disk_size == 0)
- return err;
- number_disk_next = 0;
- if (zi->number_disk_with_CD > 0)
- number_disk_next = (int)zi->number_disk_with_CD - 1;
- err = zipGoToSpecificDisk(file, number_disk_next, (zi->append == APPEND_STATUS_ADDINZIP));
- if ((err == ZIP_ERRNO) && (zi->append == APPEND_STATUS_ADDINZIP))
- err = zipGoToSpecificDisk(file, number_disk_next, 0);
- if (err == ZIP_OK)
- zi->number_disk = number_disk_next;
- ZSEEK64(zi->z_filefunc, zi->filestream, 0, ZLIB_FILEFUNC_SEEK_END);
- return err;
-}
-
-/* Goes to the next disk in a spanned archive */
-local int zipGoToNextDisk OF((zipFile file));
-local int zipGoToNextDisk(zipFile file)
-{
- zip64_internal *zi;
- ZPOS64_T size_available_in_disk;
- int err = ZIP_OK;
- int number_disk_next;
-
- zi = (zip64_internal *)file;
-
- if (zi->disk_size == 0)
- return err;
-
- number_disk_next = (int)zi->number_disk + 1;
-
- do {
- err = zipGoToSpecificDisk(file, number_disk_next, (zi->append == APPEND_STATUS_ADDINZIP));
- if ((err == ZIP_ERRNO) && (zi->append == APPEND_STATUS_ADDINZIP))
- err = zipGoToSpecificDisk(file, number_disk_next, 0);
- if (err != ZIP_OK)
- break;
- err = zipGetDiskSizeAvailable(file, &size_available_in_disk);
- if (err != ZIP_OK)
- break;
- zi->number_disk = number_disk_next;
- zi->number_disk_with_CD = zi->number_disk + 1;
-
- number_disk_next += 1;
- } while (size_available_in_disk <= 0);
-
- return err;
-}
-
-/* Locate the Central directory of a zipfile (at the end, just before the global comment) */
-local ZPOS64_T zip64local_SearchCentralDir OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream));
-local ZPOS64_T zip64local_SearchCentralDir(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream)
-{
- unsigned char *buf;
- ZPOS64_T file_size;
- ZPOS64_T back_read = 4;
- ZPOS64_T max_back = 0xffff; /* maximum size of global comment */
- ZPOS64_T pos_found = 0;
- uLong read_size;
- ZPOS64_T read_pos;
- int i;
-
- buf = (unsigned char *)ALLOC(BUFREADCOMMENT + 4);
- if (buf == NULL)
- return 0;
-
- if (ZSEEK64(*pzlib_filefunc_def, filestream, 0, ZLIB_FILEFUNC_SEEK_END) != 0) {
- TRYFREE(buf);
- return 0;
- }
-
- file_size = ZTELL64(*pzlib_filefunc_def, filestream);
-
- if (max_back > file_size)
- max_back = file_size;
-
- while (back_read < max_back) {
- if (back_read + BUFREADCOMMENT > max_back)
- back_read = max_back;
- else
- back_read += BUFREADCOMMENT;
-
- read_pos = file_size - back_read;
- read_size = ((BUFREADCOMMENT + 4) < (file_size - read_pos)) ?
- (BUFREADCOMMENT + 4) : (uLong)(file_size - read_pos);
-
- if (ZSEEK64(*pzlib_filefunc_def, filestream, read_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- break;
- if (ZREAD64(*pzlib_filefunc_def, filestream, buf, read_size) != read_size)
- break;
-
- for (i = (int)read_size - 3; (i--) > 0; )
- if ((*(buf + i)) == (ENDHEADERMAGIC & 0xff) &&
- (*(buf + i + 1)) == (ENDHEADERMAGIC >> 8 & 0xff) &&
- (*(buf + i + 2)) == (ENDHEADERMAGIC >> 16 & 0xff) &&
- (*(buf + i + 3)) == (ENDHEADERMAGIC >> 24 & 0xff)) {
- pos_found = read_pos + i;
- break;
- }
-
- if (pos_found != 0)
- break;
- }
- TRYFREE(buf);
- return pos_found;
-}
-
-/* Locate the Central directory 64 of a zipfile (at the end, just before the global comment) */
-local ZPOS64_T zip64local_SearchCentralDir64 OF((const zlib_filefunc64_32_def * pzlib_filefunc_def, voidpf filestream,
- const ZPOS64_T endcentraloffset));
-local ZPOS64_T zip64local_SearchCentralDir64(const zlib_filefunc64_32_def *pzlib_filefunc_def, voidpf filestream,
- const ZPOS64_T endcentraloffset)
-{
- ZPOS64_T offset;
- uLong uL;
-
- /* Zip64 end of central directory locator */
- if (ZSEEK64(*pzlib_filefunc_def, filestream, endcentraloffset - SIZECENTRALHEADERLOCATOR, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return 0;
-
- /* read locator signature */
- if (zip64local_getLong(pzlib_filefunc_def, filestream, &uL) != ZIP_OK)
- return 0;
- if (uL != ZIP64ENDLOCHEADERMAGIC)
- return 0;
- /* number of the disk with the start of the zip64 end of central directory */
- if (zip64local_getLong(pzlib_filefunc_def, filestream, &uL) != ZIP_OK)
- return 0;
- /* relative offset of the zip64 end of central directory record */
- if (zip64local_getLong64(pzlib_filefunc_def, filestream, &offset) != ZIP_OK)
- return 0;
- /* total number of disks */
- if (zip64local_getLong(pzlib_filefunc_def, filestream, &uL) != ZIP_OK)
- return 0;
- /* Goto end of central directory record */
- if (ZSEEK64(*pzlib_filefunc_def, filestream, offset, ZLIB_FILEFUNC_SEEK_SET) != 0)
- return 0;
- /* the signature */
- if (zip64local_getLong(pzlib_filefunc_def, filestream, &uL) != ZIP_OK)
- return 0;
- if (uL != ZIP64ENDHEADERMAGIC)
- return 0;
-
- return offset;
-}
-
-extern zipFile ZEXPORT zipOpen4(const void *pathname, int append, ZPOS64_T disk_size, zipcharpc *globalcomment,
- zlib_filefunc64_32_def *pzlib_filefunc64_32_def)
-{
- zip64_internal ziinit;
- zip64_internal *zi;
-#ifndef NO_ADDFILEINEXISTINGZIP
- ZPOS64_T byte_before_the_zipfile; /* byte before the zipfile, (>0 for sfx)*/
- ZPOS64_T size_central_dir = 0; /* size of the central directory */
- ZPOS64_T offset_central_dir = 0; /* offset of start of central directory */
- ZPOS64_T number_entry_CD = 0; /* total number of entries in the central dir */
- ZPOS64_T number_entry;
- ZPOS64_T central_pos;
- ZPOS64_T size_central_dir_to_read;
- uLong uL;
- uLong size_comment = 0;
- size_t buf_size = SIZEDATA_INDATABLOCK;
- void *buf_read;
-#endif
- int err = ZIP_OK;
- int mode;
-
- ziinit.z_filefunc.zseek32_file = NULL;
- ziinit.z_filefunc.ztell32_file = NULL;
- if (pzlib_filefunc64_32_def == NULL)
- fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64);
- else
- ziinit.z_filefunc = *pzlib_filefunc64_32_def;
-
- if (append == APPEND_STATUS_CREATE)
- mode = (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE);
- else
- mode = (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING);
-
- ziinit.filestream = ZOPEN64(ziinit.z_filefunc, pathname, mode);
- if (ziinit.filestream == NULL)
- return NULL;
-
- if (append == APPEND_STATUS_CREATEAFTER) {
- /* Don't support spanning ZIP with APPEND_STATUS_CREATEAFTER */
- if (disk_size > 0)
- return NULL;
-
- ZSEEK64(ziinit.z_filefunc, ziinit.filestream, 0, SEEK_END);
- }
-
- ziinit.filestream_with_CD = ziinit.filestream;
- ziinit.append = append;
- ziinit.number_disk = 0;
- ziinit.number_disk_with_CD = 0;
- ziinit.disk_size = disk_size;
- ziinit.begin_pos = ZTELL64(ziinit.z_filefunc, ziinit.filestream);
- ziinit.in_opened_file_inzip = 0;
- ziinit.ci.stream_initialised = 0;
- ziinit.number_entry = 0;
- ziinit.add_position_when_writting_offset = 0;
- init_linkedlist(&(ziinit.central_dir));
-
- zi = (zip64_internal *)ALLOC(sizeof(zip64_internal));
- if (zi == NULL) {
- ZCLOSE64(ziinit.z_filefunc, ziinit.filestream);
- return NULL;
- }
-
-#ifndef NO_ADDFILEINEXISTINGZIP
- /* Add file in a zipfile */
- ziinit.globalcomment = NULL;
- if (append == APPEND_STATUS_ADDINZIP) {
- /* Read and Cache Central Directory Records */
- central_pos = zip64local_SearchCentralDir(&ziinit.z_filefunc, ziinit.filestream);
- /* disable to allow appending to empty ZIP archive (must be standard zip, not zip64)
- if (central_pos == 0)
- err = ZIP_ERRNO;
- */
-
- if (err == ZIP_OK) {
- /* read end of central directory info */
- if (ZSEEK64(ziinit.z_filefunc, ziinit.filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
-
- /* the signature, already checked */
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- /* number of this disk */
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &ziinit.number_disk) != ZIP_OK)
- err = ZIP_ERRNO;
- /* number of the disk with the start of the central directory */
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &ziinit.number_disk_with_CD) != ZIP_OK)
- err = ZIP_ERRNO;
- /* total number of entries in the central dir on this disk */
- number_entry = 0;
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- else
- number_entry = uL;
- /* total number of entries in the central dir */
- number_entry_CD = 0;
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- else
- number_entry_CD = uL;
- if (number_entry_CD != number_entry)
- err = ZIP_BADZIPFILE;
- /* size of the central directory */
- size_central_dir = 0;
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- else
- size_central_dir = uL;
- /* offset of start of central directory with respect to the starting disk number */
- offset_central_dir = 0;
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- else
- offset_central_dir = uL;
- /* zipfile global comment length */
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &size_comment) != ZIP_OK)
- err = ZIP_ERRNO;
-
- if ((err == ZIP_OK) && ((number_entry_CD == 0xffff) || (offset_central_dir == 0xffffffff))) {
- /* Format should be Zip64, as the central directory or file size is too large */
- central_pos = zip64local_SearchCentralDir64(&ziinit.z_filefunc, ziinit.filestream, central_pos);
-
- if (central_pos) {
- ZPOS64_T sizeEndOfCentralDirectory;
-
- if (ZSEEK64(ziinit.z_filefunc, ziinit.filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
-
- /* the signature, already checked */
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- /* size of zip64 end of central directory record */
- if (zip64local_getLong64(&ziinit.z_filefunc, ziinit.filestream, &sizeEndOfCentralDirectory) != ZIP_OK)
- err = ZIP_ERRNO;
- /* version made by */
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- /* version needed to extract */
- if (zip64local_getShort(&ziinit.z_filefunc, ziinit.filestream, &uL) != ZIP_OK)
- err = ZIP_ERRNO;
- /* number of this disk */
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &ziinit.number_disk) != ZIP_OK)
- err = ZIP_ERRNO;
- /* number of the disk with the start of the central directory */
- if (zip64local_getLong(&ziinit.z_filefunc, ziinit.filestream, &ziinit.number_disk_with_CD) != ZIP_OK)
- err = ZIP_ERRNO;
- /* total number of entries in the central directory on this disk */
- if (zip64local_getLong64(&ziinit.z_filefunc, ziinit.filestream, &number_entry) != ZIP_OK)
- err = ZIP_ERRNO;
- /* total number of entries in the central directory */
- if (zip64local_getLong64(&ziinit.z_filefunc, ziinit.filestream, &number_entry_CD) != ZIP_OK)
- err = ZIP_ERRNO;
- if (number_entry_CD != number_entry)
- err = ZIP_BADZIPFILE;
- /* size of the central directory */
- if (zip64local_getLong64(&ziinit.z_filefunc, ziinit.filestream, &size_central_dir) != ZIP_OK)
- err = ZIP_ERRNO;
- /* offset of start of central directory with respect to the starting disk number */
- if (zip64local_getLong64(&ziinit.z_filefunc, ziinit.filestream, &offset_central_dir) != ZIP_OK)
- err = ZIP_ERRNO;
- } else
- err = ZIP_BADZIPFILE;
- }
- }
-
- if ((err == ZIP_OK) && (central_pos < offset_central_dir + size_central_dir))
- err = ZIP_BADZIPFILE;
-
- if (err != ZIP_OK) {
- ZCLOSE64(ziinit.z_filefunc, ziinit.filestream);
- TRYFREE(zi);
- return NULL;
- }
-
- if (size_comment > 0) {
- ziinit.globalcomment = (char *)ALLOC(size_comment + 1);
- if (ziinit.globalcomment) {
- size_comment = ZREAD64(ziinit.z_filefunc, ziinit.filestream, ziinit.globalcomment, size_comment);
- ziinit.globalcomment[size_comment] = 0;
- }
- }
-
- byte_before_the_zipfile = central_pos - (offset_central_dir + size_central_dir);
- ziinit.add_position_when_writting_offset = byte_before_the_zipfile;
-
- /* Store central directory in memory */
- size_central_dir_to_read = size_central_dir;
- buf_size = SIZEDATA_INDATABLOCK;
- buf_read = (void *)ALLOC(buf_size);
- if (buf_read == NULL)
- err = ZIP_INTERNALERROR;
-
- if (ZSEEK64(ziinit.z_filefunc, ziinit.filestream,
- offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
-
- while ((size_central_dir_to_read > 0) && (err == ZIP_OK)) {
- ZPOS64_T read_this = SIZEDATA_INDATABLOCK;
- if (read_this > size_central_dir_to_read)
- read_this = size_central_dir_to_read;
-
- if (ZREAD64(ziinit.z_filefunc, ziinit.filestream, buf_read, (uLong)read_this) != read_this)
- err = ZIP_ERRNO;
-
- if (err == ZIP_OK)
- err = add_data_in_datablock(&ziinit.central_dir, buf_read, (uLong)read_this);
-
- size_central_dir_to_read -= read_this;
- }
- TRYFREE(buf_read);
-
- ziinit.begin_pos = byte_before_the_zipfile;
- ziinit.number_entry = number_entry_CD;
-
- if (ZSEEK64(ziinit.z_filefunc, ziinit.filestream,
- offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
- }
-
- if (globalcomment)
- *globalcomment = ziinit.globalcomment;
-#endif
-
- if (err != ZIP_OK) {
-#ifndef NO_ADDFILEINEXISTINGZIP
- TRYFREE(ziinit.globalcomment);
-#endif
- TRYFREE(zi);
- return NULL;
- }
-
- *zi = ziinit;
- zipGoToFirstDisk((zipFile)zi);
- return (zipFile)zi;
-}
-
-extern zipFile ZEXPORT zipOpen2(const char *pathname, int append, zipcharpc *globalcomment,
- zlib_filefunc_def *pzlib_filefunc32_def)
-{
- if (pzlib_filefunc32_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill, pzlib_filefunc32_def);
- return zipOpen4(pathname, append, 0, globalcomment, &zlib_filefunc64_32_def_fill);
- }
- return zipOpen4(pathname, append, 0, globalcomment, NULL);
-}
-
-extern zipFile ZEXPORT zipOpen2_64(const void *pathname, int append, zipcharpc *globalcomment,
- zlib_filefunc64_def *pzlib_filefunc_def)
-{
- if (pzlib_filefunc_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
- zlib_filefunc64_32_def_fill.ztell32_file = NULL;
- zlib_filefunc64_32_def_fill.zseek32_file = NULL;
- return zipOpen4(pathname, append, 0, globalcomment, &zlib_filefunc64_32_def_fill);
- }
- return zipOpen4(pathname, append, 0, globalcomment, NULL);
-}
-
-extern zipFile ZEXPORT zipOpen3(const char *pathname, int append, ZPOS64_T disk_size, zipcharpc *globalcomment,
- zlib_filefunc_def *pzlib_filefunc32_def)
-{
- if (pzlib_filefunc32_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill, pzlib_filefunc32_def);
- return zipOpen4(pathname, append, disk_size, globalcomment, &zlib_filefunc64_32_def_fill);
- }
- return zipOpen4(pathname, append, disk_size, globalcomment, NULL);
-}
-
-extern zipFile ZEXPORT zipOpen3_64(const void *pathname, int append, ZPOS64_T disk_size, zipcharpc *globalcomment,
- zlib_filefunc64_def *pzlib_filefunc_def)
-{
- if (pzlib_filefunc_def != NULL) {
- zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
- zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
- zlib_filefunc64_32_def_fill.ztell32_file = NULL;
- zlib_filefunc64_32_def_fill.zseek32_file = NULL;
- return zipOpen4(pathname, append, disk_size, globalcomment, &zlib_filefunc64_32_def_fill);
- }
- return zipOpen4(pathname, append, disk_size, globalcomment, NULL);
-}
-
-extern zipFile ZEXPORT zipOpen(const char *pathname, int append)
-{
- return zipOpen3((const void *)pathname, append, 0, NULL, NULL);
-}
-
-extern zipFile ZEXPORT zipOpen64(const void *pathname, int append)
-{
- return zipOpen3(pathname, append, 0, NULL, NULL);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw, int windowBits, int memLevel,
- int strategy, const char *password, uLong crcForCrypting, uLong versionMadeBy, uLong flagBase, int zip64)
-{
- zip64_internal *zi;
- uInt size_filename;
- uInt size_comment = 0;
- uInt i;
- int err = ZIP_OK;
- ZPOS64_T size_available;
- ZPOS64_T size_needed;
-
-#ifdef NOCRYPT
- (crcForCrypting);
- if (password != NULL)
- return ZIP_PARAMERROR;
-#endif
-
- if (file == NULL)
- return ZIP_PARAMERROR;
-
- if ((method != 0) &&
-#ifdef HAVE_BZIP2
- (method != Z_BZIP2ED) &&
-#endif
- (method != Z_DEFLATED))
- return ZIP_PARAMERROR;
-
- zi = (zip64_internal *)file;
-
- if (zi->in_opened_file_inzip == 1) {
- err = zipCloseFileInZip(file);
- if (err != ZIP_OK)
- return err;
- }
-
- if (filename == NULL)
- filename = "-";
- if (comment != NULL)
- size_comment = (uInt)strlen(comment);
-
- size_filename = (uInt)strlen(filename);
-
- if (zipfi == NULL)
- zi->ci.dosDate = 0;
- else {
- if (zipfi->dosDate != 0)
- zi->ci.dosDate = zipfi->dosDate;
- else
- zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date);
- }
-
- zi->ci.method = method;
- zi->ci.compression_method = method;
- zi->ci.crc32 = 0;
- zi->ci.stream_initialised = 0;
- zi->ci.pos_in_buffered_data = 0;
- zi->ci.raw = raw;
- zi->ci.flag = flagBase;
- if ((level == 8) || (level == 9))
- zi->ci.flag |= 2;
- if (level == 2)
- zi->ci.flag |= 4;
- if (level == 1)
- zi->ci.flag |= 6;
- if (password != NULL) {
- zi->ci.flag |= 1;
-#ifdef HAVE_AES
- zi->ci.method = AES_METHOD;
-#endif
- }
-
- if (zi->disk_size > 0) {
- if ((zi->number_disk == 0) && (zi->number_entry == 0))
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)DISKHEADERMAGIC, 4);
-
- /* Make sure enough space available on current disk for local header */
- zipGetDiskSizeAvailable((zipFile)zi, &size_available);
- size_needed = 30 + size_filename + size_extrafield_local;
- if (zi->ci.zip64)
- size_needed += 20;
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD)
- size_needed += 11;
-#endif
- if (size_available < size_needed)
- zipGoToNextDisk((zipFile)zi);
- }
-
- zi->ci.pos_local_header = ZTELL64(zi->z_filefunc, zi->filestream);
- zi->ci.size_comment = size_comment;
- zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global;
- zi->ci.size_centralextra = size_extrafield_global;
- zi->ci.size_centralextrafree = 32; /* Extra space reserved for ZIP64 extra info */
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD)
- zi->ci.size_centralextrafree += 11; /* Extra space reserved for AES extra info */
-#endif
- zi->ci.central_header = (char *)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralextrafree + size_comment);
- if (zi->ci.central_header == NULL)
- return ZIP_INTERNALERROR;
-
- zi->ci.number_disk = zi->number_disk;
-
- /* Write central directory header */
- zip64local_putValue_inmemory(zi->ci.central_header, (uLong)CENTRALHEADERMAGIC, 4);
- zip64local_putValue_inmemory(zi->ci.central_header + 4, (uLong)versionMadeBy, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 6, (uLong)20, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 8, (uLong)zi->ci.flag, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 10, (uLong)zi->ci.method, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 12, (uLong)zi->ci.dosDate, 4);
- zip64local_putValue_inmemory(zi->ci.central_header + 16, (uLong)0, 4); /*crc*/
- zip64local_putValue_inmemory(zi->ci.central_header + 20, (uLong)0, 4); /*compr size*/
- zip64local_putValue_inmemory(zi->ci.central_header + 24, (uLong)0, 4); /*uncompr size*/
- zip64local_putValue_inmemory(zi->ci.central_header + 28, (uLong)size_filename, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 30, (uLong)size_extrafield_global, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 32, (uLong)size_comment, 2);
- zip64local_putValue_inmemory(zi->ci.central_header + 34, (uLong)zi->ci.number_disk, 2); /*disk nm start*/
-
- if (zipfi == NULL)
- zip64local_putValue_inmemory(zi->ci.central_header + 36, (uLong)0, 2);
- else
- zip64local_putValue_inmemory(zi->ci.central_header + 36, (uLong)zipfi->internal_fa, 2);
- if (zipfi == NULL)
- zip64local_putValue_inmemory(zi->ci.central_header + 38, (uLong)0, 4);
- else
- zip64local_putValue_inmemory(zi->ci.central_header + 38, (uLong)zipfi->external_fa, 4);
- if (zi->ci.pos_local_header >= 0xffffffff)
- zip64local_putValue_inmemory(zi->ci.central_header + 42, (uLong)0xffffffff, 4);
- else
- zip64local_putValue_inmemory(zi->ci.central_header + 42,
- (uLong)zi->ci.pos_local_header - zi->add_position_when_writting_offset, 4);
-
- for (i = 0; i < size_filename; i++)
- zi->ci.central_header[SIZECENTRALHEADER + i] = filename[i];
- for (i = 0; i < size_extrafield_global; i++)
- zi->ci.central_header[SIZECENTRALHEADER + size_filename + i] =
- ((const char *)extrafield_global)[i];
- /* Store comment at the end for later repositioning */
- for (i = 0; i < size_comment; i++)
- zi->ci.central_header[zi->ci.size_centralheader +
- zi->ci.size_centralextrafree + i] = comment[i];
-
- if (zi->ci.central_header == NULL)
- return ZIP_INTERNALERROR;
-
- zi->ci.zip64 = zip64;
- zi->ci.total_compressed = 0;
- zi->ci.total_uncompressed = 0;
- zi->ci.pos_zip64extrainfo = 0;
-
- /* Write the local header */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)LOCALHEADERMAGIC, 4);
-
- if (err == ZIP_OK) {
- if (zi->ci.zip64)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)45, 2); /* version needed to extract */
- else
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)20, 2); /* version needed to extract */
- }
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->ci.flag, 2);
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->ci.method, 2);
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->ci.dosDate, 4);
-
- /* CRC & compressed size & uncompressed size will be filled in later and rewritten later */
-
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0, 4); /* crc 32, unknown */
- if (err == ZIP_OK) {
- if (zi->ci.zip64)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0xFFFFFFFF, 4); /* compressed size, unknown */
- else
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0, 4); /* compressed size, unknown */
- }
- if (err == ZIP_OK) {
- if (zi->ci.zip64) /* uncompressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0xFFFFFFFF, 4);
- else /* uncompressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0, 4);
- }
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)size_filename, 2);
- if (err == ZIP_OK) {
- ZPOS64_T size_extrafield = size_extrafield_local;
- if (zi->ci.zip64)
- size_extrafield += 20;
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD)
- size_extrafield += 11;
-#endif
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)size_extrafield, 2);
- }
- if ((err == ZIP_OK) && (size_filename > 0)) {
- if (ZWRITE64(zi->z_filefunc, zi->filestream, filename, size_filename) != size_filename)
- err = ZIP_ERRNO;
- }
- if ((err == ZIP_OK) && (size_extrafield_local > 0)) {
- if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local)
- err = ZIP_ERRNO;
- }
-
- /* Write the Zip64 extended info */
- if ((err == ZIP_OK) && (zi->ci.zip64)) {
- short headerid = 1;
- short datasize = 16;
- ZPOS64_T compressed_size = 0;
- ZPOS64_T uncompressed_size = 0;
-
- /* Remember position of Zip64 extended info for the local file header.
- (needed when we update size after done with file) */
- zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc, zi->filestream);
-
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)headerid, 2);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)datasize, 2);
-
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)uncompressed_size, 8);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)compressed_size, 8);
- }
-#ifdef HAVE_AES
- /* Write the AES extended info */
- if ((err == ZIP_OK) && (zi->ci.method == AES_METHOD)) {
- int headerid = 0x9901;
- short datasize = 7;
-
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, headerid, 2);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, datasize, 2);
-
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, AES_VERSION, 2);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, 'A', 1);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, 'E', 1);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, AES_ENCRYPTIONMODE, 1);
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->ci.compression_method, 2);
- }
-#endif
-
-#ifdef HAVE_BZIP2
- zi->ci.bstream.avail_in = (uInt)0;
- zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.bstream.next_out = (char *)zi->ci.buffered_data;
- zi->ci.bstream.total_in_hi32 = 0;
- zi->ci.bstream.total_in_lo32 = 0;
- zi->ci.bstream.total_out_hi32 = 0;
- zi->ci.bstream.total_out_lo32 = 0;
-#endif
-
- zi->ci.stream.avail_in = (uInt)0;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- zi->ci.stream.total_in = 0;
- zi->ci.stream.total_out = 0;
- zi->ci.stream.data_type = Z_BINARY;
-
- if ((err == ZIP_OK) && (!zi->ci.raw)) {
- if (method == Z_DEFLATED) {
- zi->ci.stream.zalloc = (alloc_func)0;
- zi->ci.stream.zfree = (free_func)0;
- zi->ci.stream.opaque = (voidpf)zi;
-
- if (windowBits > 0)
- windowBits = -windowBits;
-
- err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy);
-
- if (err == Z_OK)
- zi->ci.stream_initialised = Z_DEFLATED;
- } else if (method == Z_BZIP2ED) {
-#ifdef HAVE_BZIP2
- zi->ci.bstream.bzalloc = 0;
- zi->ci.bstream.bzfree = 0;
- zi->ci.bstream.opaque = (voidpf)0;
-
- err = BZ2_bzCompressInit(&zi->ci.bstream, level, 0, 35);
- if (err == BZ_OK)
- zi->ci.stream_initialised = Z_BZIP2ED;
-#endif
- }
- }
-
-#ifndef NOCRYPT
- zi->ci.crypt_header_size = 0;
- if ((err == Z_OK) && ((zi->ci.flag & 1) != 0)) {
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD) {
- unsigned char passverify[AES_PWVERIFYSIZE];
- unsigned char saltvalue[AES_MAXSALTLENGTH];
- uInt saltlength;
-
- if ((AES_ENCRYPTIONMODE < 1) || (AES_ENCRYPTIONMODE > 3))
- return Z_ERRNO;
-
- saltlength = SALT_LENGTH(AES_ENCRYPTIONMODE);
-
- prng_init(entropy_fun, zi->ci.aes_rng);
- prng_rand(saltvalue, saltlength, zi->ci.aes_rng);
- prng_end(zi->ci.aes_rng);
-
- fcrypt_init(AES_ENCRYPTIONMODE, (unsigned char *)password, (unsigned int)strlen(password), saltvalue, passverify, &zi->ci.aes_ctx);
-
- if (ZWRITE64(zi->z_filefunc, zi->filestream, saltvalue, saltlength) != saltlength)
- err = ZIP_ERRNO;
- if (ZWRITE64(zi->z_filefunc, zi->filestream, passverify, AES_PWVERIFYSIZE) != AES_PWVERIFYSIZE)
- err = ZIP_ERRNO;
-
- zi->ci.crypt_header_size = saltlength + AES_PWVERIFYSIZE + AES_AUTHCODESIZE;
- } else
-#endif
- {
- unsigned char bufHead[RAND_HEAD_LEN];
- unsigned int sizeHead;
-
- zi->ci.pcrc_32_tab = (const unsigned long *)get_crc_table();
- /*init_keys(password, zi->ci.keys, zi->ci.pcrc_32_tab);*/
-
- sizeHead = crypthead(password, bufHead, RAND_HEAD_LEN, zi->ci.keys, zi->ci.pcrc_32_tab, crcForCrypting);
- zi->ci.crypt_header_size = sizeHead;
-
- if (ZWRITE64(zi->z_filefunc, zi->filestream, bufHead, sizeHead) != sizeHead)
- err = ZIP_ERRNO;
- }
- }
-#endif
-
- if (err == Z_OK)
- zi->in_opened_file_inzip = 1;
- return err;
-}
-
-extern int ZEXPORT zipOpenNewFileInZip4(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw, int windowBits,
- int memLevel, int strategy, const char *password, uLong crcForCrypting, uLong versionMadeBy, uLong flagBase)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, raw, windowBits, memLevel,
- strategy, password, crcForCrypting, versionMadeBy, flagBase, 0);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip3(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw, int windowBits,
- int memLevel, int strategy, const char *password, uLong crcForCrypting)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, raw, windowBits, memLevel,
- strategy, password, crcForCrypting, VERSIONMADEBY, 0, 0);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip3_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw, int windowBits,
- int memLevel, int strategy, const char *password, uLong crcForCrypting, int zip64)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, raw, windowBits, memLevel, strategy,
- password, crcForCrypting, VERSIONMADEBY, 0, zip64);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip2(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, raw, -MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, NULL, 0, VERSIONMADEBY, 0, 0);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip2_64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int raw, int zip64)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, raw, -MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, NULL, 0, VERSIONMADEBY, 0, zip64);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip64(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level, int zip64)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, 0, -MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, NULL, 0, VERSIONMADEBY, 0, zip64);
-}
-
-extern int ZEXPORT zipOpenNewFileInZip(zipFile file, const char *filename, const zip_fileinfo *zipfi,
- const void *extrafield_local, uInt size_extrafield_local, const void *extrafield_global,
- uInt size_extrafield_global, const char *comment, int method, int level)
-{
- return zipOpenNewFileInZip4_64(file, filename, zipfi, extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global, comment, method, level, 0, -MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, NULL, 0, VERSIONMADEBY, 0, 0);
-}
-
-/* Flushes the write buffer to disk */
-local int zip64FlushWriteBuffer OF((zip64_internal * zi));
-local int zip64FlushWriteBuffer(zip64_internal *zi)
-{
- int err = ZIP_OK;
- uInt written = 0;
- uInt total_written = 0;
- uInt write = 0;
- uInt max_write = 0;
- ZPOS64_T size_available = 0;
-
- if ((zi->ci.flag & 1) != 0) {
-#ifndef NOCRYPT
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD) {
- fcrypt_encrypt(zi->ci.buffered_data, zi->ci.pos_in_buffered_data, &zi->ci.aes_ctx);
- } else
-#endif
- {
- uInt i;
- int t;
- for (i = 0; i < zi->ci.pos_in_buffered_data; i++)
- zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i], t);
- }
-#endif
- }
-
- write = zi->ci.pos_in_buffered_data;
-
- do {
- max_write = write;
-
- if (zi->disk_size > 0) {
- err = zipGetDiskSizeAvailable((zipFile)zi, &size_available);
- if (err != ZIP_OK)
- return err;
-
- if (size_available == 0) {
- err = zipGoToNextDisk((zipFile)zi);
- if (err != ZIP_OK)
- return err;
- }
-
- if (size_available < (ZPOS64_T)max_write)
- max_write = (uInt)size_available;
- }
-
- written = (unsigned int)ZWRITE64(zi->z_filefunc, zi->filestream, zi->ci.buffered_data + total_written, max_write);
-
- if (ZERROR64(zi->z_filefunc, zi->filestream)) {
- err = ZIP_ERRNO;
- break;
- }
-
- total_written += written;
- write -= written;
- } while (write > 0);
-
- zi->ci.total_compressed += zi->ci.pos_in_buffered_data;
-
-#ifdef HAVE_BZIP2
- if (zi->ci.compression_method == Z_BZIP2ED) {
- zi->ci.total_uncompressed += zi->ci.bstream.total_in_lo32;
- zi->ci.bstream.total_in_lo32 = 0;
- zi->ci.bstream.total_in_hi32 = 0;
- } else
-#endif
- {
- zi->ci.total_uncompressed += zi->ci.stream.total_in;
- zi->ci.stream.total_in = 0;
- }
-
- zi->ci.pos_in_buffered_data = 0;
-
- return err;
-}
-
-extern int ZEXPORT zipWriteInFileInZip(zipFile file, const void *buf, unsigned int len)
-{
- zip64_internal *zi;
- int err = ZIP_OK;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
- zi = (zip64_internal *)file;
-
- if (zi->in_opened_file_inzip == 0)
- return ZIP_PARAMERROR;
-
- zi->ci.crc32 = crc32(zi->ci.crc32, buf, (uInt)len);
-
-#ifdef HAVE_BZIP2
- if ((zi->ci.compression_method == Z_BZIP2ED) && (!zi->ci.raw)) {
- zi->ci.bstream.next_in = (void *)buf;
- zi->ci.bstream.avail_in = len;
- err = BZ_RUN_OK;
-
- while ((err == BZ_RUN_OK) && (zi->ci.bstream.avail_in > 0)) {
- if (zi->ci.bstream.avail_out == 0) {
- if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
- err = ZIP_ERRNO;
- zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.bstream.next_out = (char *)zi->ci.buffered_data;
- } else {
- uLong uTotalOutBefore_lo = zi->ci.bstream.total_out_lo32;
- uLong uTotalOutBefore_hi = zi->ci.bstream.total_out_hi32;
-
- err = BZ2_bzCompress(&zi->ci.bstream, BZ_RUN);
-
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo);
- }
- }
-
- if (err == BZ_RUN_OK)
- err = ZIP_OK;
- } else
-#endif
- {
- zi->ci.stream.next_in = (Bytef *)buf;
- zi->ci.stream.avail_in = len;
-
- while ((err == ZIP_OK) && (zi->ci.stream.avail_in > 0)) {
- if (zi->ci.stream.avail_out == 0) {
- if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
- err = ZIP_ERRNO;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- }
-
- if (err != ZIP_OK)
- break;
-
- if ((zi->ci.compression_method == Z_DEFLATED) && (!zi->ci.raw)) {
- uLong total_out_before = zi->ci.stream.total_out;
- err = deflate(&zi->ci.stream, Z_NO_FLUSH);
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - total_out_before);
- } else {
- uInt copy_this, i;
- if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)
- copy_this = zi->ci.stream.avail_in;
- else
- copy_this = zi->ci.stream.avail_out;
-
- for (i = 0; i < copy_this; i++)
- *(((char *)zi->ci.stream.next_out) + i) =
- *(((const char *)zi->ci.stream.next_in) + i);
-
- zi->ci.stream.avail_in -= copy_this;
- zi->ci.stream.avail_out -= copy_this;
- zi->ci.stream.next_in += copy_this;
- zi->ci.stream.next_out += copy_this;
- zi->ci.stream.total_in += copy_this;
- zi->ci.stream.total_out += copy_this;
- zi->ci.pos_in_buffered_data += copy_this;
- }
- }
- }
-
- return err;
-}
-
-extern int ZEXPORT zipCloseFileInZipRaw(zipFile file, uLong uncompressed_size, uLong crc32)
-{
- return zipCloseFileInZipRaw64(file, uncompressed_size, crc32);
-}
-
-extern int ZEXPORT zipCloseFileInZipRaw64(zipFile file, ZPOS64_T uncompressed_size, uLong crc32)
-{
- zip64_internal *zi;
- ZPOS64_T compressed_size;
- uLong invalidValue = 0xffffffff;
- uLong i = 0;
- short datasize = 0;
- int err = ZIP_OK;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
- zi = (zip64_internal *)file;
-
- if (zi->in_opened_file_inzip == 0)
- return ZIP_PARAMERROR;
- zi->ci.stream.avail_in = 0;
-
- if (!zi->ci.raw) {
- if (zi->ci.compression_method == Z_DEFLATED) {
- while (err == ZIP_OK) {
- uLong total_out_before;
- if (zi->ci.stream.avail_out == 0) {
- if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
- err = ZIP_ERRNO;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- }
- total_out_before = zi->ci.stream.total_out;
- err = deflate(&zi->ci.stream, Z_FINISH);
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - total_out_before);
- }
- } else if (zi->ci.compression_method == Z_BZIP2ED) {
-#ifdef HAVE_BZIP2
- err = BZ_FINISH_OK;
- while (err == BZ_FINISH_OK) {
- uLong total_out_before;
- if (zi->ci.bstream.avail_out == 0) {
- if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
- err = ZIP_ERRNO;
- zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.bstream.next_out = (char *)zi->ci.buffered_data;
- }
- total_out_before = zi->ci.bstream.total_out_lo32;
- err = BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH);
- if (err == BZ_STREAM_END)
- err = Z_STREAM_END;
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - total_out_before);
- }
-
- if (err == BZ_FINISH_OK)
- err = ZIP_OK;
-#endif
- }
- }
-
- if (err == Z_STREAM_END)
- err = ZIP_OK; /* this is normal */
-
- if ((zi->ci.pos_in_buffered_data > 0) && (err == ZIP_OK)) {
- if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
- err = ZIP_ERRNO;
- }
-
-#ifdef HAVE_AES
- if (zi->ci.method == AES_METHOD) {
- unsigned char authcode[AES_AUTHCODESIZE];
-
- fcrypt_end(authcode, &zi->ci.aes_ctx);
-
- if (ZWRITE64(zi->z_filefunc, zi->filestream, authcode, AES_AUTHCODESIZE) != AES_AUTHCODESIZE)
- err = ZIP_ERRNO;
- }
-#endif
-
- if (!zi->ci.raw) {
- if (zi->ci.compression_method == Z_DEFLATED) {
- int tmp_err = deflateEnd(&zi->ci.stream);
- if (err == ZIP_OK)
- err = tmp_err;
- zi->ci.stream_initialised = 0;
- }
-#ifdef HAVE_BZIP2
- else if (zi->ci.compression_method == Z_BZIP2ED) {
- int tmperr = BZ2_bzCompressEnd(&zi->ci.bstream);
- if (err == ZIP_OK)
- err = tmperr;
- zi->ci.stream_initialised = 0;
- }
-#endif
-
- crc32 = (uLong)zi->ci.crc32;
- uncompressed_size = zi->ci.total_uncompressed;
- }
-
- compressed_size = zi->ci.total_compressed;
-#ifndef NOCRYPT
- compressed_size += zi->ci.crypt_header_size;
-#endif
-
- /* Update current item crc and sizes */
- if (compressed_size >= 0xffffffff || uncompressed_size >= 0xffffffff || zi->ci.pos_local_header >= 0xffffffff) {
- zip64local_putValue_inmemory(zi->ci.central_header + 4, (uLong)45, 2); /* version made by */
- zip64local_putValue_inmemory(zi->ci.central_header + 6, (uLong)45, 2); /* version needed */
- }
- zip64local_putValue_inmemory(zi->ci.central_header + 16, crc32, 4); /* crc */
- if (compressed_size >= 0xffffffff)
- zip64local_putValue_inmemory(zi->ci.central_header + 20, invalidValue, 4); /* compr size */
- else
- zip64local_putValue_inmemory(zi->ci.central_header + 20, compressed_size, 4); /* compr size */
- if (zi->ci.stream.data_type == Z_ASCII)
- zip64local_putValue_inmemory(zi->ci.central_header + 36, (uLong)Z_ASCII, 2); /* internal file attrib */
- if (uncompressed_size >= 0xffffffff)
- zip64local_putValue_inmemory(zi->ci.central_header + 24, invalidValue, 4); /* uncompr size */
- else
- zip64local_putValue_inmemory(zi->ci.central_header + 24, uncompressed_size, 4); /* uncompr size */
-
- /* Add ZIP64 extra info field for uncompressed size */
- if (uncompressed_size >= 0xffffffff)
- datasize += 8;
- /* Add ZIP64 extra info field for compressed size */
- if (compressed_size >= 0xffffffff)
- datasize += 8;
- /* Add ZIP64 extra info field for relative offset to local file header of current file */
- if (zi->ci.pos_local_header >= 0xffffffff)
- datasize += 8;
-
- /* Add Extra Information Header for 'ZIP64 information' */
- if (datasize > 0) {
- char *p = zi->ci.central_header + zi->ci.size_centralheader;
-
- if ((uLong)(datasize + 4) > zi->ci.size_centralextrafree)
- return ZIP_BADZIPFILE;
-
- zip64local_putValue_inmemory(p, 0x0001, 2);
- p += 2;
- zip64local_putValue_inmemory(p, datasize, 2);
- p += 2;
-
- if (uncompressed_size >= 0xffffffff) {
- zip64local_putValue_inmemory(p, uncompressed_size, 8);
- p += 8;
- }
- if (compressed_size >= 0xffffffff) {
- zip64local_putValue_inmemory(p, compressed_size, 8);
- p += 8;
- }
- if (zi->ci.pos_local_header >= 0xffffffff) {
- zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8);
- p += 8;
- }
-
- zi->ci.size_centralextrafree -= datasize + 4;
- zi->ci.size_centralheader += datasize + 4;
- zi->ci.size_centralextra += datasize + 4;
-
- zip64local_putValue_inmemory(zi->ci.central_header + 30, (uLong)zi->ci.size_centralextra, 2);
- }
-
-#ifdef HAVE_AES
- /* Write the AES extended info */
- if (zi->ci.method == AES_METHOD) {
- char *p = zi->ci.central_header + zi->ci.size_centralheader;
-
- datasize = 7;
-
- if ((uLong)(datasize + 4) > zi->ci.size_centralextrafree)
- return ZIP_BADZIPFILE;
-
- zip64local_putValue_inmemory(p, 0x9901, 2);
- p += 2;
- zip64local_putValue_inmemory(p, datasize, 2);
- p += 2;
- zip64local_putValue_inmemory(p, AES_VERSION, 2);
- p += 2;
- zip64local_putValue_inmemory(p, 'A', 1);
- p += 1;
- zip64local_putValue_inmemory(p, 'E', 1);
- p += 1;
- zip64local_putValue_inmemory(p, AES_ENCRYPTIONMODE, 1);
- p += 1;
- zip64local_putValue_inmemory(p, zi->ci.compression_method, 2);
- p += 2;
-
- zi->ci.size_centralextrafree -= datasize + 4;
- zi->ci.size_centralheader += datasize + 4;
- zi->ci.size_centralextra += datasize + 4;
-
- zip64local_putValue_inmemory(zi->ci.central_header + 30, (uLong)zi->ci.size_centralextra, 2);
- }
-#endif
- /* Restore comment to correct position */
- for (i = 0; i < zi->ci.size_comment; i++)
- zi->ci.central_header[zi->ci.size_centralheader + i] =
- zi->ci.central_header[zi->ci.size_centralheader + zi->ci.size_centralextrafree + i];
- zi->ci.size_centralheader += zi->ci.size_comment;
-
- if (err == ZIP_OK)
- err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader);
-
- free(zi->ci.central_header);
-
- if (err == ZIP_OK) {
- /* Update the LocalFileHeader with the new values. */
- ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc, zi->filestream);
- uLong cur_number_disk = zi->number_disk;
-
- /* Local file header is stored on previous disk, switch to make edits */
- if (zi->ci.number_disk != cur_number_disk)
- err = zipGoToSpecificDisk(file, (int)zi->ci.number_disk, 1);
-
- if (ZSEEK64(zi->z_filefunc, zi->filestream, zi->ci.pos_local_header + 14, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, crc32, 4); /* crc 32, unknown */
-
- if (uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff) {
- if (zi->ci.pos_zip64extrainfo > 0) {
- /* Update the size in the ZIP64 extended field. */
- if (ZSEEK64(zi->z_filefunc, zi->filestream, zi->ci.pos_zip64extrainfo + 4, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
-
- if (err == ZIP_OK) /* compressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8);
- if (err == ZIP_OK) /* uncompressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
- } else
- err = ZIP_BADZIPFILE; /* Caller passed zip64 = 0, so no room for zip64 info -> fatal */
- } else {
- if (err == ZIP_OK) /* compressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 4);
- if (err == ZIP_OK) /* uncompressed size, unknown */
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 4);
- }
-
- /* Now switch back again to the disk we were on before */
- if (zi->ci.number_disk != cur_number_disk)
- err = zipGoToSpecificDisk(file, (int)cur_number_disk, 1);
-
- if (ZSEEK64(zi->z_filefunc, zi->filestream, cur_pos_inzip, ZLIB_FILEFUNC_SEEK_SET) != 0)
- err = ZIP_ERRNO;
- }
-
- zi->number_entry++;
- zi->in_opened_file_inzip = 0;
-
- return err;
-}
-
-extern int ZEXPORT zipCloseFileInZip(zipFile file)
-{
- return zipCloseFileInZipRaw(file, 0, 0);
-}
-
-extern int ZEXPORT zipClose(zipFile file, const char *global_comment)
-{
- zip64_internal *zi;
- int err = 0;
- uLong size_centraldir = 0;
- uInt size_global_comment = 0;
- ZPOS64_T centraldir_pos_inzip;
- ZPOS64_T pos = 0;
- uLong write = 0;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
-
- zi = (zip64_internal *)file;
-
- if (zi->in_opened_file_inzip == 1)
- err = zipCloseFileInZip(file);
-
-#ifndef NO_ADDFILEINEXISTINGZIP
- if (global_comment == NULL)
- global_comment = zi->globalcomment;
-#endif
-
- if (zi->filestream != zi->filestream_with_CD) {
- if (ZCLOSE64(zi->z_filefunc, zi->filestream) != 0)
- if (err == ZIP_OK)
- err = ZIP_ERRNO;
- if (zi->disk_size > 0)
- zi->number_disk_with_CD = zi->number_disk + 1;
- zi->filestream = zi->filestream_with_CD;
- }
-
- centraldir_pos_inzip = ZTELL64(zi->z_filefunc, zi->filestream);
-
- if (err == ZIP_OK) {
- linkedlist_datablock_internal *ldi = zi->central_dir.first_block;
- while (ldi != NULL) {
- if ((err == ZIP_OK) && (ldi->filled_in_this_block > 0)) {
- write = ZWRITE64(zi->z_filefunc, zi->filestream, ldi->data, ldi->filled_in_this_block);
- if (write != ldi->filled_in_this_block)
- err = ZIP_ERRNO;
- }
-
- size_centraldir += ldi->filled_in_this_block;
- ldi = ldi->next_datablock;
- }
- }
-
- free_linkedlist(&(zi->central_dir));
-
- pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
-
- /* Write the ZIP64 central directory header */
- if (pos >= 0xffffffff || zi->number_entry > 0xffff) {
- ZPOS64_T zip64eocd_pos_inzip = ZTELL64(zi->z_filefunc, zi->filestream);
- uLong zip64datasize = 44;
-
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)ZIP64ENDHEADERMAGIC, 4);
-
- /* size of this 'zip64 end of central directory' */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)zip64datasize, 8);
- /* version made by */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)45, 2);
- /* version needed */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)45, 2);
- /* number of this disk */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD, 4);
- /* number of the disk with the start of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD, 4);
- /* total number of entries in the central dir on this disk */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
- /* total number of entries in the central dir */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
- /* size of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)size_centraldir, 8);
-
- if (err == ZIP_OK) {
- /* offset of start of central directory with respect to the starting disk number */
- ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)pos, 8);
- }
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)ZIP64ENDLOCHEADERMAGIC, 4);
-
- /* number of the disk with the start of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD, 4);
- /*relative offset to the Zip64EndOfCentralDirectory */
- if (err == ZIP_OK) {
- ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset;
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, pos, 8);
- }
- /* number of the disk with the start of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD + 1, 4);
- }
-
- /* Write the central directory header */
-
- /* signature */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)ENDHEADERMAGIC, 4);
- /* number of this disk */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD, 2);
- /* number of the disk with the start of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_disk_with_CD, 2);
- /* total number of entries in the central dir on this disk */
- if (err == ZIP_OK) {
- if (zi->number_entry >= 0xffff)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0xffff, 2); /* use value in ZIP64 record */
- else
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_entry, 2);
- }
- /* total number of entries in the central dir */
- if (err == ZIP_OK) {
- if (zi->number_entry >= 0xffff)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0xffff, 2); /* use value in ZIP64 record */
- else
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)zi->number_entry, 2);
- }
- /* size of the central directory */
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)size_centraldir, 4);
- /* offset of start of central directory with respect to the starting disk number */
- if (err == ZIP_OK) {
- ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
- if (pos >= 0xffffffff)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)0xffffffff, 4);
- else
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)pos, 4);
- }
-
- /* Write global comment */
-
- if (global_comment != NULL)
- size_global_comment = (uInt)strlen(global_comment);
- if (err == ZIP_OK)
- err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (uLong)size_global_comment, 2);
- if (err == ZIP_OK && size_global_comment > 0) {
- if (ZWRITE64(zi->z_filefunc, zi->filestream, global_comment, size_global_comment) != size_global_comment)
- err = ZIP_ERRNO;
- }
-
- if ((ZCLOSE64(zi->z_filefunc, zi->filestream) != 0) && (err == ZIP_OK))
- err = ZIP_ERRNO;
-
-#ifndef NO_ADDFILEINEXISTINGZIP
- TRYFREE(zi->globalcomment);
-#endif
- TRYFREE(zi);
-
- return err;
-}
-
diff --git a/ios/RCTPushy/SSZipArchive/minizip/zip.h b/ios/RCTPushy/SSZipArchive/minizip/zip.h
deleted file mode 100755
index 10bbf26..0000000
--- a/ios/RCTPushy/SSZipArchive/minizip/zip.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* zip.h -- IO on .zip files using zlib
- Version 1.1, February 14h, 2010
- part of the MiniZip project
-
- Copyright (C) 1998-2010 Gilles Vollant
- http://www.winimage.com/zLibDll/minizip.html
- Modifications for Zip64 support
- Copyright (C) 2009-2010 Mathias Svensson
- http://result42.com
-
- This program is distributed under the terms of the same license as zlib.
- See the accompanying LICENSE file for the full text of the license.
-*/
-
-#ifndef _ZIP_H
-#define _ZIP_H
-
-#define HAVE_AES
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _ZLIB_H
-# include "zlib.h"
-#endif
-
-#ifndef _ZLIBIOAPI_H
-# include "ioapi.h"
-#endif
-
-#ifdef HAVE_BZIP2
-# include "bzlib.h"
-#endif
-
-#define Z_BZIP2ED 12
-
-#if defined(STRICTZIP) || defined(STRICTZIPUNZIP)
-/* like the STRICT of WIN32, we define a pointer that cannot be converted
- from (void*) without cast */
-typedef struct TagzipFile__ { int unused; } zipFile__;
-typedef zipFile__ *zipFile;
-#else
-typedef voidp zipFile;
-#endif
-
-#define ZIP_OK (0)
-#define ZIP_EOF (0)
-#define ZIP_ERRNO (Z_ERRNO)
-#define ZIP_PARAMERROR (-102)
-#define ZIP_BADZIPFILE (-103)
-#define ZIP_INTERNALERROR (-104)
-
-#ifndef DEF_MEM_LEVEL
-# if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-# else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-# endif
-#endif
-/* default memLevel */
-
-/* tm_zip contain date/time info */
-typedef struct tm_zip_s
-{
- uInt tm_sec; /* seconds after the minute - [0,59] */
- uInt tm_min; /* minutes after the hour - [0,59] */
- uInt tm_hour; /* hours since midnight - [0,23] */
- uInt tm_mday; /* day of the month - [1,31] */
- uInt tm_mon; /* months since January - [0,11] */
- uInt tm_year; /* years - [1980..2044] */
-} tm_zip;
-
-typedef struct
-{
- tm_zip tmz_date; /* date in understandable format */
- uLong dosDate; /* if dos_date == 0, tmu_date is used */
- uLong internal_fa; /* internal file attributes 2 bytes */
- uLong external_fa; /* external file attributes 4 bytes */
-} zip_fileinfo;
-
-typedef const char* zipcharpc;
-
-#define APPEND_STATUS_CREATE (0)
-#define APPEND_STATUS_CREATEAFTER (1)
-#define APPEND_STATUS_ADDINZIP (2)
-
-/***************************************************************************/
-/* Writing a zip file */
-
-extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append));
-extern zipFile ZEXPORT zipOpen64 OF((const void *pathname, int append));
-/* Create a zipfile.
-
- pathname should contain the full pathname (by example, on a Windows XP computer
- "c:\\zlib\\zlib113.zip" or on an Unix computer "zlib/zlib113.zip".
-
- return NULL if zipfile cannot be opened
- return zipFile handle if no error
-
- If the file pathname exist and append == APPEND_STATUS_CREATEAFTER, the zip
- will be created at the end of the file. (useful if the file contain a self extractor code)
- If the file pathname exist and append == APPEND_STATUS_ADDINZIP, we will add files in existing
- zip (be sure you don't add file that doesn't exist)
-
- NOTE: There is no delete function into a zipfile. If you want delete file into a zipfile,
- you must open a zipfile, and create another. Of course, you can use RAW reading and writing to copy
- the file you did not want delete. */
-
-extern zipFile ZEXPORT zipOpen2 OF((const char *pathname, int append, zipcharpc* globalcomment,
- zlib_filefunc_def* pzlib_filefunc_def));
-
-extern zipFile ZEXPORT zipOpen2_64 OF((const void *pathname, int append, zipcharpc* globalcomment,
- zlib_filefunc64_def* pzlib_filefunc_def));
-
-extern zipFile ZEXPORT zipOpen3 OF((const char *pathname, int append, ZPOS64_T disk_size,
- zipcharpc* globalcomment, zlib_filefunc_def* pzlib_filefunc_def));
-/* Same as zipOpen2 but allows specification of spanned zip size */
-
-extern zipFile ZEXPORT zipOpen3_64 OF((const void *pathname, int append, ZPOS64_T disk_size,
- zipcharpc* globalcomment, zlib_filefunc64_def* pzlib_filefunc_def));
-
-extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level));
-/* Open a file in the ZIP for writing.
-
- filename : the filename in zip (if NULL, '-' without quote will be used
- *zipfi contain supplemental information
- extrafield_local buffer to store the local header extra field data, can be NULL
- size_extrafield_local size of extrafield_local buffer
- extrafield_global buffer to store the global header extra field data, can be NULL
- size_extrafield_global size of extrafield_local buffer
- comment buffer for comment string
- method contain the compression method (0 for store, Z_DEFLATED for deflate)
- level contain the level of compression (can be Z_DEFAULT_COMPRESSION)
- zip64 is set to 1 if a zip64 extended information block should be added to the local file header.
- this MUST be '1' if the uncompressed size is >= 0xffffffff. */
-
-extern int ZEXPORT zipOpenNewFileInZip64 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int zip64));
-/* Same as zipOpenNewFileInZip with zip64 support */
-
-extern int ZEXPORT zipOpenNewFileInZip2 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw));
-/* Same as zipOpenNewFileInZip, except if raw=1, we write raw file */
-
-extern int ZEXPORT zipOpenNewFileInZip2_64 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw, int zip64));
-/* Same as zipOpenNewFileInZip3 with zip64 support */
-
-extern int ZEXPORT zipOpenNewFileInZip3 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw, int windowBits, int memLevel,
- int strategy, const char* password, uLong crcForCrypting));
-/* Same as zipOpenNewFileInZip2, except
- windowBits, memLevel, strategy : see parameter strategy in deflateInit2
- password : crypting password (NULL for no crypting)
- crcForCrypting : crc of file to compress (needed for crypting) */
-
-extern int ZEXPORT zipOpenNewFileInZip3_64 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw, int windowBits, int memLevel,
- int strategy, const char* password, uLong crcForCrypting, int zip64));
-/* Same as zipOpenNewFileInZip3 with zip64 support */
-
-extern int ZEXPORT zipOpenNewFileInZip4 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw, int windowBits, int memLevel,
- int strategy, const char* password, uLong crcForCrypting, uLong versionMadeBy, uLong flagBase));
-/* Same as zipOpenNewFileInZip3 except versionMadeBy & flag fields */
-
-extern int ZEXPORT zipOpenNewFileInZip4_64 OF((zipFile file, const char* filename, const zip_fileinfo* zipfi,
- const void* extrafield_local, uInt size_extrafield_local, const void* extrafield_global,
- uInt size_extrafield_global, const char* comment, int method, int level, int raw, int windowBits, int memLevel,
- int strategy, const char* password, uLong crcForCrypting, uLong versionMadeBy, uLong flagBase, int zip64));
-/* Same as zipOpenNewFileInZip4 with zip64 support */
-
-extern int ZEXPORT zipWriteInFileInZip OF((zipFile file, const void* buf, unsigned len));
-/* Write data in the zipfile */
-
-extern int ZEXPORT zipCloseFileInZip OF((zipFile file));
-/* Close the current file in the zipfile */
-
-extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file, uLong uncompressed_size, uLong crc32));
-extern int ZEXPORT zipCloseFileInZipRaw64 OF((zipFile file, ZPOS64_T uncompressed_size, uLong crc32));
-/* Close the current file in the zipfile, for file opened with parameter raw=1 in zipOpenNewFileInZip2
- uncompressed_size and crc32 are value for the uncompressed size */
-
-extern int ZEXPORT zipClose OF((zipFile file, const char* global_comment));
-/* Close the zipfile */
-
-/***************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZIP_H */
diff --git a/lib/index.d.ts b/lib/index.d.ts
index c78bfa2..5555865 100644
--- a/lib/index.d.ts
+++ b/lib/index.d.ts
@@ -25,6 +25,8 @@ export interface UpdateAvailableResult {
metaInfo: string;
pdiffUrl: string;
diffUrl?: string;
+ phdiffUrl?: string;
+ hdiffUrl?: string;
}
export type CheckResult =
diff --git a/lib/index.js b/lib/index.js
index 2f05597..36b90a3 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -67,6 +67,13 @@ There is available update:
}
*/
+export const cInfo = {
+ pushy: require('../package.json').version,
+ rn: RNVersion,
+ os: Platform.OS + ' ' + Platform.Version,
+ uuid,
+};
+
function assertRelease() {
if (__DEV__) {
throw new Error('react-native-update can only run on RELEASE version.');
@@ -98,12 +105,7 @@ export async function checkUpdate(APPKEY, isRetry) {
packageVersion,
hash: currentVersion,
buildTime,
- cInfo: {
- pushy: require('../package.json').version,
- rn: RNVersion,
- os: Platform.OS + ' ' + Platform.Version,
- uuid,
- },
+ cInfo,
}),
});
} catch (e) {
@@ -147,11 +149,14 @@ export async function downloadUpdate(options, eventListeners) {
if (eventListeners) {
if (eventListeners.onDownloadProgress) {
const downloadCallback = eventListeners.onDownloadProgress;
- progressHandler = eventEmitter.addListener('RCTPushyDownloadProgress', (progressData) => {
- if (progressData.hash === options.hash) {
- downloadCallback(progressData);
- }
- });
+ progressHandler = eventEmitter.addListener(
+ 'RCTPushyDownloadProgress',
+ (progressData) => {
+ if (progressData.hash === options.hash) {
+ downloadCallback(progressData);
+ }
+ },
+ );
}
}
if (options.diffUrl) {
@@ -195,11 +200,14 @@ export async function downloadAndInstallApk({ url, onDownloadProgress }) {
let hash = Date.now().toString();
let progressHandler;
if (onDownloadProgress) {
- progressHandler = eventEmitter.addListener('RCTPushyDownloadProgress', (progressData) => {
- if (progressData.hash === hash) {
- onDownloadProgress(progressData);
- }
- });
+ progressHandler = eventEmitter.addListener(
+ 'RCTPushyDownloadProgress',
+ (progressData) => {
+ if (progressData.hash === hash) {
+ onDownloadProgress(progressData);
+ }
+ },
+ );
}
await Pushy.downloadAndInstallApk({
url,
diff --git a/package.json b/package.json
index 732045e..cf2936a 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,9 @@
"description": "react-native hot update",
"main": "lib/index.js",
"scripts": {
+ "submodule": "git submodule update --init --recursive",
"test": "echo \"Error: no test specified\" && exit 1",
- "build-lib": "$ANDROID_HOME/ndk-bundle/ndk-build NDK_PROJECT_PATH=android APP_BUILD_SCRIPT=android/jni/Android.mk NDK_LIBS_OUT=android/lib"
+ "build-lib": "yarn submodule && $ANDROID_HOME/ndk/20.1.5948944/ndk-build NDK_PROJECT_PATH=android APP_BUILD_SCRIPT=android/jni/Android.mk NDK_APPLICATION_MK=android/jni/Application.mk NDK_LIBS_OUT=android/lib"
},
"repository": {
"type": "git",
diff --git a/react-native-update.podspec b/react-native-update.podspec
index 593e524..be09ca5 100644
--- a/react-native-update.podspec
+++ b/react-native-update.podspec
@@ -27,9 +27,14 @@ Pod::Spec.new do |s|
ss.source_files = 'ios/RCTPushy/*.{h,m}'
ss.public_header_files = ['ios/RCTPushy/RCTPushy.h']
end
-
- s.subspec 'BSDiff' do |ss|
- ss.source_files = 'ios/RCTPushy/BSDiff/**/*.{h,m,c}'
- ss.private_header_files = 'ios/RCTPushy/BSDiff/**/*.h'
+
+ s.subspec 'HDiffPatch' do |ss|
+ ss.source_files = ['ios/RCTPushy/HDiffPatch/**/*.{h,m,c}',
+ 'android/jni/hpatch.{h,c}',
+ 'android/jni/HDiffPatch/libHDiffPatch/HPatch/*.{h,c}',
+ 'android/jni/HDiffPatch/file_for_patch.{h,c}',
+ 'android/jni/lzma/C/LzmaDec.{h,c}',
+ 'android/jni/lzma/C/Lzma2Dec.{h,c}']
+ ss.private_header_files = 'ios/RCTPushy/HDiffPatch/**/*.h'
end
end