{"version":3,"sources":["webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./src/views/postRelease.vue?7169","webpack:///src/views/postRelease.vue","webpack:///./src/views/postRelease.vue?b82a","webpack:///./src/views/postRelease.vue","webpack:///./node_modules/spark-md5/spark-md5.js","webpack:///./node_modules/exif-js/exif.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./src/views/postRelease.vue?fc7e","webpack:///./node_modules/qiniu-js/esm/base64.js","webpack:///./node_modules/qiniu-js/esm/utils.js","webpack:///./node_modules/qiniu-js/esm/statisticsLog.js","webpack:///./node_modules/qiniu-js/esm/config.js","webpack:///./node_modules/qiniu-js/esm/pool.js","webpack:///./node_modules/qiniu-js/esm/api.js","webpack:///./node_modules/qiniu-js/esm/upload/base.js","webpack:///./node_modules/qiniu-js/esm/upload/resume.js","webpack:///./node_modules/qiniu-js/esm/upload/direct.js","webpack:///./node_modules/qiniu-js/esm/upload/index.js","webpack:///./node_modules/qiniu-js/esm/observable.js","webpack:///./node_modules/qiniu-js/esm/compress.js","webpack:///./node_modules/qiniu-js/esm/image.js","webpack:///./node_modules/qiniu-js/esm/index.js"],"names":["fails","wellKnownSymbol","V8_VERSION","SPECIES","module","exports","METHOD_NAME","array","constructor","foo","Boolean","redefine","anObject","flags","TO_STRING","RegExpPrototype","RegExp","prototype","nativeToString","NOT_GENERIC","call","source","INCORRECT_NAME","name","R","this","p","String","rf","f","undefined","unsafe","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","_v","path","ref","staticStyle","form","model","value","callback","$$v","$set","expression","on","change","_l","item","key","id","change2","radio","picList","handleAvatarSuccess","beforeAvatarUpload","upload","picRemove","vedioList","vediohandleAvatarSuccess","vediobeforeAvatarUpload","vedioupload","vedioRemove","handleExceed","slot","onSubmit","cancel","staticRenderFns","data","title","content","first","second","imageUrl","options","options1","videoSrc","cust_id","authorname","filelist","mounted","$route","query","getbk","sessionStorage","getItem","getdetail","methods","axios","formData","append","file","URL","createObjectURL","raw","isLt2M","$message","error","i","k","uid","splice","console","log","status","message","useCdnDomain","retryCount","fname","params","mimeType","next","parseInt","res","total","percent","code","isRequestError","complete","warning","$router","push","element","url","forum_id","img","JSON","stringify","img_count","length","video","video_img","is_homepage","author_id","author_name","sex","headimg","is_moderator","component","factory","hex_chr","md5cycle","x","a","b","c","d","md5blk","s","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","n","state","substring","toString","match","md51_array","subarray","Uint8Array","rhex","j","hex","join","toUtf8","str","test","unescape","encodeURIComponent","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arr","arrayBuffer2Utf8Str","fromCharCode","apply","concatenateArrayBuffers","result","byteLength","set","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","y","lsw","msw","slice","clamp","val","Math","max","min","from","to","num","target","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","ret","_finish","getState","hash","setState","destroy","hashBinary","debug","EXIF","obj","EXIFwrapped","ExifTags","Tags","TiffTags","GPSTags","0","IFD1Tags","StringValues","ExposureProgram","1","2","3","4","5","6","7","8","MeteringMode","255","LightSource","9","10","11","12","13","14","15","17","18","19","20","21","22","23","24","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","Components","imageHasData","base64ToArrayBuffer","base64","contentType","replace","binary","atob","len","view","objectURLToBlob","http","XMLHttpRequest","open","responseType","onload","e","response","send","getImageData","handleBinaryFile","binFile","findEXIFinJPEG","exifdata","iptcdata","findIPTCinJPEG","isXmpEnabled","xmpdata","findXMPinJPEG","src","arrayBuffer","fileReader","FileReader","blob","readAsArrayBuffer","self","Blob","File","dataView","DataView","getUint8","marker","offset","readEXIFData","getUint16","isFieldSegmentStart","nameHeaderLength","startOffset","sectionLength","readIPTCData","IptcFieldMap","fieldValue","fieldName","dataSize","segmentType","segmentStartPos","getInt16","getStringFromDB","hasOwnProperty","Array","readTags","tiffStart","dirStart","strings","bigEnd","entryOffset","tag","entries","tags","readTagValue","vals","numerator","denominator","type","numValues","getUint32","valueOffset","Number","getInt32","getNextIFDOffset","readThumbnailImage","firstIFDOffset","IFD1OffsetPointer","thumbTags","JpegIFOffset","JpegIFByteCount","tOffset","tLength","start","outstr","exifData","gpsData","tiffOffset","ExifIFDPointer","GPSInfoIFDPointer","dom","DOMParser","xmpString","xmpEndIndex","indexOf","indexOfXmp","domDocument","parseFromString","xml2Object","xml2json","xml","json","nodeType","attributes","attribute","nodeName","nodeValue","hasChildNodes","childNodes","child","old","children","idx","itemAtt","dataKey","dataValue","textContent","enableXmp","disableXmp","getData","Image","HTMLImageElement","getTag","getIptcTag","getAllTags","getAllIptcTags","pretty","strPretty","readFromBinaryFile","$","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","proto","forced","deleteCount","insertCount","actualDeleteCount","A","O","actualStart","argumentsLength","arguments","TypeError","utf8Encode","argString","string","utftext","stringl","c1","enc","RangeError","c2","base64Encode","o1","o2","o3","h1","h2","h3","h4","bits","b64","ac","tmp_arr","charAt","base64Decode","dec","urlSafeBase64Encode","v","urlSafeBase64Decode","__assign","Object","assign","t","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","rejected","done","then","__generator","body","g","_","label","sent","trys","ops","verb","Symbol","iterator","op","pop","MB","pow","getChunks","blockSize","chunkByteSize","size","chunks","count","ceil","chunk","isMetaDataValid","keys","every","isCustomVarsValid","sum","list","reduce","loaded","setLocalFileInfo","localKey","info","localStorage","setItem","err","window","warn","createLocalKey","removeLocalFileInfo","removeItem","getLocalFileInfo","localInfo","parse","getAuthHeaders","token","auth","Authorization","getHeadersForChunkUpload","header","getHeadersForMkFile","createXHR","ActiveXObject","computeMd5","spark","_a","reader","evt","Error","onerror","request","xhr","method","onCreate","headers","headers_1","forEach","setRequestHeader","addEventListener","lengthComputable","onProgress","onreadystatechange","responseText","readyState","reqId","getResponseHeader","getPortFromUrl","groups","getDomainFromUrl","getPutPolicy","segments","split","ak","putPolicy","bucket","scope","webkitURL","mozURL","getTransform","image","orientation","width","height","matrix","StatisticsLogger","logString","values","_this","Pool","runTask","limit","queue","processing","enqueue","task","check","run","filter","processingNum","availableNum","region","z0","z1","z2","na0","as0","regionUphostMap","srcUphost","cdnUphost","getUpHosts","protocol","getUploadUrl","config","upHosts","host","hosts","upprotocol","uphost","up","acc","main","getBaseUrl","uploadInfo","initUploadParts","uploadUrl","uploadChunk","index","uploadComplete","deleteUploadedChunks","uploadinfo","DEFAULT_CHUNK_SIZE","GB","Base","handlers","statisticsLogger","xhrList","aborted","disableStatisticsReport","checkByMD5","forceDirect","chunkSize","concurrentRequestLimit","putExtra","onData","onError","onComplete","putFile","err_1","needRetry","notReachRetryCount","_b","customVars","metadata","uploadAt","Date","getTime","sendLog","clear","abort","stop","addXhr","remoteIp","port","duration","time","floor","bytesSent","progress","upType","getProgressInfoItem","__extends","extendStatics","setPrototypeOf","__proto__","__","create","isPositiveInteger","re","_super","Resume","pool","uploadChunks","initBeforeUploadChunks","chunkInfo","map","all","mkFileReq","getLocalKey","shouldCheckMD5","reuseSaved","md5","requestOptions","uploadedList","updateChunkProgress","getUploadInfo","etag","uploadId","parts","partNumber","updateMkFileProgress","mkFileProgress","notifyResumeProgress","Direct","customVars_1","FormData","updateDirectProgress","finishDirectProgress","createUploadManager","Subscription","closed","unsubscribe","_unsubscribe","add","teardown","Subscriber","observerOrNext","isStopped","destination","Observable","_subscribe","subscribe","sink","__read","o","m","r","ar","__spread","concat","PNG","JPEG","WEBP","BMP","maxSteps","scaleFactor","supportMimeTypes","defaultType","isSupportedType","includes","Compress","quality","noCompressIfLarger","process","srcDimension","originImage","canvas","scale","scaleCanvas","distBlob","outputType","getOriginImage","getCanvas","maxWidth","maxHeight","doScale","toBlob","dist","ctx","fillStyle","fillRect","clearRect","document","createElement","context","getContext","transform","drawImage","sctx","steps","factor","mirror","mctx","originWidth","originHeight","dw","dh","putImageData","dataURL","toDataURL","char","compressImage","compress","getImageUrl","domain","imageView2","mode","w","h","q","format","imageMogr2","autoOrient","thumbnail","strip","gravity","crop","rotate","blur","watermark","text","font","fontsize","fill","dissolve","dx","dy","imageInfo","pipeline","option","isArray","errOp","fop","length_1","observer","manager","bind"],"mappings":"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","file":"js/chunk-03836312.c2ec855e.js","sourcesContent":["var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-breadcrumb',{staticClass:\"Bdh\",attrs:{\"separator-class\":\"el-icon-arrow-right\"}},[_c('el-breadcrumb-item',[_vm._v(\"社区管理\")]),_c('el-breadcrumb-item',{attrs:{\"to\":{path:'/postManage'}}},[_vm._v(\"帖子管理\")]),_c('el-breadcrumb-item',[_vm._v(\"发布帖子\")])],1),_c('el-form',{ref:\"form\",staticStyle:{\"text-align\":\"left\"},attrs:{\"model\":_vm.form,\"label-width\":\"120px\"}},[_c('el-form-item',{attrs:{\"label\":\"标题\",\"placeholder\":\"请输入标题\"}},[_c('el-input',{model:{value:(_vm.form.title),callback:function ($$v) {_vm.$set(_vm.form, \"title\", $$v)},expression:\"form.title\"}})],1),_c('el-form-item',{attrs:{\"label\":\"内容\",\"placeholder\":\"请输入内容\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"maxlength\":\"500\"},model:{value:(_vm.form.content),callback:function ($$v) {_vm.$set(_vm.form, \"content\", $$v)},expression:\"form.content\"}})],1),_c('el-form-item',{attrs:{\"label\":\"选择板块\"}},[_c('el-select',{staticStyle:{\"margin-right\":\"30px\"},attrs:{\"placeholder\":\"请选择一级板块\"},on:{\"change\":_vm.change},model:{value:(_vm.form.first),callback:function ($$v) {_vm.$set(_vm.form, \"first\", $$v)},expression:\"form.first\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.name,\"value\":item.id}})}),1),_c('el-select',{attrs:{\"placeholder\":\"请选择二级板块\"},on:{\"change\":_vm.change2},model:{value:(_vm.form.second),callback:function ($$v) {_vm.$set(_vm.form, \"second\", $$v)},expression:\"form.second\"}},_vm._l((_vm.options1),function(item){return _c('el-option',{key:item.value,attrs:{\"label\":item.name,\"value\":item.id}})}),1)],1),_c('el-form-item',{attrs:{\"label\":\"是否推荐到首页\"}},[_c('el-radio',{attrs:{\"label\":\"1\"},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(\"是\")]),_c('el-radio',{attrs:{\"label\":\"0\"},model:{value:(_vm.radio),callback:function ($$v) {_vm.radio=$$v},expression:\"radio\"}},[_vm._v(\"否\")])],1),_c('el-form-item',{attrs:{\"label\":\"上传图片\"}},[_c('el-upload',{staticClass:\"avatar-uploader\",attrs:{\"action\":\" \",\"list-type\":\"picture-card\",\"show-file-list\":\"\",\"file-list\":_vm.picList,\"on-success\":_vm.handleAvatarSuccess,\"before-upload\":_vm.beforeAvatarUpload,\"http-request\":_vm.upload,\"on-remove\":_vm.picRemove}},[_c('i',{staticClass:\"el-icon-plus\"})])],1),_c('el-form-item',{attrs:{\"label\":\"上传视频\"}},[_c('el-upload',{staticClass:\"upload-demo\",staticStyle:{\"width\":\"40%\"},attrs:{\"action\":\" \",\"accept\":\"video/*\",\"limit\":1,\"file-list\":_vm.vedioList,\"on-success\":_vm.vediohandleAvatarSuccess,\"before-upload\":_vm.vediobeforeAvatarUpload,\"http-request\":_vm.vedioupload,\"on-remove\":_vm.vedioRemove,\"on-exceed\":_vm.handleExceed}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"}},[_vm._v(\"点击上传\")]),_c('div',{staticClass:\"el-upload__tip\",attrs:{\"slot\":\"tip\"},slot:\"tip\"},[_vm._v(\"只能上传mp4文件,且不超过40M\")])],1)],1),_c('el-form-item',{staticStyle:{\"text-align\":\"center\"}},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(\"发布\")]),_c('el-button',{on:{\"click\":_vm.cancel}},[_vm._v(\"取消\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n
\r\n 社区管理\r\n 帖子管理\r\n 发布帖子\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 是\r\n 否\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 点击上传\r\n 只能上传mp4文件,且不超过40M
\r\n \r\n \r\n \r\n \r\n 发布\r\n 取消\r\n \r\n \r\n\r\n
\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./postRelease.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./postRelease.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./postRelease.vue?vue&type=template&id=762d2432&\"\nimport script from \"./postRelease.vue?vue&type=script&lang=js&\"\nexport * from \"./postRelease.vue?vue&type=script&lang=js&\"\nimport style0 from \"./postRelease.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(function (factory) {\n if (typeof exports === 'object') {\n // Node/CommonJS\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD\n define(factory);\n } else {\n // Browser globals (with support for web workers)\n var glob;\n\n try {\n glob = window;\n } catch (e) {\n glob = self;\n }\n\n glob.SparkMD5 = factory();\n }\n}(function (undefined) {\n\n 'use strict';\n\n /*\n * Fastest md5 implementation around (JKM md5).\n * Credits: Joseph Myers\n *\n * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n * @see http://jsperf.com/md5-shootout/7\n */\n\n /* this function is much faster,\n so if possible we use it. Some IEs\n are the only ones I know of that\n need the idiotic second function,\n generated by an if clause. */\n var add32 = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n },\n hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n function cmn(q, a, b, x, s, t) {\n a = add32(add32(a, q), add32(x, t));\n return add32((a << s) | (a >>> (32 - s)), b);\n }\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 |b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i; /* Andy King said do it this way. */\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n // containing the last element of the parent array if the sub array specified starts\n // beyond the length of the parent array - weird.\n // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << ((i % 4) << 3);\n }\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Beware that the final length might not fit in 32 bits so we take care of that\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n\n md5cycle(state, tail);\n\n return state;\n }\n\n function rhex(n) {\n var s = '',\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n }\n\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join('');\n }\n\n // In some cases the fast add32 function cannot be used..\n if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n add32 = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n }\n\n // ---------------------------------------------------\n\n /**\n * ArrayBuffer slice polyfill.\n *\n * @see https://github.com/ttaubert/node-arraybuffer-slice\n */\n\n if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = (val | 0) || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n\n return target;\n };\n })();\n }\n\n // ---------------------------------------------------\n\n /**\n * Helpers.\n */\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation.\n *\n * Use this class to perform an incremental md5, otherwise use the\n * static methods instead.\n */\n\n function SparkMD5() {\n // call reset to init the instance\n this.reset();\n }\n\n /**\n * Appends a string.\n * A conversion will be applied if an utf8 string is detected.\n *\n * @param {String} str The string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.append = function (str) {\n // Converts the string to utf8 bytes if necessary\n // Then append as binary\n this.appendBinary(toUtf8(str));\n\n return this;\n };\n\n /**\n * Appends a binary string.\n *\n * @param {String} contents The binary string to be appended\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.reset = function () {\n this._buff = '';\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash.slice()\n };\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5} The instance itself\n */\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n\n return this;\n };\n\n /**\n * Releases memory used by the incremental buffer and other additional\n * resources. If you plan to use the instance again, use reset instead.\n */\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n /**\n * Finish the final calculation based on the tail.\n *\n * @param {Array} tail The tail (will be modified)\n * @param {Number} length The length of the remaining buffer\n */\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n /**\n * Performs the md5 hash on a string.\n * A conversion will be applied if utf8 string is detected.\n *\n * @param {String} str The string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hash = function (str, raw) {\n // Converts the string to utf8 bytes if necessary\n // Then compute it using the binary function\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n /**\n * Performs the md5 hash on a binary string.\n *\n * @param {String} content The binary string\n * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n // ---------------------------------------------------\n\n /**\n * SparkMD5 OOP implementation for array buffers.\n *\n * Use this class to perform an incremental md5 ONLY for array buffers.\n */\n SparkMD5.ArrayBuffer = function () {\n // call reset to init the instance\n this.reset();\n };\n\n /**\n * Appends an array buffer.\n *\n * @param {ArrayBuffer} arr The array to be appended\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n return this;\n };\n\n /**\n * Finishes the incremental computation, reseting the internal state and\n * returning the result.\n *\n * @param {Boolean} raw True to get the raw string, false to get the hex string\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n }\n\n this._finish(tail, length);\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n\n return ret;\n };\n\n /**\n * Resets the internal state of the computation.\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n return this;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @return {Object} The state\n */\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n\n // Convert buffer to a string\n state.buff = arrayBuffer2Utf8Str(state.buff);\n\n return state;\n };\n\n /**\n * Gets the internal state of the computation.\n *\n * @param {Object} state The state\n *\n * @return {SparkMD5.ArrayBuffer} The instance itself\n */\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n // Convert string to buffer\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n /**\n * Performs the md5 hash on an array buffer.\n *\n * @param {ArrayBuffer} arr The array buffer\n * @param {Boolean} [raw] True to get the raw string, false to get the hex one\n *\n * @return {String} The result\n */\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n}));\n","(function() {\n\n var debug = false;\n\n var root = this;\n\n var EXIF = function(obj) {\n if (obj instanceof EXIF) return obj;\n if (!(this instanceof EXIF)) return new EXIF(obj);\n this.EXIFwrapped = obj;\n };\n\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = EXIF;\n }\n exports.EXIF = EXIF;\n } else {\n root.EXIF = EXIF;\n }\n\n var ExifTags = EXIF.Tags = {\n\n // version tags\n 0x9000 : \"ExifVersion\", // EXIF version\n 0xA000 : \"FlashpixVersion\", // Flashpix format version\n\n // colorspace tags\n 0xA001 : \"ColorSpace\", // Color space information tag\n\n // image configuration\n 0xA002 : \"PixelXDimension\", // Valid width of meaningful image\n 0xA003 : \"PixelYDimension\", // Valid height of meaningful image\n 0x9101 : \"ComponentsConfiguration\", // Information about channels\n 0x9102 : \"CompressedBitsPerPixel\", // Compressed bits per pixel\n\n // user information\n 0x927C : \"MakerNote\", // Any desired information written by the manufacturer\n 0x9286 : \"UserComment\", // Comments by user\n\n // related file\n 0xA004 : \"RelatedSoundFile\", // Name of related sound file\n\n // date and time\n 0x9003 : \"DateTimeOriginal\", // Date and time when the original image was generated\n 0x9004 : \"DateTimeDigitized\", // Date and time when the image was stored digitally\n 0x9290 : \"SubsecTime\", // Fractions of seconds for DateTime\n 0x9291 : \"SubsecTimeOriginal\", // Fractions of seconds for DateTimeOriginal\n 0x9292 : \"SubsecTimeDigitized\", // Fractions of seconds for DateTimeDigitized\n\n // picture-taking conditions\n 0x829A : \"ExposureTime\", // Exposure time (in seconds)\n 0x829D : \"FNumber\", // F number\n 0x8822 : \"ExposureProgram\", // Exposure program\n 0x8824 : \"SpectralSensitivity\", // Spectral sensitivity\n 0x8827 : \"ISOSpeedRatings\", // ISO speed rating\n 0x8828 : \"OECF\", // Optoelectric conversion factor\n 0x9201 : \"ShutterSpeedValue\", // Shutter speed\n 0x9202 : \"ApertureValue\", // Lens aperture\n 0x9203 : \"BrightnessValue\", // Value of brightness\n 0x9204 : \"ExposureBias\", // Exposure bias\n 0x9205 : \"MaxApertureValue\", // Smallest F number of lens\n 0x9206 : \"SubjectDistance\", // Distance to subject in meters\n 0x9207 : \"MeteringMode\", // Metering mode\n 0x9208 : \"LightSource\", // Kind of light source\n 0x9209 : \"Flash\", // Flash status\n 0x9214 : \"SubjectArea\", // Location and area of main subject\n 0x920A : \"FocalLength\", // Focal length of the lens in mm\n 0xA20B : \"FlashEnergy\", // Strobe energy in BCPS\n 0xA20C : \"SpatialFrequencyResponse\", //\n 0xA20E : \"FocalPlaneXResolution\", // Number of pixels in width direction per FocalPlaneResolutionUnit\n 0xA20F : \"FocalPlaneYResolution\", // Number of pixels in height direction per FocalPlaneResolutionUnit\n 0xA210 : \"FocalPlaneResolutionUnit\", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution\n 0xA214 : \"SubjectLocation\", // Location of subject in image\n 0xA215 : \"ExposureIndex\", // Exposure index selected on camera\n 0xA217 : \"SensingMethod\", // Image sensor type\n 0xA300 : \"FileSource\", // Image source (3 == DSC)\n 0xA301 : \"SceneType\", // Scene type (1 == directly photographed)\n 0xA302 : \"CFAPattern\", // Color filter array geometric pattern\n 0xA401 : \"CustomRendered\", // Special processing\n 0xA402 : \"ExposureMode\", // Exposure mode\n 0xA403 : \"WhiteBalance\", // 1 = auto white balance, 2 = manual\n 0xA404 : \"DigitalZoomRation\", // Digital zoom ratio\n 0xA405 : \"FocalLengthIn35mmFilm\", // Equivalent foacl length assuming 35mm film camera (in mm)\n 0xA406 : \"SceneCaptureType\", // Type of scene\n 0xA407 : \"GainControl\", // Degree of overall image gain adjustment\n 0xA408 : \"Contrast\", // Direction of contrast processing applied by camera\n 0xA409 : \"Saturation\", // Direction of saturation processing applied by camera\n 0xA40A : \"Sharpness\", // Direction of sharpness processing applied by camera\n 0xA40B : \"DeviceSettingDescription\", //\n 0xA40C : \"SubjectDistanceRange\", // Distance to subject\n\n // other tags\n 0xA005 : \"InteroperabilityIFDPointer\",\n 0xA420 : \"ImageUniqueID\" // Identifier assigned uniquely to each image\n };\n\n var TiffTags = EXIF.TiffTags = {\n 0x0100 : \"ImageWidth\",\n 0x0101 : \"ImageHeight\",\n 0x8769 : \"ExifIFDPointer\",\n 0x8825 : \"GPSInfoIFDPointer\",\n 0xA005 : \"InteroperabilityIFDPointer\",\n 0x0102 : \"BitsPerSample\",\n 0x0103 : \"Compression\",\n 0x0106 : \"PhotometricInterpretation\",\n 0x0112 : \"Orientation\",\n 0x0115 : \"SamplesPerPixel\",\n 0x011C : \"PlanarConfiguration\",\n 0x0212 : \"YCbCrSubSampling\",\n 0x0213 : \"YCbCrPositioning\",\n 0x011A : \"XResolution\",\n 0x011B : \"YResolution\",\n 0x0128 : \"ResolutionUnit\",\n 0x0111 : \"StripOffsets\",\n 0x0116 : \"RowsPerStrip\",\n 0x0117 : \"StripByteCounts\",\n 0x0201 : \"JPEGInterchangeFormat\",\n 0x0202 : \"JPEGInterchangeFormatLength\",\n 0x012D : \"TransferFunction\",\n 0x013E : \"WhitePoint\",\n 0x013F : \"PrimaryChromaticities\",\n 0x0211 : \"YCbCrCoefficients\",\n 0x0214 : \"ReferenceBlackWhite\",\n 0x0132 : \"DateTime\",\n 0x010E : \"ImageDescription\",\n 0x010F : \"Make\",\n 0x0110 : \"Model\",\n 0x0131 : \"Software\",\n 0x013B : \"Artist\",\n 0x8298 : \"Copyright\"\n };\n\n var GPSTags = EXIF.GPSTags = {\n 0x0000 : \"GPSVersionID\",\n 0x0001 : \"GPSLatitudeRef\",\n 0x0002 : \"GPSLatitude\",\n 0x0003 : \"GPSLongitudeRef\",\n 0x0004 : \"GPSLongitude\",\n 0x0005 : \"GPSAltitudeRef\",\n 0x0006 : \"GPSAltitude\",\n 0x0007 : \"GPSTimeStamp\",\n 0x0008 : \"GPSSatellites\",\n 0x0009 : \"GPSStatus\",\n 0x000A : \"GPSMeasureMode\",\n 0x000B : \"GPSDOP\",\n 0x000C : \"GPSSpeedRef\",\n 0x000D : \"GPSSpeed\",\n 0x000E : \"GPSTrackRef\",\n 0x000F : \"GPSTrack\",\n 0x0010 : \"GPSImgDirectionRef\",\n 0x0011 : \"GPSImgDirection\",\n 0x0012 : \"GPSMapDatum\",\n 0x0013 : \"GPSDestLatitudeRef\",\n 0x0014 : \"GPSDestLatitude\",\n 0x0015 : \"GPSDestLongitudeRef\",\n 0x0016 : \"GPSDestLongitude\",\n 0x0017 : \"GPSDestBearingRef\",\n 0x0018 : \"GPSDestBearing\",\n 0x0019 : \"GPSDestDistanceRef\",\n 0x001A : \"GPSDestDistance\",\n 0x001B : \"GPSProcessingMethod\",\n 0x001C : \"GPSAreaInformation\",\n 0x001D : \"GPSDateStamp\",\n 0x001E : \"GPSDifferential\"\n };\n\n // EXIF 2.3 Spec\n var IFD1Tags = EXIF.IFD1Tags = {\n 0x0100: \"ImageWidth\",\n 0x0101: \"ImageHeight\",\n 0x0102: \"BitsPerSample\",\n 0x0103: \"Compression\",\n 0x0106: \"PhotometricInterpretation\",\n 0x0111: \"StripOffsets\",\n 0x0112: \"Orientation\",\n 0x0115: \"SamplesPerPixel\",\n 0x0116: \"RowsPerStrip\",\n 0x0117: \"StripByteCounts\",\n 0x011A: \"XResolution\",\n 0x011B: \"YResolution\",\n 0x011C: \"PlanarConfiguration\",\n 0x0128: \"ResolutionUnit\",\n 0x0201: \"JpegIFOffset\", // When image format is JPEG, this value show offset to JPEG data stored.(aka \"ThumbnailOffset\" or \"JPEGInterchangeFormat\")\n 0x0202: \"JpegIFByteCount\", // When image format is JPEG, this value shows data size of JPEG image (aka \"ThumbnailLength\" or \"JPEGInterchangeFormatLength\")\n 0x0211: \"YCbCrCoefficients\",\n 0x0212: \"YCbCrSubSampling\",\n 0x0213: \"YCbCrPositioning\",\n 0x0214: \"ReferenceBlackWhite\"\n };\n\n var StringValues = EXIF.StringValues = {\n ExposureProgram : {\n 0 : \"Not defined\",\n 1 : \"Manual\",\n 2 : \"Normal program\",\n 3 : \"Aperture priority\",\n 4 : \"Shutter priority\",\n 5 : \"Creative program\",\n 6 : \"Action program\",\n 7 : \"Portrait mode\",\n 8 : \"Landscape mode\"\n },\n MeteringMode : {\n 0 : \"Unknown\",\n 1 : \"Average\",\n 2 : \"CenterWeightedAverage\",\n 3 : \"Spot\",\n 4 : \"MultiSpot\",\n 5 : \"Pattern\",\n 6 : \"Partial\",\n 255 : \"Other\"\n },\n LightSource : {\n 0 : \"Unknown\",\n 1 : \"Daylight\",\n 2 : \"Fluorescent\",\n 3 : \"Tungsten (incandescent light)\",\n 4 : \"Flash\",\n 9 : \"Fine weather\",\n 10 : \"Cloudy weather\",\n 11 : \"Shade\",\n 12 : \"Daylight fluorescent (D 5700 - 7100K)\",\n 13 : \"Day white fluorescent (N 4600 - 5400K)\",\n 14 : \"Cool white fluorescent (W 3900 - 4500K)\",\n 15 : \"White fluorescent (WW 3200 - 3700K)\",\n 17 : \"Standard light A\",\n 18 : \"Standard light B\",\n 19 : \"Standard light C\",\n 20 : \"D55\",\n 21 : \"D65\",\n 22 : \"D75\",\n 23 : \"D50\",\n 24 : \"ISO studio tungsten\",\n 255 : \"Other\"\n },\n Flash : {\n 0x0000 : \"Flash did not fire\",\n 0x0001 : \"Flash fired\",\n 0x0005 : \"Strobe return light not detected\",\n 0x0007 : \"Strobe return light detected\",\n 0x0009 : \"Flash fired, compulsory flash mode\",\n 0x000D : \"Flash fired, compulsory flash mode, return light not detected\",\n 0x000F : \"Flash fired, compulsory flash mode, return light detected\",\n 0x0010 : \"Flash did not fire, compulsory flash mode\",\n 0x0018 : \"Flash did not fire, auto mode\",\n 0x0019 : \"Flash fired, auto mode\",\n 0x001D : \"Flash fired, auto mode, return light not detected\",\n 0x001F : \"Flash fired, auto mode, return light detected\",\n 0x0020 : \"No flash function\",\n 0x0041 : \"Flash fired, red-eye reduction mode\",\n 0x0045 : \"Flash fired, red-eye reduction mode, return light not detected\",\n 0x0047 : \"Flash fired, red-eye reduction mode, return light detected\",\n 0x0049 : \"Flash fired, compulsory flash mode, red-eye reduction mode\",\n 0x004D : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",\n 0x004F : \"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",\n 0x0059 : \"Flash fired, auto mode, red-eye reduction mode\",\n 0x005D : \"Flash fired, auto mode, return light not detected, red-eye reduction mode\",\n 0x005F : \"Flash fired, auto mode, return light detected, red-eye reduction mode\"\n },\n SensingMethod : {\n 1 : \"Not defined\",\n 2 : \"One-chip color area sensor\",\n 3 : \"Two-chip color area sensor\",\n 4 : \"Three-chip color area sensor\",\n 5 : \"Color sequential area sensor\",\n 7 : \"Trilinear sensor\",\n 8 : \"Color sequential linear sensor\"\n },\n SceneCaptureType : {\n 0 : \"Standard\",\n 1 : \"Landscape\",\n 2 : \"Portrait\",\n 3 : \"Night scene\"\n },\n SceneType : {\n 1 : \"Directly photographed\"\n },\n CustomRendered : {\n 0 : \"Normal process\",\n 1 : \"Custom process\"\n },\n WhiteBalance : {\n 0 : \"Auto white balance\",\n 1 : \"Manual white balance\"\n },\n GainControl : {\n 0 : \"None\",\n 1 : \"Low gain up\",\n 2 : \"High gain up\",\n 3 : \"Low gain down\",\n 4 : \"High gain down\"\n },\n Contrast : {\n 0 : \"Normal\",\n 1 : \"Soft\",\n 2 : \"Hard\"\n },\n Saturation : {\n 0 : \"Normal\",\n 1 : \"Low saturation\",\n 2 : \"High saturation\"\n },\n Sharpness : {\n 0 : \"Normal\",\n 1 : \"Soft\",\n 2 : \"Hard\"\n },\n SubjectDistanceRange : {\n 0 : \"Unknown\",\n 1 : \"Macro\",\n 2 : \"Close view\",\n 3 : \"Distant view\"\n },\n FileSource : {\n 3 : \"DSC\"\n },\n\n Components : {\n 0 : \"\",\n 1 : \"Y\",\n 2 : \"Cb\",\n 3 : \"Cr\",\n 4 : \"R\",\n 5 : \"G\",\n 6 : \"B\"\n }\n };\n\n function addEvent(element, event, handler) {\n if (element.addEventListener) {\n element.addEventListener(event, handler, false);\n } else if (element.attachEvent) {\n element.attachEvent(\"on\" + event, handler);\n }\n }\n\n function imageHasData(img) {\n return !!(img.exifdata);\n }\n\n\n function base64ToArrayBuffer(base64, contentType) {\n contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n var binary = atob(base64);\n var len = binary.length;\n var buffer = new ArrayBuffer(len);\n var view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n }\n\n function objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function(e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n }\n\n function getImageData(img, callback) {\n function handleBinaryFile(binFile) {\n var data = findEXIFinJPEG(binFile);\n img.exifdata = data || {};\n var iptcdata = findIPTCinJPEG(binFile);\n img.iptcdata = iptcdata || {};\n if (EXIF.isXmpEnabled) {\n var xmpdata= findXMPinJPEG(binFile);\n img.xmpdata = xmpdata || {}; \n }\n if (callback) {\n callback.call(img);\n }\n }\n\n if (img.src) {\n if (/^data\\:/i.test(img.src)) { // Data URI\n var arrayBuffer = base64ToArrayBuffer(img.src);\n handleBinaryFile(arrayBuffer);\n\n } else if (/^blob\\:/i.test(img.src)) { // Object URL\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n handleBinaryFile(e.target.result);\n };\n objectURLToBlob(img.src, function (blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function() {\n if (this.status == 200 || this.status === 0) {\n handleBinaryFile(http.response);\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else if (self.FileReader && (img instanceof self.Blob || img instanceof self.File)) {\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n if (debug) console.log(\"Got file of length \" + e.target.result.byteLength);\n handleBinaryFile(e.target.result);\n };\n\n fileReader.readAsArrayBuffer(img);\n }\n }\n\n function findEXIFinJPEG(file) {\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength,\n marker;\n\n while (offset < length) {\n if (dataView.getUint8(offset) != 0xFF) {\n if (debug) console.log(\"Not a valid marker at offset \" + offset + \", found: \" + dataView.getUint8(offset));\n return false; // not a valid marker, something is wrong\n }\n\n marker = dataView.getUint8(offset + 1);\n if (debug) console.log(marker);\n\n // we could implement handling for other markers here,\n // but we're only looking for 0xFFE1 for EXIF data\n\n if (marker == 225) {\n if (debug) console.log(\"Found 0xFFE1 marker\");\n\n return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);\n\n // offset += 2 + file.getShortAt(offset+2, true);\n\n } else {\n offset += 2 + dataView.getUint16(offset+2);\n }\n\n }\n\n }\n\n function findIPTCinJPEG(file) {\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength;\n\n\n var isFieldSegmentStart = function(dataView, offset){\n return (\n dataView.getUint8(offset) === 0x38 &&\n dataView.getUint8(offset+1) === 0x42 &&\n dataView.getUint8(offset+2) === 0x49 &&\n dataView.getUint8(offset+3) === 0x4D &&\n dataView.getUint8(offset+4) === 0x04 &&\n dataView.getUint8(offset+5) === 0x04\n );\n };\n\n while (offset < length) {\n\n if ( isFieldSegmentStart(dataView, offset )){\n\n // Get the length of the name header (which is padded to an even number of bytes)\n var nameHeaderLength = dataView.getUint8(offset+7);\n if(nameHeaderLength % 2 !== 0) nameHeaderLength += 1;\n // Check for pre photoshop 6 format\n if(nameHeaderLength === 0) {\n // Always 4\n nameHeaderLength = 4;\n }\n\n var startOffset = offset + 8 + nameHeaderLength;\n var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);\n\n return readIPTCData(file, startOffset, sectionLength);\n\n break;\n\n }\n\n\n // Not the marker, continue searching\n offset++;\n\n }\n\n }\n var IptcFieldMap = {\n 0x78 : 'caption',\n 0x6E : 'credit',\n 0x19 : 'keywords',\n 0x37 : 'dateCreated',\n 0x50 : 'byline',\n 0x55 : 'bylineTitle',\n 0x7A : 'captionWriter',\n 0x69 : 'headline',\n 0x74 : 'copyright',\n 0x0F : 'category'\n };\n function readIPTCData(file, startOffset, sectionLength){\n var dataView = new DataView(file);\n var data = {};\n var fieldValue, fieldName, dataSize, segmentType, segmentSize;\n var segmentStartPos = startOffset;\n while(segmentStartPos < startOffset+sectionLength) {\n if(dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos+1) === 0x02){\n segmentType = dataView.getUint8(segmentStartPos+2);\n if(segmentType in IptcFieldMap) {\n dataSize = dataView.getInt16(segmentStartPos+3);\n segmentSize = dataSize + 5;\n fieldName = IptcFieldMap[segmentType];\n fieldValue = getStringFromDB(dataView, segmentStartPos+5, dataSize);\n // Check if we already stored a value with this name\n if(data.hasOwnProperty(fieldName)) {\n // Value already stored with this name, create multivalue field\n if(data[fieldName] instanceof Array) {\n data[fieldName].push(fieldValue);\n }\n else {\n data[fieldName] = [data[fieldName], fieldValue];\n }\n }\n else {\n data[fieldName] = fieldValue;\n }\n }\n\n }\n segmentStartPos++;\n }\n return data;\n }\n\n\n\n function readTags(file, tiffStart, dirStart, strings, bigEnd) {\n var entries = file.getUint16(dirStart, !bigEnd),\n tags = {},\n entryOffset, tag,\n i;\n\n for (i=0;i 4 ? valueOffset : (entryOffset + 8);\n vals = [];\n for (n=0;n 4 ? valueOffset : (entryOffset + 8);\n return getStringFromDB(file, offset, numValues-1);\n\n case 3: // short, 16 bit int\n if (numValues == 1) {\n return file.getUint16(entryOffset + 8, !bigEnd);\n } else {\n offset = numValues > 2 ? valueOffset : (entryOffset + 8);\n vals = [];\n for (n=0;n dataView.byteLength) { // this should not happen\n // console.log('******** IFD1Offset is outside the bounds of the DataView ********');\n return {};\n }\n // console.log('******* thumbnail IFD offset (IFD1) is: %s', IFD1OffsetPointer);\n\n var thumbTags = readTags(dataView, tiffStart, tiffStart + IFD1OffsetPointer, IFD1Tags, bigEnd)\n\n // EXIF 2.3 specification for JPEG format thumbnail\n\n // If the value of Compression(0x0103) Tag in IFD1 is '6', thumbnail image format is JPEG.\n // Most of Exif image uses JPEG format for thumbnail. In that case, you can get offset of thumbnail\n // by JpegIFOffset(0x0201) Tag in IFD1, size of thumbnail by JpegIFByteCount(0x0202) Tag.\n // Data format is ordinary JPEG format, starts from 0xFFD8 and ends by 0xFFD9. It seems that\n // JPEG format and 160x120pixels of size are recommended thumbnail format for Exif2.1 or later.\n\n if (thumbTags['Compression']) {\n // console.log('Thumbnail image found!');\n\n switch (thumbTags['Compression']) {\n case 6:\n // console.log('Thumbnail image format is JPEG');\n if (thumbTags.JpegIFOffset && thumbTags.JpegIFByteCount) {\n // extract the thumbnail\n var tOffset = tiffStart + thumbTags.JpegIFOffset;\n var tLength = thumbTags.JpegIFByteCount;\n thumbTags['blob'] = new Blob([new Uint8Array(dataView.buffer, tOffset, tLength)], {\n type: 'image/jpeg'\n });\n }\n break;\n\n case 1:\n console.log(\"Thumbnail image format is TIFF, which is not implemented.\");\n break;\n default:\n console.log(\"Unknown thumbnail image format '%s'\", thumbTags['Compression']);\n }\n }\n else if (thumbTags['PhotometricInterpretation'] == 2) {\n console.log(\"Thumbnail image format is RGB, which is not implemented.\");\n }\n return thumbTags;\n }\n\n function getStringFromDB(buffer, start, length) {\n var outstr = \"\";\n for (n = start; n < start+length; n++) {\n outstr += String.fromCharCode(buffer.getUint8(n));\n }\n return outstr;\n }\n\n function readEXIFData(file, start) {\n if (getStringFromDB(file, start, 4) != \"Exif\") {\n if (debug) console.log(\"Not valid EXIF data! \" + getStringFromDB(file, start, 4));\n return false;\n }\n\n var bigEnd,\n tags, tag,\n exifData, gpsData,\n tiffOffset = start + 6;\n\n // test for TIFF validity and endianness\n if (file.getUint16(tiffOffset) == 0x4949) {\n bigEnd = false;\n } else if (file.getUint16(tiffOffset) == 0x4D4D) {\n bigEnd = true;\n } else {\n if (debug) console.log(\"Not valid TIFF data! (no 0x4949 or 0x4D4D)\");\n return false;\n }\n\n if (file.getUint16(tiffOffset+2, !bigEnd) != 0x002A) {\n if (debug) console.log(\"Not valid TIFF data! (no 0x002A)\");\n return false;\n }\n\n var firstIFDOffset = file.getUint32(tiffOffset+4, !bigEnd);\n\n if (firstIFDOffset < 0x00000008) {\n if (debug) console.log(\"Not valid TIFF data! (First offset less than 8)\", file.getUint32(tiffOffset+4, !bigEnd));\n return false;\n }\n\n tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);\n\n if (tags.ExifIFDPointer) {\n exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);\n for (tag in exifData) {\n switch (tag) {\n case \"LightSource\" :\n case \"Flash\" :\n case \"MeteringMode\" :\n case \"ExposureProgram\" :\n case \"SensingMethod\" :\n case \"SceneCaptureType\" :\n case \"SceneType\" :\n case \"CustomRendered\" :\n case \"WhiteBalance\" :\n case \"GainControl\" :\n case \"Contrast\" :\n case \"Saturation\" :\n case \"Sharpness\" :\n case \"SubjectDistanceRange\" :\n case \"FileSource\" :\n exifData[tag] = StringValues[tag][exifData[tag]];\n break;\n\n case \"ExifVersion\" :\n case \"FlashpixVersion\" :\n exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);\n break;\n\n case \"ComponentsConfiguration\" :\n exifData[tag] =\n StringValues.Components[exifData[tag][0]] +\n StringValues.Components[exifData[tag][1]] +\n StringValues.Components[exifData[tag][2]] +\n StringValues.Components[exifData[tag][3]];\n break;\n }\n tags[tag] = exifData[tag];\n }\n }\n\n if (tags.GPSInfoIFDPointer) {\n gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);\n for (tag in gpsData) {\n switch (tag) {\n case \"GPSVersionID\" :\n gpsData[tag] = gpsData[tag][0] +\n \".\" + gpsData[tag][1] +\n \".\" + gpsData[tag][2] +\n \".\" + gpsData[tag][3];\n break;\n }\n tags[tag] = gpsData[tag];\n }\n }\n\n // extract thumbnail\n tags['thumbnail'] = readThumbnailImage(file, tiffOffset, firstIFDOffset, bigEnd);\n\n return tags;\n }\n\n function findXMPinJPEG(file) {\n\n if (!('DOMParser' in self)) {\n // console.warn('XML parsing not supported without DOMParser');\n return;\n }\n var dataView = new DataView(file);\n\n if (debug) console.log(\"Got file of length \" + file.byteLength);\n if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n if (debug) console.log(\"Not a valid JPEG\");\n return false; // not a valid jpeg\n }\n\n var offset = 2,\n length = file.byteLength,\n dom = new DOMParser();\n\n while (offset < (length-4)) {\n if (getStringFromDB(dataView, offset, 4) == \"http\") {\n var startOffset = offset - 1;\n var sectionLength = dataView.getUint16(offset - 2) - 1;\n var xmpString = getStringFromDB(dataView, startOffset, sectionLength)\n var xmpEndIndex = xmpString.indexOf('xmpmeta>') + 8;\n xmpString = xmpString.substring( xmpString.indexOf( ' 0) {\n json['@attributes'] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n json['@attributes'][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) { // text node\n return xml.nodeValue;\n }\n \n // deal with children\n if (xml.hasChildNodes()) {\n for(var i = 0; i < xml.childNodes.length; i++) {\n var child = xml.childNodes.item(i);\n var nodeName = child.nodeName;\n if (json[nodeName] == null) {\n json[nodeName] = xml2json(child);\n } else {\n if (json[nodeName].push == null) {\n var old = json[nodeName];\n json[nodeName] = [];\n json[nodeName].push(old);\n }\n json[nodeName].push(xml2json(child));\n }\n }\n }\n \n return json;\n }\n\n function xml2Object(xml) {\n try {\n var obj = {};\n if (xml.children.length > 0) {\n for (var i = 0; i < xml.children.length; i++) {\n var item = xml.children.item(i);\n var attributes = item.attributes;\n for(var idx in attributes) {\n var itemAtt = attributes[idx];\n var dataKey = itemAtt.nodeName;\n var dataValue = itemAtt.nodeValue;\n\n if(dataKey !== undefined) {\n obj[dataKey] = dataValue;\n }\n }\n var nodeName = item.nodeName;\n\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = xml2json(item);\n } else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n var old = obj[nodeName];\n\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(xml2json(item));\n }\n }\n } else {\n obj = xml.textContent;\n }\n return obj;\n } catch (e) {\n console.log(e.message);\n }\n }\n\n EXIF.enableXmp = function() {\n EXIF.isXmpEnabled = true;\n }\n\n EXIF.disableXmp = function() {\n EXIF.isXmpEnabled = false;\n }\n\n EXIF.getData = function(img, callback) {\n if (((self.Image && img instanceof self.Image)\n || (self.HTMLImageElement && img instanceof self.HTMLImageElement))\n && !img.complete)\n return false;\n\n if (!imageHasData(img)) {\n getImageData(img, callback);\n } else {\n if (callback) {\n callback.call(img);\n }\n }\n return true;\n }\n\n EXIF.getTag = function(img, tag) {\n if (!imageHasData(img)) return;\n return img.exifdata[tag];\n }\n \n EXIF.getIptcTag = function(img, tag) {\n if (!imageHasData(img)) return;\n return img.iptcdata[tag];\n }\n\n EXIF.getAllTags = function(img) {\n if (!imageHasData(img)) return {};\n var a,\n data = img.exifdata,\n tags = {};\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n tags[a] = data[a];\n }\n }\n return tags;\n }\n \n EXIF.getAllIptcTags = function(img) {\n if (!imageHasData(img)) return {};\n var a,\n data = img.iptcdata,\n tags = {};\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n tags[a] = data[a];\n }\n }\n return tags;\n }\n\n EXIF.pretty = function(img) {\n if (!imageHasData(img)) return \"\";\n var a,\n data = img.exifdata,\n strPretty = \"\";\n for (a in data) {\n if (data.hasOwnProperty(a)) {\n if (typeof data[a] == \"object\") {\n if (data[a] instanceof Number) {\n strPretty += a + \" : \" + data[a] + \" [\" + data[a].numerator + \"/\" + data[a].denominator + \"]\\r\\n\";\n } else {\n strPretty += a + \" : [\" + data[a].length + \" values]\\r\\n\";\n }\n } else {\n strPretty += a + \" : \" + data[a] + \"\\r\\n\";\n }\n }\n }\n return strPretty;\n }\n\n EXIF.readFromBinaryFile = function(file) {\n return findEXIFinJPEG(file);\n }\n\n if (typeof define === 'function' && define.amd) {\n define('exif-js', [], function() {\n return EXIF;\n });\n }\n}.call(this));\n\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./postRelease.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./postRelease.vue?vue&type=style&index=0&lang=css&\"","/* eslint-disable */\nexport function utf8Encode(argString) {\n // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + improved by: sowberry\n // + tweaked by: Jack\n // + bugfixed by: Onno Marsman\n // + improved by: Yves Sucaet\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Ulrich\n // + bugfixed by: Rafal Kukawski\n // + improved by: kirilloid\n // + bugfixed by: kirilloid\n // * example 1: this.utf8Encode('Kevin van Zonneveld')\n // * returns 1: 'Kevin van Zonneveld'\n if (argString === null || typeof argString === 'undefined') {\n return '';\n }\n var string = argString + ''; // .replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n var utftext = '', start, end, stringl = 0;\n start = end = 0;\n stringl = string.length;\n for (var n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n if (c1 < 128) {\n end++;\n }\n else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n }\n else if ((c1 & 0xf800 ^ 0xd800) > 0) {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n else {\n // surrogate pairs\n if ((c1 & 0xfc00 ^ 0xd800) > 0) {\n throw new RangeError('Unmatched trail surrogate at ' + n);\n }\n var c2 = string.charCodeAt(++n);\n if ((c2 & 0xfc00 ^ 0xdc00) > 0) {\n throw new RangeError('Unmatched lead surrogate at ' + (n - 1));\n }\n c1 = ((c1 & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n enc = String.fromCharCode((c1 >> 18) | 240, ((c1 >> 12) & 63) | 128, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.slice(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n if (end > start) {\n utftext += string.slice(start, stringl);\n }\n return utftext;\n}\nexport function base64Encode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Bayron Guevara\n // + improved by: Thunder.m\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // - depends on: this.utf8Encode\n // * example 1: this.base64Encode('Kevin van Zonneveld')\n // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n // if (typeof this.window['atob'] == 'function') {\n // return atob(data)\n // }\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = '', tmp_arr = [];\n if (!data) {\n return data;\n }\n data = utf8Encode(data + '');\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n bits = (o1 << 16) | (o2 << 8) | o3;\n h1 = (bits >> 18) & 0x3f;\n h2 = (bits >> 12) & 0x3f;\n h3 = (bits >> 6) & 0x3f;\n h4 = bits & 0x3f;\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n enc = tmp_arr.join('');\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n return enc;\n}\nexport function base64Decode(data) {\n // http://kevin.vanzonneveld.net\n // + original by: Tyler Akins (http://rumkin.com)\n // + improved by: Thunder.m\n // + input by: Aman Gupta\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + bugfixed by: Onno Marsman\n // + bugfixed by: Pellentesque Malesuada\n // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // + input by: Brett Zamir (http://brett-zamir.me)\n // + bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)\n // * example 1: base64_decode('S2V2aW4gdmFuIFpvbm5ldmVsZA==')\n // * returns 1: 'Kevin van Zonneveld'\n // mozilla has this native\n // - but breaks in 2.0.0.12!\n // if (typeof this.window['atob'] == 'function') {\n // return atob(data)\n // }\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = '', tmp_arr = [];\n if (!data) {\n return data;\n }\n data += '';\n do { // unpack four hexets into three octets using index points in b64\n h1 = b64.indexOf(data.charAt(i++));\n h2 = b64.indexOf(data.charAt(i++));\n h3 = b64.indexOf(data.charAt(i++));\n h4 = b64.indexOf(data.charAt(i++));\n bits = h1 << 18 | h2 << 12 | h3 << 6 | h4;\n o1 = bits >> 16 & 0xff;\n o2 = bits >> 8 & 0xff;\n o3 = bits & 0xff;\n if (h3 === 64) {\n tmp_arr[ac++] = String.fromCharCode(o1);\n }\n else if (h4 === 64) {\n tmp_arr[ac++] = String.fromCharCode(o1, o2);\n }\n else {\n tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);\n }\n } while (i < data.length);\n dec = tmp_arr.join('');\n return dec;\n}\nexport function urlSafeBase64Encode(v) {\n v = base64Encode(v);\n return v.replace(/\\//g, '_').replace(/\\+/g, '-');\n}\nexport function urlSafeBase64Decode(v) {\n v = v.replace(/_/g, '/').replace(/-/g, '+');\n return base64Decode(v);\n}\n//# sourceMappingURL=base64.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport SparkMD5 from 'spark-md5';\nimport { urlSafeBase64Decode } from './base64';\nexport var MB = Math.pow(1024, 2);\n// 文件分块\nexport function getChunks(file, blockSize) {\n var chunkByteSize = blockSize * MB; // 转换为字节\n // 如果 chunkByteSize 比文件大,则直接取文件的大小\n if (chunkByteSize > file.size) {\n chunkByteSize = file.size;\n }\n else {\n // 因为最多 10000 chunk,所以如果 chunkSize 不符合则把每片 chunk 大小扩大两倍\n while (file.size > chunkByteSize * 10000) {\n chunkByteSize *= 2;\n }\n }\n var chunks = [];\n var count = Math.ceil(file.size / chunkByteSize);\n for (var i = 0; i < count; i++) {\n var chunk = file.slice(chunkByteSize * i, i === count - 1 ? file.size : chunkByteSize * (i + 1));\n chunks.push(chunk);\n }\n return chunks;\n}\nexport function isMetaDataValid(params) {\n return Object.keys(params).every(function (key) { return key.indexOf('x-qn-meta-') === 0; });\n}\nexport function isCustomVarsValid(params) {\n return Object.keys(params).every(function (key) { return key.indexOf('x:') === 0; });\n}\nexport function sum(list) {\n return list.reduce(function (data, loaded) { return data + loaded; }, 0);\n}\nexport function setLocalFileInfo(localKey, info) {\n try {\n localStorage.setItem(localKey, JSON.stringify(info));\n }\n catch (err) {\n if (window.console && window.console.warn) {\n // eslint-disable-next-line no-console\n console.warn('setLocalFileInfo failed');\n }\n }\n}\nexport function createLocalKey(name, key, size) {\n var localKey = key == null ? '_' : \"_key_\" + key + \"_\";\n return \"qiniu_js_sdk_upload_file_name_\" + name + localKey + \"size_\" + size;\n}\nexport function removeLocalFileInfo(localKey) {\n try {\n localStorage.removeItem(localKey);\n }\n catch (err) {\n if (window.console && window.console.warn) {\n // eslint-disable-next-line no-console\n console.warn('removeLocalFileInfo failed');\n }\n }\n}\nexport function getLocalFileInfo(localKey) {\n try {\n var localInfo = localStorage.getItem(localKey);\n return localInfo ? JSON.parse(localInfo) : null;\n }\n catch (err) {\n if (window.console && window.console.warn) {\n // eslint-disable-next-line no-console\n console.warn('getLocalFileInfo failed');\n }\n return null;\n }\n}\nexport function getAuthHeaders(token) {\n var auth = 'UpToken ' + token;\n return { Authorization: auth };\n}\nexport function getHeadersForChunkUpload(token) {\n var header = getAuthHeaders(token);\n return __assign({ 'content-type': 'application/octet-stream' }, header);\n}\nexport function getHeadersForMkFile(token) {\n var header = getAuthHeaders(token);\n return __assign({ 'content-type': 'application/json' }, header);\n}\nexport function createXHR() {\n if (window.XMLHttpRequest) {\n return new XMLHttpRequest();\n }\n return window.ActiveXObject('Microsoft.XMLHTTP');\n}\nexport function computeMd5(data) {\n return __awaiter(this, void 0, void 0, function () {\n var buffer, spark;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAsArrayBuffer(data)];\n case 1:\n buffer = _a.sent();\n spark = new SparkMD5.ArrayBuffer();\n spark.append(buffer);\n return [2 /*return*/, spark.end()];\n }\n });\n });\n}\nexport function readAsArrayBuffer(data) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n // evt 类型目前存在问题 https://github.com/Microsoft/TypeScript/issues/4163\n reader.onload = function (evt) {\n if (evt.target) {\n var body = evt.target.result;\n resolve(body);\n }\n else {\n reject(new Error('progress event target is undefined'));\n }\n };\n reader.onerror = function () {\n reject(new Error('fileReader read failed'));\n };\n reader.readAsArrayBuffer(data);\n });\n}\nexport function request(url, options) {\n return new Promise(function (resolve, reject) {\n var xhr = createXHR();\n xhr.open(options.method, url);\n if (options.onCreate) {\n options.onCreate(xhr);\n }\n if (options.headers) {\n var headers_1 = options.headers;\n Object.keys(headers_1).forEach(function (k) {\n xhr.setRequestHeader(k, headers_1[k]);\n });\n }\n xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable && options.onProgress) {\n options.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n });\n xhr.onreadystatechange = function () {\n var responseText = xhr.responseText;\n if (xhr.readyState !== 4) {\n return;\n }\n var reqId = xhr.getResponseHeader('x-reqId') || '';\n if (xhr.status !== 200) {\n var message = \"xhr request failed, code: \" + xhr.status;\n if (responseText) {\n message += \" response: \" + responseText;\n }\n reject({\n code: xhr.status,\n message: message,\n reqId: reqId,\n isRequestError: true\n });\n return;\n }\n try {\n resolve({\n data: JSON.parse(responseText),\n reqId: reqId\n });\n }\n catch (err) {\n reject(err);\n }\n };\n xhr.send(options.body);\n });\n}\nexport function getPortFromUrl(url) {\n if (url && url.match) {\n var groups = url.match(/(^https?)/);\n if (!groups) {\n return '';\n }\n var type = groups[1];\n groups = url.match(/^https?:\\/\\/([^:^/]*):(\\d*)/);\n if (groups) {\n return groups[2];\n }\n if (type === 'http') {\n return '80';\n }\n return '443';\n }\n return '';\n}\nexport function getDomainFromUrl(url) {\n if (url && url.match) {\n var groups = url.match(/^https?:\\/\\/([^:^/]*)/);\n return groups ? groups[1] : '';\n }\n return '';\n}\nexport function getPutPolicy(token) {\n var segments = token.split(':');\n // token 构造的差异参考:https://github.com/qbox/product/blob/master/kodo/auths/UpToken.md#admin-uptoken-authorization\n var ak = segments.length > 3 ? segments[1] : segments[0];\n var putPolicy = JSON.parse(urlSafeBase64Decode(segments[segments.length - 1]));\n return {\n ak: ak,\n bucket: putPolicy.scope.split(':')[0]\n };\n}\nexport function createObjectURL(file) {\n var URL = window.URL || window.webkitURL || window.mozURL;\n return URL.createObjectURL(file);\n}\nexport function getTransform(image, orientation) {\n var width = image.width, height = image.height;\n switch (orientation) {\n case 1:\n // default\n return {\n width: width,\n height: height,\n matrix: [1, 0, 0, 1, 0, 0]\n };\n case 2:\n // horizontal flip\n return {\n width: width,\n height: height,\n matrix: [-1, 0, 0, 1, width, 0]\n };\n case 3:\n // 180° rotated\n return {\n width: width,\n height: height,\n matrix: [-1, 0, 0, -1, width, height]\n };\n case 4:\n // vertical flip\n return {\n width: width,\n height: height,\n matrix: [1, 0, 0, -1, 0, height]\n };\n case 5:\n // vertical flip + -90° rotated\n return {\n width: height,\n height: width,\n matrix: [0, 1, 1, 0, 0, 0]\n };\n case 6:\n // -90° rotated\n return {\n width: height,\n height: width,\n matrix: [0, 1, -1, 0, height, 0]\n };\n case 7:\n // horizontal flip + -90° rotate\n return {\n width: height,\n height: width,\n matrix: [0, -1, -1, 0, height, width]\n };\n case 8:\n // 90° rotated\n return {\n width: height,\n height: width,\n matrix: [0, -1, 1, 0, 0, width]\n };\n default:\n throw new Error(\"orientation \" + orientation + \" is unavailable\");\n }\n}\n//# sourceMappingURL=utils.js.map","import { createXHR } from './utils';\nvar StatisticsLogger = /** @class */ (function () {\n function StatisticsLogger() {\n }\n StatisticsLogger.prototype.log = function (info, token) {\n var logString = Object.values(info).join(',');\n this.send(logString, token, 0);\n };\n StatisticsLogger.prototype.send = function (logString, token, retryCount) {\n var _this = this;\n var xhr = createXHR();\n xhr.open('POST', 'https://uplog.qbox.me/log/3');\n xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n xhr.setRequestHeader('Authorization', 'UpToken ' + token);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && xhr.status !== 200 && ++retryCount <= 3) {\n _this.send(logString, token, retryCount);\n }\n };\n xhr.send(logString);\n };\n return StatisticsLogger;\n}());\nexport default StatisticsLogger;\n//# sourceMappingURL=statisticsLog.js.map","var _a;\n/** 上传区域 */\nexport var region = {\n z0: 'z0',\n z1: 'z1',\n z2: 'z2',\n na0: 'na0',\n as0: 'as0'\n};\n/** 上传区域对应的 host */\nexport var regionUphostMap = (_a = {},\n _a[region.z0] = {\n srcUphost: 'up.qiniup.com',\n cdnUphost: 'upload.qiniup.com'\n },\n _a[region.z1] = {\n srcUphost: 'up-z1.qiniup.com',\n cdnUphost: 'upload-z1.qiniup.com'\n },\n _a[region.z2] = {\n srcUphost: 'up-z2.qiniup.com',\n cdnUphost: 'upload-z2.qiniup.com'\n },\n _a[region.na0] = {\n srcUphost: 'up-na0.qiniup.com',\n cdnUphost: 'upload-na0.qiniup.com'\n },\n _a[region.as0] = {\n srcUphost: 'up-as0.qiniup.com',\n cdnUphost: 'upload-as0.qiniup.com'\n },\n _a);\n//# sourceMappingURL=config.js.map","var Pool = /** @class */ (function () {\n function Pool(runTask, limit) {\n this.runTask = runTask;\n this.limit = limit;\n this.queue = [];\n this.processing = [];\n }\n Pool.prototype.enqueue = function (task) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.queue.push({\n task: task,\n resolve: resolve,\n reject: reject\n });\n _this.check();\n });\n };\n Pool.prototype.run = function (item) {\n var _this = this;\n this.queue = this.queue.filter(function (v) { return v !== item; });\n this.processing.push(item);\n this.runTask(item.task).then(function () {\n _this.processing = _this.processing.filter(function (v) { return v !== item; });\n item.resolve();\n _this.check();\n }, function (err) { return item.reject(err); });\n };\n Pool.prototype.check = function () {\n var _this = this;\n var processingNum = this.processing.length;\n var availableNum = this.limit - processingNum;\n this.queue.slice(0, availableNum).forEach(function (item) {\n _this.run(item);\n });\n };\n return Pool;\n}());\nexport { Pool };\n//# sourceMappingURL=pool.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as utils from './utils';\nimport { regionUphostMap } from './config';\nimport { urlSafeBase64Encode } from './base64';\nexport function getUpHosts(token, protocol) {\n return __awaiter(this, void 0, void 0, function () {\n var putPolicy, url;\n return __generator(this, function (_a) {\n putPolicy = utils.getPutPolicy(token);\n url = protocol + '//api.qiniu.com/v2/query?ak=' + putPolicy.ak + '&bucket=' + putPolicy.bucket;\n return [2 /*return*/, utils.request(url, { method: 'GET' })];\n });\n });\n}\n/** 获取上传url */\nexport function getUploadUrl(config, token) {\n return __awaiter(this, void 0, void 0, function () {\n var protocol, upHosts, host, res, hosts;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n protocol = config.upprotocol;\n if (config.uphost) {\n return [2 /*return*/, protocol + \"//\" + config.uphost];\n }\n if (config.region) {\n upHosts = regionUphostMap[config.region];\n host = config.useCdnDomain ? upHosts.cdnUphost : upHosts.srcUphost;\n return [2 /*return*/, protocol + \"//\" + host];\n }\n return [4 /*yield*/, getUpHosts(token, protocol)];\n case 1:\n res = _a.sent();\n hosts = res.data.up.acc.main;\n return [2 /*return*/, protocol + \"//\" + hosts[0]];\n }\n });\n });\n}\n/**\n * @param bucket 空间名\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n */\nfunction getBaseUrl(bucket, key, uploadInfo) {\n var url = uploadInfo.url, id = uploadInfo.id;\n return url + \"/buckets/\" + bucket + \"/objects/\" + (key != null ? urlSafeBase64Encode(key) : '~') + \"/uploads/\" + id;\n}\n/**\n * @param token 上传鉴权凭证\n * @param bucket 上传空间\n * @param key 目标文件名\n * @param uploadUrl 上传地址\n */\nexport function initUploadParts(token, bucket, key, uploadUrl) {\n var url = uploadUrl + \"/buckets/\" + bucket + \"/objects/\" + (key != null ? urlSafeBase64Encode(key) : '~') + \"/uploads\";\n return utils.request(url, {\n method: 'POST',\n headers: utils.getAuthHeaders(token)\n });\n}\n/**\n * @param token 上传鉴权凭证\n * @param index 当前 chunk 的索引\n * @param uploadInfo 上传信息\n * @param options 请求参数\n */\nexport function uploadChunk(token, key, index, uploadInfo, options) {\n var bucket = utils.getPutPolicy(token).bucket;\n var url = getBaseUrl(bucket, key, uploadInfo) + (\"/\" + index);\n return utils.request(url, __assign(__assign({}, options), { method: 'PUT', headers: utils.getHeadersForChunkUpload(token) }));\n}\n/**\n * @param token 上传鉴权凭证\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n * @param options 请求参数\n */\nexport function uploadComplete(token, key, uploadInfo, options) {\n var bucket = utils.getPutPolicy(token).bucket;\n var url = getBaseUrl(bucket, key, uploadInfo);\n return utils.request(url, __assign(__assign({}, options), { method: 'POST', headers: utils.getHeadersForMkFile(token) }));\n}\n/**\n * @param token 上传鉴权凭证\n * @param key 目标文件名\n * @param uploadInfo 上传信息\n */\nexport function deleteUploadedChunks(token, key, uploadinfo) {\n var bucket = utils.getPutPolicy(token).bucket;\n var url = getBaseUrl(bucket, key, uploadinfo);\n return utils.request(url, {\n method: 'DELETE',\n headers: utils.getAuthHeaders(token)\n });\n}\n//# sourceMappingURL=api.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as utils from '../utils';\nimport { getUploadUrl } from '../api';\nexport var DEFAULT_CHUNK_SIZE = 4; // 单位 MB\nvar GB = Math.pow(1024, 3);\nvar Base = /** @class */ (function () {\n function Base(options, handlers, statisticsLogger) {\n this.statisticsLogger = statisticsLogger;\n this.xhrList = [];\n this.aborted = false;\n this.retryCount = 0;\n this.config = __assign({ useCdnDomain: true, disableStatisticsReport: false, retryCount: 3, checkByMD5: false, uphost: '', upprotocol: 'https:', forceDirect: false, chunkSize: DEFAULT_CHUNK_SIZE, concurrentRequestLimit: 3 }, options.config);\n this.putExtra = __assign({ fname: '' }, options.putExtra);\n this.file = options.file;\n this.key = options.key;\n this.token = options.token;\n this.onData = handlers.onData;\n this.onError = handlers.onError;\n this.onComplete = handlers.onComplete;\n try {\n this.bucket = utils.getPutPolicy(this.token).bucket;\n }\n catch (e) {\n this.onError(e);\n }\n }\n Base.prototype.putFile = function () {\n return __awaiter(this, void 0, void 0, function () {\n var err, err, err, _a, result, err_1, reqId, code, needRetry, notReachRetryCount;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.aborted = false;\n if (!this.putExtra.fname) {\n this.putExtra.fname = this.file.name;\n }\n if (this.file.size > 10000 * GB) {\n err = new Error('file size exceed maximum value 10000G');\n this.onError(err);\n throw err;\n }\n if (this.putExtra.customVars) {\n if (!utils.isCustomVarsValid(this.putExtra.customVars)) {\n err = new Error('customVars key should start width x:');\n this.onError(err);\n throw err;\n }\n }\n if (this.putExtra.metadata) {\n if (!utils.isMetaDataValid(this.putExtra.metadata)) {\n err = new Error('metadata key should start with x-qn-meta-');\n this.onError(err);\n throw err;\n }\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n _a = this;\n return [4 /*yield*/, getUploadUrl(this.config, this.token)];\n case 2:\n _a.uploadUrl = _b.sent();\n this.uploadAt = new Date().getTime();\n return [4 /*yield*/, this.run()];\n case 3:\n result = _b.sent();\n this.onComplete(result.data);\n if (!this.config.disableStatisticsReport) {\n this.sendLog(result.reqId, 200);\n }\n return [2 /*return*/, result];\n case 4:\n err_1 = _b.sent();\n this.clear();\n if (err_1.isRequestError && !this.config.disableStatisticsReport) {\n reqId = this.aborted ? '' : err_1.reqId;\n code = this.aborted ? -2 : err_1.code;\n this.sendLog(reqId, code);\n }\n needRetry = err_1.isRequestError && err_1.code === 0 && !this.aborted;\n notReachRetryCount = ++this.retryCount <= this.config.retryCount;\n // 以下条件满足其中之一则会进行重新上传:\n // 1. 满足 needRetry 的条件且 retryCount 不为 0\n // 2. uploadId 无效时在 resume 里会清除本地数据,并且这里触发重新上传\n if (needRetry && notReachRetryCount || err_1.code === 612) {\n return [2 /*return*/, this.putFile()];\n }\n this.onError(err_1);\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n Base.prototype.clear = function () {\n this.xhrList.forEach(function (xhr) { return xhr.abort(); });\n this.xhrList = [];\n };\n Base.prototype.stop = function () {\n this.clear();\n this.aborted = true;\n };\n Base.prototype.addXhr = function (xhr) {\n this.xhrList.push(xhr);\n };\n Base.prototype.sendLog = function (reqId, code) {\n this.statisticsLogger.log({\n code: code,\n reqId: reqId,\n host: utils.getDomainFromUrl(this.uploadUrl),\n remoteIp: '',\n port: utils.getPortFromUrl(this.uploadUrl),\n duration: (new Date().getTime() - this.uploadAt) / 1000,\n time: Math.floor(this.uploadAt / 1000),\n bytesSent: this.progress ? this.progress.total.loaded : 0,\n upType: 'jssdk-h5',\n size: this.file.size\n }, this.token);\n };\n Base.prototype.getProgressInfoItem = function (loaded, size) {\n return {\n loaded: loaded,\n size: size,\n percent: loaded / size * 100\n };\n };\n return Base;\n}());\nexport default Base;\n//# sourceMappingURL=base.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as utils from '../utils';\nimport { Pool } from '../pool';\nimport { uploadChunk, uploadComplete, initUploadParts } from '../api';\nimport Base from './base';\n/** 是否为正整数 */\nfunction isPositiveInteger(n) {\n var re = /^[1-9]\\d*$/;\n return re.test(String(n));\n}\nvar Resume = /** @class */ (function (_super) {\n __extends(Resume, _super);\n function Resume() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Resume.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var pool, uploadChunks, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.config.chunkSize || !isPositiveInteger(this.config.chunkSize)) {\n throw new Error('chunkSize must be a positive integer');\n }\n if (this.config.chunkSize > 1024) {\n throw new Error('chunkSize maximum value is 1024');\n }\n return [4 /*yield*/, this.initBeforeUploadChunks()];\n case 1:\n _a.sent();\n pool = new Pool(function (chunkInfo) { return _this.uploadChunk(chunkInfo); }, this.config.concurrentRequestLimit);\n uploadChunks = this.chunks.map(function (chunk, index) { return pool.enqueue({ chunk: chunk, index: index }); });\n result = Promise.all(uploadChunks).then(function () { return _this.mkFileReq(); });\n result.then(function () {\n utils.removeLocalFileInfo(_this.getLocalKey());\n }, function (err) {\n // uploadId 无效,上传参数有误(多由于本地存储信息的 uploadId 失效\n if (err.code === 612 || err.code === 400) {\n utils.removeLocalFileInfo(_this.getLocalKey());\n }\n });\n return [2 /*return*/, result];\n }\n });\n });\n };\n Resume.prototype.uploadChunk = function (chunkInfo) {\n return __awaiter(this, void 0, void 0, function () {\n var index, chunk, info, shouldCheckMD5, reuseSaved, md5, onProgress, requestOptions, response;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n index = chunkInfo.index, chunk = chunkInfo.chunk;\n info = this.uploadedList[index];\n shouldCheckMD5 = this.config.checkByMD5;\n reuseSaved = function () {\n _this.updateChunkProgress(chunk.size, index);\n };\n if (info && !shouldCheckMD5) {\n reuseSaved();\n return [2 /*return*/];\n }\n return [4 /*yield*/, utils.computeMd5(chunk)];\n case 1:\n md5 = _a.sent();\n if (info && md5 === info.md5) {\n reuseSaved();\n return [2 /*return*/];\n }\n onProgress = function (data) {\n _this.updateChunkProgress(data.loaded, index);\n };\n requestOptions = {\n body: chunk,\n onProgress: onProgress,\n onCreate: function (xhr) { return _this.addXhr(xhr); }\n };\n return [4 /*yield*/, uploadChunk(this.token, this.key, chunkInfo.index + 1, this.getUploadInfo(), requestOptions)\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里在每次分片上传完成后都手动更新下 progress\n ];\n case 2:\n response = _a.sent();\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里在每次分片上传完成后都手动更新下 progress\n onProgress({\n loaded: chunk.size,\n total: chunk.size\n });\n this.uploadedList[index] = {\n etag: response.data.etag,\n md5: response.data.md5,\n size: chunk.size\n };\n utils.setLocalFileInfo(this.getLocalKey(), {\n id: this.uploadId,\n data: this.uploadedList\n });\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.mkFileReq = function () {\n return __awaiter(this, void 0, void 0, function () {\n var data, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n data = __assign(__assign(__assign({ parts: this.uploadedList.map(function (value, index) { return ({\n etag: value.etag,\n partNumber: index + 1\n }); }), fname: this.putExtra.fname }, this.putExtra.mimeType && { mimeType: this.putExtra.mimeType }), this.putExtra.customVars && { customVars: this.putExtra.customVars }), this.putExtra.metadata && { metadata: this.putExtra.metadata });\n return [4 /*yield*/, uploadComplete(this.token, this.key, this.getUploadInfo(), {\n onCreate: function (xhr) { return _this.addXhr(xhr); },\n body: JSON.stringify(data)\n })];\n case 1:\n result = _a.sent();\n this.updateMkFileProgress(1);\n return [2 /*return*/, result];\n }\n });\n });\n };\n Resume.prototype.initBeforeUploadChunks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var localInfo, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n localInfo = utils.getLocalFileInfo(this.getLocalKey());\n if (!!localInfo) return [3 /*break*/, 2];\n // 防止本地信息已被破坏,初始化时 clear 一下\n utils.removeLocalFileInfo(this.getLocalKey());\n return [4 /*yield*/, initUploadParts(this.token, this.bucket, this.key, this.uploadUrl)];\n case 1:\n res = _a.sent();\n this.uploadId = res.data.uploadId;\n this.uploadedList = [];\n return [3 /*break*/, 3];\n case 2:\n this.uploadId = localInfo.id;\n this.uploadedList = localInfo.data;\n _a.label = 3;\n case 3:\n this.chunks = utils.getChunks(this.file, this.config.chunkSize);\n this.loaded = {\n mkFileProgress: 0,\n chunks: this.chunks.map(function (_) { return 0; })\n };\n this.notifyResumeProgress();\n return [2 /*return*/];\n }\n });\n });\n };\n Resume.prototype.getUploadInfo = function () {\n return {\n id: this.uploadId,\n url: this.uploadUrl\n };\n };\n Resume.prototype.getLocalKey = function () {\n return utils.createLocalKey(this.file.name, this.key, this.file.size);\n };\n Resume.prototype.updateChunkProgress = function (loaded, index) {\n this.loaded.chunks[index] = loaded;\n this.notifyResumeProgress();\n };\n Resume.prototype.updateMkFileProgress = function (progress) {\n this.loaded.mkFileProgress = progress;\n this.notifyResumeProgress();\n };\n Resume.prototype.notifyResumeProgress = function () {\n var _this = this;\n this.progress = {\n total: this.getProgressInfoItem(utils.sum(this.loaded.chunks) + this.loaded.mkFileProgress, this.file.size + 1 // 防止在 complete 未调用的时候进度显示 100%\n ),\n chunks: this.chunks.map(function (chunk, index) { return (_this.getProgressInfoItem(_this.loaded.chunks[index], chunk.size)); }),\n uploadInfo: {\n id: this.uploadId,\n url: this.uploadUrl\n }\n };\n this.onData(this.progress);\n };\n return Resume;\n}(Base));\nexport default Resume;\n//# sourceMappingURL=resume.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { request } from '../utils';\nimport Base from './base';\nvar Direct = /** @class */ (function (_super) {\n __extends(Direct, _super);\n function Direct() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Direct.prototype.run = function () {\n return __awaiter(this, void 0, void 0, function () {\n var formData, customVars_1, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n formData = new FormData();\n formData.append('file', this.file);\n formData.append('token', this.token);\n if (this.key != null) {\n formData.append('key', this.key);\n }\n formData.append('fname', this.putExtra.fname);\n if (this.putExtra.customVars) {\n customVars_1 = this.putExtra.customVars;\n Object.keys(customVars_1).forEach(function (key) { return formData.append(key, customVars_1[key].toString()); });\n }\n return [4 /*yield*/, request(this.uploadUrl, {\n method: 'POST',\n body: formData,\n onProgress: function (data) {\n _this.updateDirectProgress(data.loaded, data.total);\n },\n onCreate: function (xhr) { return _this.addXhr(xhr); }\n })];\n case 1:\n result = _a.sent();\n this.finishDirectProgress();\n return [2 /*return*/, result];\n }\n });\n });\n };\n Direct.prototype.updateDirectProgress = function (loaded, total) {\n // 当请求未完成时可能进度会达到100,所以total + 1来防止这种情况出现\n this.progress = { total: this.getProgressInfoItem(loaded, total + 1) };\n this.onData(this.progress);\n };\n Direct.prototype.finishDirectProgress = function () {\n // 在某些浏览器环境下,xhr 的 progress 事件无法被触发,progress 为 null,这里 fake 下\n if (!this.progress) {\n this.progress = { total: this.getProgressInfoItem(this.file.size, this.file.size) };\n this.onData(this.progress);\n return;\n }\n var total = this.progress.total;\n this.progress = { total: this.getProgressInfoItem(total.loaded + 1, total.size) };\n this.onData(this.progress);\n };\n return Direct;\n}(Base));\nexport default Direct;\n//# sourceMappingURL=direct.js.map","import Resume from './resume';\nimport Direct from './direct';\nimport { MB } from '../utils';\nexport * from './base';\nexport * from './resume';\nexport default function createUploadManager(options, handlers, statisticsLogger) {\n if (options.config && options.config.forceDirect) {\n return new Direct(options, handlers, statisticsLogger);\n }\n return options.file.size > 4 * MB\n ? new Resume(options, handlers, statisticsLogger)\n : new Direct(options, handlers, statisticsLogger);\n}\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/** 表示可清理的资源,比如 Observable 的执行 */\nvar Subscription = /** @class */ (function () {\n function Subscription() {\n /** 用来标示该 Subscription 是否被取消订阅的标示位 */\n this.closed = false;\n }\n /** 取消 observer 的订阅 */\n Subscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n if (this._unsubscribe) {\n this._unsubscribe();\n }\n };\n /** 添加一个 tear down 在该 Subscription 的 unsubscribe() 期间调用 */\n Subscription.prototype.add = function (teardown) {\n this._unsubscribe = teardown;\n };\n return Subscription;\n}());\n/**\n * 实现 Observer 接口并且继承 Subscription 类,Observer 是消费 Observable 值的公有 API\n * 所有 Observers 都转化成了 Subscriber,以便提供类似 Subscription 的能力,比如 unsubscribe\n*/\nvar Subscriber = /** @class */ (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (observerOrNext && typeof observerOrNext === 'object') {\n _this.destination = observerOrNext;\n }\n else {\n _this.destination = __assign(__assign(__assign({}, observerOrNext && { next: observerOrNext }), error && { error: error }), complete && { complete: complete });\n }\n return _this;\n }\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped && this.destination.next) {\n this.destination.next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped && this.destination.error) {\n this.isStopped = true;\n this.destination.error(err);\n }\n };\n Subscriber.prototype.complete = function (result) {\n if (!this.isStopped && this.destination.complete) {\n this.isStopped = true;\n this.destination.complete(result);\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\n/** 可观察对象,当前的上传事件的集合 */\nvar Observable = /** @class */ (function () {\n function Observable(_subscribe) {\n this._subscribe = _subscribe;\n }\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var sink = new Subscriber(observerOrNext, error, complete);\n sink.add(this._subscribe(sink));\n return sink;\n };\n return Observable;\n}());\nexport { Observable };\n//# sourceMappingURL=observable.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { EXIF } from 'exif-js';\nimport { createObjectURL, getTransform } from './utils';\nvar mimeTypes = {\n PNG: 'image/png',\n JPEG: 'image/jpeg',\n WEBP: 'image/webp',\n BMP: 'image/bmp'\n};\nvar maxSteps = 4;\nvar scaleFactor = Math.log(2);\nvar supportMimeTypes = Object.keys(mimeTypes).map(function (type) { return mimeTypes[type]; });\nvar defaultType = mimeTypes.JPEG;\nfunction isSupportedType(type) {\n return supportMimeTypes.includes(type);\n}\nvar Compress = /** @class */ (function () {\n function Compress(file, config) {\n this.file = file;\n this.config = config;\n this.config = __assign({ quality: 0.92, noCompressIfLarger: false }, this.config);\n }\n Compress.prototype.process = function () {\n return __awaiter(this, void 0, void 0, function () {\n var srcDimension, originImage, canvas, scale, scaleCanvas, distBlob;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.outputType = this.file.type;\n srcDimension = {};\n if (!isSupportedType(this.file.type)) {\n throw new Error(\"unsupported file type: \" + this.file.type);\n }\n return [4 /*yield*/, this.getOriginImage()];\n case 1:\n originImage = _a.sent();\n return [4 /*yield*/, this.getCanvas(originImage)];\n case 2:\n canvas = _a.sent();\n scale = 1;\n if (this.config.maxWidth) {\n scale = Math.min(1, this.config.maxWidth / canvas.width);\n }\n if (this.config.maxHeight) {\n scale = Math.min(1, scale, this.config.maxHeight / canvas.height);\n }\n srcDimension.width = canvas.width;\n srcDimension.height = canvas.height;\n return [4 /*yield*/, this.doScale(canvas, scale)];\n case 3:\n scaleCanvas = _a.sent();\n distBlob = this.toBlob(scaleCanvas);\n if (distBlob.size > this.file.size && this.config.noCompressIfLarger) {\n return [2 /*return*/, {\n dist: this.file,\n width: srcDimension.width,\n height: srcDimension.height\n }];\n }\n return [2 /*return*/, {\n dist: distBlob,\n width: scaleCanvas.width,\n height: scaleCanvas.height\n }];\n }\n });\n });\n };\n Compress.prototype.clear = function (ctx, width, height) {\n // jpeg 没有 alpha 通道,透明区间会被填充成黑色,这里把透明区间填充为白色\n if (this.outputType === defaultType) {\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, width, height);\n }\n else {\n ctx.clearRect(0, 0, width, height);\n }\n };\n /** 通过 file 初始化 image 对象 */\n Compress.prototype.getOriginImage = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var url = createObjectURL(_this.file);\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject('image load error');\n };\n img.src = url;\n });\n };\n Compress.prototype.getCanvas = function (img) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // 通过得到图片的信息来调整显示方向以正确显示图片,主要解决 ios 系统上的图片会有旋转的问题\n EXIF.getData(img, function () {\n var orientation = EXIF.getTag(img, 'Orientation') || 1;\n var _a = getTransform(img, orientation), width = _a.width, height = _a.height, matrix = _a.matrix;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n if (!context) {\n reject(new Error('context is null'));\n return;\n }\n _this.clear(context, width, height);\n context.transform.apply(context, __spread(matrix));\n context.drawImage(img, 0, 0);\n resolve(canvas);\n });\n });\n };\n Compress.prototype.doScale = function (source, scale) {\n return __awaiter(this, void 0, void 0, function () {\n var sctx, steps, factor, mirror, mctx, width, height, originWidth, originHeight, src, context, i, dw, dh, canvas, data;\n return __generator(this, function (_a) {\n if (scale === 1) {\n return [2 /*return*/, source];\n }\n sctx = source.getContext('2d');\n steps = Math.min(maxSteps, Math.ceil((1 / scale) / scaleFactor));\n factor = Math.pow(scale, (1 / steps));\n mirror = document.createElement('canvas');\n mctx = mirror.getContext('2d');\n width = source.width, height = source.height;\n originWidth = width;\n originHeight = height;\n mirror.width = width;\n mirror.height = height;\n if (!mctx || !sctx) {\n throw new Error(\"mctx or sctx can't be null\");\n }\n for (i = 0; i < steps; i++) {\n dw = width * factor | 0 // eslint-disable-line no-bitwise\n ;\n dh = height * factor | 0 // eslint-disable-line no-bitwise\n ;\n // 到最后一步的时候 dw, dh 用目标缩放尺寸,否则会出现最后尺寸偏小的情况\n if (i === steps - 1) {\n dw = originWidth * scale;\n dh = originHeight * scale;\n }\n if (i % 2 === 0) {\n src = source;\n context = mctx;\n }\n else {\n src = mirror;\n context = sctx;\n }\n // 每次画前都清空,避免图像重叠\n this.clear(context, width, height);\n context.drawImage(src, 0, 0, width, height, 0, 0, dw, dh);\n width = dw;\n height = dh;\n }\n canvas = src === source ? mirror : source;\n data = context.getImageData(0, 0, width, height);\n // resize\n canvas.width = width;\n canvas.height = height;\n // store image data\n context.putImageData(data, 0, 0);\n return [2 /*return*/, canvas];\n });\n });\n };\n /** 这里把 base64 字符串转为 blob 对象 */\n Compress.prototype.toBlob = function (result) {\n var dataURL = result.toDataURL(this.outputType, this.config.quality);\n var buffer = atob(dataURL.split(',')[1]).split('').map(function (char) { return char.charCodeAt(0); });\n var blob = new Blob([new Uint8Array(buffer)], { type: this.outputType });\n return blob;\n };\n return Compress;\n}());\nvar compressImage = function (file, options) { return new Compress(file, options).process(); };\nexport default compressImage;\n//# sourceMappingURL=compress.js.map","import { request } from './utils';\nimport { urlSafeBase64Encode } from './base64';\nfunction getImageUrl(key, domain) {\n key = encodeURIComponent(key);\n if (domain.slice(domain.length - 1) !== '/') {\n domain += '/';\n }\n return domain + key;\n}\nexport function imageView2(op, key, domain) {\n if (!/^\\d$/.test(String(op.mode))) {\n throw 'mode should be number in imageView2';\n }\n var mode = op.mode, w = op.w, h = op.h, q = op.q, format = op.format;\n if (!w && !h) {\n throw 'param w and h is empty in imageView2';\n }\n var imageUrl = 'imageView2/' + encodeURIComponent(mode);\n imageUrl += w ? '/w/' + encodeURIComponent(w) : '';\n imageUrl += h ? '/h/' + encodeURIComponent(h) : '';\n imageUrl += q ? '/q/' + encodeURIComponent(q) : '';\n imageUrl += format ? '/format/' + encodeURIComponent(format) : '';\n if (key && domain) {\n imageUrl = getImageUrl(key, domain) + '?' + imageUrl;\n }\n return imageUrl;\n}\n// invoke the imageMogr2 api of Qiniu\nexport function imageMogr2(op, key, domain) {\n var autoOrient = op['auto-orient'];\n var thumbnail = op.thumbnail, strip = op.strip, gravity = op.gravity, crop = op.crop, quality = op.quality, rotate = op.rotate, format = op.format, blur = op.blur;\n var imageUrl = 'imageMogr2';\n imageUrl += autoOrient ? '/auto-orient' : '';\n imageUrl += thumbnail ? '/thumbnail/' + encodeURIComponent(thumbnail) : '';\n imageUrl += strip ? '/strip' : '';\n imageUrl += gravity ? '/gravity/' + encodeURIComponent(gravity) : '';\n imageUrl += quality ? '/quality/' + encodeURIComponent(quality) : '';\n imageUrl += crop ? '/crop/' + encodeURIComponent(crop) : '';\n imageUrl += rotate ? '/rotate/' + encodeURIComponent(rotate) : '';\n imageUrl += format ? '/format/' + encodeURIComponent(format) : '';\n imageUrl += blur ? '/blur/' + encodeURIComponent(blur) : '';\n if (key && domain) {\n imageUrl = getImageUrl(key, domain) + '?' + imageUrl;\n }\n return imageUrl;\n}\n// invoke the watermark api of Qiniu\nexport function watermark(op, key, domain) {\n var mode = op.mode;\n if (!mode) {\n throw \"mode can't be empty in watermark\";\n }\n var imageUrl = 'watermark/' + mode;\n if (mode !== 1 && mode !== 2) {\n throw 'mode is wrong';\n }\n if (mode === 1) {\n var image = op.image;\n if (!image) {\n throw \"image can't be empty in watermark\";\n }\n imageUrl += image ? '/image/' + urlSafeBase64Encode(image) : '';\n }\n if (mode === 2) {\n var text = op.text, font = op.font, fontsize = op.fontsize, fill = op.fill;\n if (!text) {\n throw \"text can't be empty in watermark\";\n }\n imageUrl += text ? '/text/' + urlSafeBase64Encode(text) : '';\n imageUrl += font ? '/font/' + urlSafeBase64Encode(font) : '';\n imageUrl += fontsize ? '/fontsize/' + fontsize : '';\n imageUrl += fill ? '/fill/' + urlSafeBase64Encode(fill) : '';\n }\n var dissolve = op.dissolve, gravity = op.gravity, dx = op.dx, dy = op.dy;\n imageUrl += dissolve ? '/dissolve/' + encodeURIComponent(dissolve) : '';\n imageUrl += gravity ? '/gravity/' + encodeURIComponent(gravity) : '';\n imageUrl += dx ? '/dx/' + encodeURIComponent(dx) : '';\n imageUrl += dy ? '/dy/' + encodeURIComponent(dy) : '';\n if (key && domain) {\n imageUrl = getImageUrl(key, domain) + '?' + imageUrl;\n }\n return imageUrl;\n}\n// invoke the imageInfo api of Qiniu\nexport function imageInfo(key, domain) {\n var url = getImageUrl(key, domain) + '?imageInfo';\n return request(url, { method: 'GET' });\n}\n// invoke the exif api of Qiniu\nexport function exif(key, domain) {\n var url = getImageUrl(key, domain) + '?exif';\n return request(url, { method: 'GET' });\n}\nexport function pipeline(arr, key, domain) {\n var isArray = Object.prototype.toString.call(arr) === '[object Array]';\n var option;\n var errOp = false;\n var imageUrl = '';\n if (isArray) {\n for (var i = 0, len = arr.length; i < len; i++) {\n option = arr[i];\n if (!option.fop) {\n throw \"fop can't be empty in pipeline\";\n }\n switch (option.fop) {\n case 'watermark':\n imageUrl += watermark(option) + '|';\n break;\n case 'imageView2':\n imageUrl += imageView2(option) + '|';\n break;\n case 'imageMogr2':\n imageUrl += imageMogr2(option) + '|';\n break;\n default:\n errOp = true;\n break;\n }\n if (errOp) {\n throw 'fop is wrong in pipeline';\n }\n }\n if (key && domain) {\n imageUrl = getImageUrl(key, domain) + '?' + imageUrl;\n var length_1 = imageUrl.length;\n if (imageUrl.slice(length_1 - 1) === '|') {\n imageUrl = imageUrl.slice(0, length_1 - 1);\n }\n }\n return imageUrl;\n }\n throw \"pipeline's first param should be array\";\n}\n//# sourceMappingURL=image.js.map","import StatisticsLogger from './statisticsLog';\nimport createUploadManager from './upload';\nimport { Observable } from './observable';\nimport compressImage from './compress';\nvar statisticsLogger = new StatisticsLogger();\n/**\n * @param file 上传文件\n * @param key 目标文件名\n * @param token 上传凭证\n * @param putExtra 上传文件的相关资源信息配置\n * @param config 上传任务的配置\n * @returns 返回用于上传任务的可观察对象\n */\nfunction upload(file, key, token, putExtra, config) {\n var options = {\n file: file,\n key: key,\n token: token,\n putExtra: putExtra,\n config: config\n };\n return new Observable(function (observer) {\n var manager = createUploadManager(options, {\n onData: function (data) { return observer.next(data); },\n onError: function (err) { return observer.error(err); },\n onComplete: function (res) { return observer.complete(res); }\n }, statisticsLogger);\n manager.putFile();\n return manager.stop.bind(manager);\n });\n}\nexport { getHeadersForMkFile, getHeadersForChunkUpload } from './utils';\nexport { urlSafeBase64Encode, urlSafeBase64Decode } from './base64';\nexport { deleteUploadedChunks, getUploadUrl } from './api';\nexport { imageMogr2, watermark, imageInfo, exif, pipeline } from './image';\nexport { region } from './config';\nexport { upload, compressImage };\n//# sourceMappingURL=index.js.map"],"sourceRoot":""}