{"version":3,"sources":["webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/advance.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/utils.js","webpack:///./node_modules/vod-js-sdk-v6/lib/src/tc_vod.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/async.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/event.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/axios.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/defaults.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/is-buffer/index.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/base.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/lib/request.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/vod-js-sdk-v6/lib/src/vod_reporter.js","webpack:///./node_modules/js-sha1/src/sha1.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/lib/md5.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/bind.js","webpack:///./static/css/publish.css?1f86","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/index.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/lib/crypto.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/index.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/vod-js-sdk-v6/lib/src/uploader.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/session.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/lib/xml2json.js","webpack:///./node_modules/uuid/v4.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/cos.js","webpack:///./node_modules/vod-js-sdk-v6/lib/src/util.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/util.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/src/task.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/cos-js-sdk-v5/lib/json2xml.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/vod-js-sdk-v6/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./src/views/publishCenter/publishVideo.vue?c23a","webpack:///src/views/publishCenter/publishVideo.vue","webpack:///./src/views/publishCenter/publishVideo.vue?fc41","webpack:///./src/views/publishCenter/publishVideo.vue","webpack:///./node_modules/events/events.js"],"names":["session","__webpack_require__","Async","EventProxy","util","sliceUploadFile","params","callback","FileSize","onProgress","self","this","ep","TaskId","Bucket","Region","Key","Body","ChunkSize","SliceSize","options","AsyncLimit","StorageClass","ServerSideEncryption","onHashProgress","on","err","_isRunningTask","UploadCompleteData","UploadData","uploadSliceComplete","call","UploadId","SliceList","data","removeUsing","emit","removeUploadId","loaded","total","uuid","getFileId","saveUploadId","UploadIdCacheLimit","setUsing","uploadSliceList","throttleOnProgress","_params","extend","Headers","getUploadIdAndPartList","PartList","ContentLength","each","item","key","toLowerCase","SIZE","AutoChunkSize","i","length","MaxPartNumber","Math","max","SkipTask","putObject","ETagMap","SliceCount","ceil","FinishSize","getChunkETag","PartNumber","start","end","min","ETag","Size","fileSlice","chunkItem","getFileMd5","md5","isAvailableUploadList","PartCount","PartSliceSize","next","index","Part","chunk","errData","map","list","Uploaded","push","clone","ContentType","type","multipartInit","Message","UploadIdList","reverse","eachLimit","asyncCallback","using","wholeMultipartListPart","PartListData","forEach","isAvailable","AvailableUploadData","RemoteUploadIdList","LocalUploadIdList","getUploadIdList","isInArray","wholeMultipartList","filter","UploadList","toUpperCase","UploadID","sendParams","Prefix","multipartList","apply","Upload","IsTruncated","KeyMarker","NextKeyMarker","UploadIdMarker","NextUploadIdMarker","multipartListPart","PartNumberMarker","NextPartNumberMarker","cb","ChunkParallel","ChunkParallelLimit","needUploadSlices","SliceItem","currentSize","preAddSize","uploadSliceItem","isBrowser","FileBody","ChunkRetryTimes","PartItem","retry","tryCallback","multipartUpload","Parts","multipartComplete","abortUploadTask","Level","AbortArray","abortUploadTaskArray","error","resultList","Array","AbortItem","eachIndex","KeyNotMatch","multipartAbort","task","successList","errorList","len","uploadFiles","undefined","TotalSize","TotalFinish","onTotalProgress","unFinishCount","files","_onTotalFileFinish","onFileFinish","onTotalFileFinish","Index","taskList","fileParams","size","fileInfo","v","k","_onTaskReady","onTaskReady","tid","PreAddSize","_onProgress","info","_onFileFinish","api","_addTasks","sliceCopyFile","CopySource","m","match","SourceBucket","SourceRegion","SourceKey","decodeURIComponent","CopySliceSize","CopyChunkSize","CopyChunkParallelLimit","CopySourceRange","copySliceItem","SourceHeaders","TargetHeader","ChunkCount","partNumber","clearKey","restoreHeader","headObject","statusCode","ErrorStatus","headers","putObjectCopy","resHeaders","Cache-Control","Content-Disposition","Content-Encoding","Content-Type","Expires","x-cos-storage-class","metaPrefix","indexOf","uploadPartCopy","API_MAP","module","exports","init","COS","transferToTaskMethod","fn","apiName","prototype","apiWrapper","Cancel","message","toString","__CANCEL__","bind","isBuffer","Object","isArray","val","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isObject","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","obj","l","hasOwnProperty","merge","assignValue","arguments","a","b","thisArg","__assign","assign","t","s","n","p","defineProperty","value","uploader_1","vod_reporter_1","TcVod","allowReport","enableResume","getSignature","appId","reportId","upload","uploaderParams","uploader","default","initReporter","VodReporter","createError","resolve","reject","response","validateStatus","config","status","request","arr","limit","iterator","completed","started","running","replenish","times","async","initEvent","cos","listeners","getList","action","console","warn","off","splice","utils","Axios","defaults","createInstance","defaultConfig","context","instance","axios","create","instanceConfig","CancelToken","isCancel","all","promises","Promise","spread","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","adapter","XMLHttpRequest","transformRequest","JSON","stringify","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","common","Accept","method","byteToHex","substr","bytesToUuid","buf","offset","bth","join","enhanceError","code","Error","write","name","expires","path","domain","secure","cookie","encodeURIComponent","Date","toGMTString","read","RegExp","remove","now","normalizedName","executor","TypeError","resolvePromise","promise","token","reason","throwIfRequested","source","cancel","c","constructor","REQUEST","getService","protocol","Protocol","location","ServiceDomain","region","test","slice","submitRequest","Action","url","buckets","ListAllMyBucketsResult","Buckets","owner","Owner","putBucket","getUrl","Domain","bucket","isLocation","Location","headBucket","getBucket","reqParams","ResourceKey","qs","ListBucketResult","Contents","CommonPrefixes","deleteBucket","putBucketAcl","xml","AccessControlPolicy","Grants","Grant","AccessControlList","json2xml","binaryBase64","uniqGrant","body","getBucketAcl","decodeAcl","ACL","putBucketCors","CORSConfiguration","CORSRules","rule","sKey","CORSRule","getBucketCors","Code","j","deleteBucketCors","getBucketLocation","putBucketPolicy","Policy","PolicyStr","json","getBucketPolicy","rawBody","deleteBucketPolicy","putBucketTagging","Tagging","Tags","TagSet","Tag","getBucketTagging","deleteBucketTagging","putBucketLifecycle","LifecycleConfiguration","Rules","Rule","getBucketLifecycle","deleteBucketLifecycle","putBucketVersioning","VersioningConfiguration","getBucketVersioning","putBucketReplication","ReplicationConfiguration","getBucketReplication","deleteBucketReplication","putBucketWebsite","WebsiteConfiguration","RoutingRules","RoutingRule","getBucketWebsite","makeArray","deleteBucketWebsite","VersionId","NotModified","etag","listObjectVersions","ListVersionsResult","DeleteMarkers","DeleteMarker","Versions","Version","getObject","needCalcMd5","UploadAddMetaMd5","UploadCheckContentMd5","getBodyMd5","ForcePathStyle","object","deleteObject","BucketNotFound","getObjectAcl","putObjectAcl","optionsObject","OptionsForbidden","AccessControlAllowOrigin","AccessControlAllowMethods","AccessControlAllowHeaders","AccessControlExposeHeaders","AccessControlMaxAge","Scope","prefix","CopyObjectResult","uploadId","CopyPartResult","deleteMultipleObject","Objects","Quiet","Delete","DeleteResult","Deleted","Errors","restoreObject","RestoreRequest","InitiateMultipartUploadResult","getFileSize","CompleteMultipartUpload","CompleteMultipartUploadResult","ListMultipartUploadsResult","ListPartsResult","getAuth","SecretId","SecretKey","Method","Query","UseRawKey","SystemClockOffset","getObjectUrl","Sign","Url","AuthData","getAuthorizationAsync","signUrl","Authorization","XCosSecurityToken","ClientIP","ClientUA","Token","setTimeout","GrantFullControl","GrantWrite","GrantRead","GrantReadAcp","GrantWriteAcp","GrantMap","FULL_CONTROL","WRITE","READ","READ_ACP","WRITE_ACP","PublicAcl","Grantee","ID","URI","Permission","split","exist","longBucket","shortBucket","lastIndexOf","camSafeUrlEncode","formatAllow","auth","atob","KeyName","Pathname","StsData","ScopeKey","_StsCache","compareTime","round","getSkewTime","StartTime","ExpiredTime","ScopeLimit","calcAuthByTmpKey","KeyTime","TmpSecretId","TmpSecretKey","getAuthorization","getSTS","allowRetry","isTimeError","serverDate","date","ServerTime","errorCode","errorMessage","serverTime","CorrectClockSkew","abs","versionId","tryTimes","oldClockOffset","_submitRequest","opt","contentLength","Timeout","sender","hasReturned","killTask","attrs","jsonRes","xml2json","statusSuccess","floor","abort","warnOldApi","proto","suffix","oldName","apiFn","warned","encode","paramsSerializer","serializedParams","parts","toISOString","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","requestURL","parsed","$","deletedIds","concat","class2type","hasOwn","support","version","jQuery","selector","rtrim","rmsPrefix","rdashAlpha","fcamelCase","letter","isArraylike","isWindow","nodeType","jquery","toArray","get","num","pushStack","elems","ret","prevObject","args","elem","first","eq","last","sort","src","copyIsArray","copy","target","deep","isPlainObject","expando","random","isReady","msg","noop","isNumeric","parseFloat","isEmptyObject","ownLast","globalEval","execScript","camelCase","string","nodeName","text","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","rootjQuery","rquickExpr","exec","find","parseHTML","ownerDocument","rsingleTag","attr","getElementById","parentNode","id","ready","readyList","rnotwhite","optionsCache","createOptions","_","flag","detach","addEventListener","removeEventListener","detachEvent","event","readyState","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","fire","stopOnFalse","shift","disable","add","unique","has","empty","disabled","lock","locked","fireWith","Deferred","func","tuples","state","always","deferred","done","fail","then","fns","newDefer","tuple","returned","progress","notify","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","contexts","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","attachEvent","top","frameElement","documentElement","doScroll","doScrollCheck","strundefined","inlineBlockNeedsLayout","div","container","getElementsByTagName","style","cssText","appendChild","zoom","offsetWidth","removeChild","deleteExpando","acceptData","noData","getAttribute","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","cache","pop","toJSON","internalRemoveData","cleanData","applet ","embed ","object ","hasData","removeData","_data","_removeData","attributes","queue","dequeue","startLength","hooks","_queueHooks","unshift","stop","setter","clearQueue","count","defer","elements","global","types","handler","events","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","rtypenamespace","delegateType","bindType","needsContext","expr","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","cur","bubbleType","eventPath","rfocusMorph","Event","isTrigger","namespace_re","noBubble","defaultView","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","matched","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","button","prop","originalEvent","fixHook","fixHooks","rmouseEvent","mouseHooks","rkeyEvent","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","doc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","focus","safeActiveElement","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","returnTrue","returnFalse","timeStamp","rformElems","cancelBubble","stopImmediatePropagation","submitBubbles","submit","form","_submit_bubble","changeBubbles","change","propertyName","_just_changed","focusinBubbles","orig","attaches","one","origFn","delay","time","fx","speeds","clearTimeout","nonce","rquery","rvalidtokens","requireNonComma","depth","comma","open","close","Function","parseXML","DOMParser","parseFromString","ActiveXObject","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","firstDataType","ct","finalDataType","contents","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","prev","responseFields","dataFilter","active","lastModified","isLocal","processData","contentType","accepts","*","html","* text","String","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","statusText","finalText","complete","success","crossDomain","param","traditional","hasContent","ifModified","beforeSend","send","nativeStatusText","modified","rejectWith","getJSON","getScript","_evalUrl","throws","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","serialize","serializeArray","is","checked","rcheckableType","xhr","createStandardXHR","createActiveXHR","xhrId","xhrCallbacks","xhrSupported","cors","username","password","xhrFields","onprogress","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","insertBefore","firstChild","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","scripts","buildFragment","childNodes","stringifyPrimitive","isFinite","queryStringify","sep","keys","ks","Boolean","qsStr","Blob","getResponse","statusMessage","VodReportEvent","ReqType","pkg","util_1","baseReportData","platform","device","reportUrl","report_apply","onApply","report_cos_upload","onCosUpload","report_commit","onCommit","report_done","onDone","reportObj","videoFile","fileSize","fileName","fileType","vodSessionKey","reqKey","customReportData","reqType","errCode","vodErrCode","errMsg","reqTimeCost","Number","requestStartTime","reqTime","cosRegion","storageRegionV5","report","isTest","cos_upload","cosErrCode","commit","fileId","reportData","isDev","log","vodAxios","post","__WEBPACK_AMD_DEFINE_RESULT__","root","NODE_JS","JS_SHA1_NO_NODE_JS","versions","node","COMMON_JS","JS_SHA1_NO_COMMON_JS","AMD","HEX_CHARS","EXTRA","SHIFT","OUTPUT_TYPES","blocks","createOutputMethod","outputType","Sha1","update","createMethod","nodeWrap","crypto","eval","Buffer","nodeMethod","createHash","digest","Uint8Array","sharedMemory","h0","h1","h2","h3","h4","block","bytes","hBytes","finalized","hashed","notString","charCodeAt","lastByteIndex","finalize","f","d","hex","array","arrayBuffer","dataView","DataView","setUint32","sha1","md5cycle","x","ff","gg","hh","ii","add32","cmn","q","md5blk","md5blks","hex_chr","rhex","getCtx","ctx","tail","isBinStr","unescape","substring","y","lsw","msw","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_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_publish_css_vue_type_style_index_0_id_7cbd8a78_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_css_loader_index_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_publish_css_vue_type_style_index_0_id_7cbd8a78_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","cancelToken","baseURL","CryptoJS","g","lib","Base","mixIn","$super","WordArray","words","sigBytes","clamp","enc","Hex","parseInt","Latin1","fromCharCode","h","Utf8","escape","r","BufferedBlockAlgorithm","reset","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","Hasher","cfg","_doReset","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","SHA1","_hash","HmacSHA1","_hasher","_oKey","_iKey","C","C_lib","C_enc","Base64","wordArray","_map","base64Chars","byte1","byte2","byte3","triplet","paddingChar","base64Str","base64StrLength","paddingIndex","nBytes","bits1","bits2","settle","buildURL","parseHeaders","isURLSameOrigin","requestData","btoa","responseURL","responseData","responseType","onerror","ontimeout","cookies","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","__extends","extendStatics","setPrototypeOf","__proto__","__","__awaiter","_arguments","P","generator","adopt","fulfilled","step","rejected","__generator","label","sent","trys","ops","verb","throw","return","Symbol","op","UploaderEvent","events_1","axios_1","uuidv4","interceptors","use","isNaN","Uploader","_super","_this","sessionName","applyRequestTimeout","applyRequestRetryCount","commitRequestTimeout","commitRequestRetryCount","retryDelay","validateInitParams","mediaFile","videoName","mediaName","coverFile","cosAuthTime","genFileInfo","setStorage","cname","localStorage","setItem","getStorage","getItem","delStorage","removeItem","lastDotIndex","videoInfo","coverName","coverLastDotIndex","coverInfo","applyUploadUGC","retryCount","whenError","_a","HOST","MAIN","BACKUP","signature","e_1","applyResult","applyData","vodSessionKey_1","videoType","videoSize","coverType","coverSize","uploadToCos","cosParam","uploadCosParams","cosVideoParam","cosCoverParam","uploadPromises","storageBucket","storageAppId","currentTimeStamp","safeExpireTime","getUnix","tempCertificate","expiredTime","timestamp","secretId","secretKey","file","video","storagePath","video_progress","media_progress","onUpload","video_upload","media_upload","taskId","cover","cover_progress","cover_upload","uploadCosParam","commitUploadUGC","e_2","commitResult","donePromise","_start","doneResult","catch","CLIENT_ERROR_CODE","UPLOAD_FAIL","cancelTask","EventEmitter","timer","cacheKey","changed","mtime","save","mod","lastModifiedDate","InterceptorManager","eject","xmlToJSON","mergeCDATA","normalize","stripElemPrefix","prefixMatch","grokType","sValue","parseString","xmlString","stringToXML","oXMLParent","vResult","nLength","sCollectedTxt","childNum","oNode","sProp","vContent","nItem","nodeValue","xmlToString","xmlDoc","XMLSerializer","serializeToString","parser","rng","v4","rnds","base","advance","defaultOptions","AppId","FileParallelLimit","ProgressInterval","UploadQueueSize","CompatibilityMode","ms","queryParams","getObjectKeys","obj2str","keyList","exp","qSignAlgorithm","qAk","qSignTime","qKeyTime","qHeaderList","qUrlParamList","signKey","formatString","stringToSign","qSignature","authorization","retObj","readAsBinaryString","blob","readFun","fr","FileReader","readAsArrayBuffer","fileData","binary","reader","byteLength","fileSliceNeedCopy","compareVersion","check","ua","ChromeVersion","QBCoreVersion","QQBrowserVersion","need","isUseToUpload","mozSlice","webkitSlice","md5ChunkSize","md5ctx","content","percent","o","iaArr","char","res","S4","hasMissingParams","formatParams","headerMap","x-cos-mfa","Content-MD5","Content-Length","Expect","Range","If-Modified-Since","If-Unmodified-Since","If-Match","If-None-Match","x-cos-copy-source","x-cos-copy-source-Range","x-cos-metadata-directive","x-cos-copy-source-If-Modified-Since","x-cos-copy-source-If-Unmodified-Since","x-cos-copy-source-If-Match","x-cos-copy-source-If-None-Match","x-cos-acl","x-cos-grant-read","x-cos-grant-write","x-cos-grant-full-control","x-cos-grant-read-acp","x-cos-grant-write-acp","x-cos-server-side-encryption-customer-algorithm","x-cos-server-side-encryption-customer-key","x-cos-server-side-encryption-customer-key-MD5","x-cos-server-side-encryption","x-cos-server-side-encryption-cos-kms-key-id","x-cos-server-side-encryption-context","paramKey","headerKey","formatResult","_callback","missingResult","time1","size0","size1","time0","speed","immediately","originApiMap","apiMap","_addTask","initTask","tasks","uploadingFileCount","nextUploadIndex","formatTask","FilePath","hashPercent","_custom","emitListUpdate","isActive","startNextTask","onTaskStart","apiParams","switchToState","waiting","toState","isTaskReadyWarning","ignoreAddEvent","TaskReady","getTaskList","pauseTask","restartTask","isUploadRunning","dispatchRequest","chain","interceptor","getRandomValues","msCrypto","rnds8","element_start_char","element_non_start_char","element_replace","not_safe_in_xml","objKeys","process_to_xml","node_data","makeNode","level","hasSubNodes","indent_value","indent","prettyPrint","removeIllegalNameCharacters","node_descriptor","nodes","esc","xml_header","standalone","xmlHeader","xmlheader","docType","ignoreDuplicateOf","line","relativeURL","render","_vm","_h","$createElement","_c","_self","staticClass","webkit-playsinline","x5-video-player-type","x5-video-player-fullscreen","playsinline","controls","show-center-play-btn","uploadviedoSrcFull","deleteVideoClick","accept","before-read","beforeRead","after-read","afterRead","topicShow","productShow","_v","_s","textVal","directives","rawName","expression","rows","placeholder","maxlength","domProps","input","$event","composing","topicChange","topic","_l","TopicName","topicDelete","color","getUserLocation","isStore","productChange","GoodsName","Thumbnail","_e","submitClick","z-index","onClickHide","controlTap","topicComplete","shape","background","topicSearchConfirm","model","$$v","topicValue","class","topicChoice","productComplete","productSearchConfirm","productValue","GoodsId","productChoice","staticStyle","width","height","staticRenderFns","publishVideovue_type_script_lang_js_","components","van-uploader","es_uploader","van-icon","icon","van-overlay","overlay","van-search","Toast","toast","_ref","topicPageIndex","topicTotal","topicList","TopicId","topicSearched","productPageIndex","productTotal","productList","poster","computed","watch","filters","methods","getStatus","member","Data","IsStore","uploadUrl","URL","createObjectURL","tcVod","tc_vod_default","that","output","_this2","canvas","img","clientWidth","clientHeight","getContext","drawImage","dataURL","toDataURL","BaseData","publish","_this3","geolocation","qq","maps","Geolocation","getIpLocation","position","longitude","lng","latitude","lat","province","city","getTopicHandle","getTopicDatail","$route","query","hid","api_topic","topicId","CateId","Type","Keyword","Page","PageSize","PageIndex","toConsumableArray","List","Total","idx","getProductHandle","_this4","topicIds","Content","CircleId","Address","GoodId","Lng","Lat","MediaUrl","$router","created","mounted","publishCenter_publishVideovue_type_script_lang_js_","component","componentNormalizer","__webpack_exports__","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","listener","prepend","existing","newListener","w","emitter","onceWrapper","removeListener","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","enumerable","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","removeAllListeners","rawListeners","eventNames"],"mappings":"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","file":"js/chunk-a0b59f18.99977f34.js","sourcesContent":["var session = require('./session');\r\nvar Async = require('./async');\r\nvar EventProxy = require('./event').EventProxy;\r\nvar util = require('./util');\r\n\r\n// 文件分块上传全过程,暴露的分块上传接口\r\nfunction sliceUploadFile(params, callback) {\r\n var self = this;\r\n var ep = new EventProxy();\r\n var TaskId = params.TaskId;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var Body = params.Body;\r\n var ChunkSize = params.ChunkSize || params.SliceSize || self.options.ChunkSize;\r\n var AsyncLimit = params.AsyncLimit;\r\n var StorageClass = params.StorageClass || 'Standard';\r\n var ServerSideEncryption = params.ServerSideEncryption;\r\n var FileSize;\r\n\r\n var onProgress;\r\n var onHashProgress = params.onHashProgress;\r\n\r\n // 上传过程中出现错误,返回错误\r\n ep.on('error', function (err) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n return callback(err);\r\n });\r\n\r\n // 上传分块完成,开始 uploadSliceComplete 操作\r\n ep.on('upload_complete', function (UploadCompleteData) {\r\n callback(null, UploadCompleteData);\r\n });\r\n\r\n // 上传分块完成,开始 uploadSliceComplete 操作\r\n ep.on('upload_slice_complete', function (UploadData) {\r\n uploadSliceComplete.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n UploadId: UploadData.UploadId,\r\n SliceList: UploadData.SliceList,\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n session.removeUsing(UploadData.UploadId);\r\n if (err) {\r\n onProgress(null, true);\r\n return ep.emit('error', err);\r\n }\r\n session.removeUploadId(UploadData.UploadId);\r\n onProgress({loaded: FileSize, total: FileSize}, true);\r\n ep.emit('upload_complete', data);\r\n });\r\n });\r\n\r\n // 获取 UploadId 完成,开始上传每个分片\r\n ep.on('get_upload_data_finish', function (UploadData) {\r\n\r\n // 处理 UploadId 缓存\r\n var uuid = session.getFileId(Body, params.ChunkSize, Bucket, Key);\r\n uuid && session.saveUploadId(uuid, UploadData.UploadId, self.options.UploadIdCacheLimit); // 缓存 UploadId\r\n session.setUsing(UploadData.UploadId); // 标记 UploadId 为正在使用\r\n\r\n // 获取 UploadId\r\n onProgress(null, true); // 任务状态开始 uploading\r\n uploadSliceList.call(self, {\r\n TaskId: TaskId,\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n Body: Body,\r\n FileSize: FileSize,\r\n SliceSize: ChunkSize,\r\n AsyncLimit: AsyncLimit,\r\n ServerSideEncryption: ServerSideEncryption,\r\n UploadData: UploadData,\r\n onProgress: onProgress\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) {\r\n onProgress(null, true);\r\n return ep.emit('error', err);\r\n }\r\n ep.emit('upload_slice_complete', data);\r\n });\r\n });\r\n\r\n // 开始获取文件 UploadId,里面会视情况计算 ETag,并比对,保证文件一致性,也优化上传\r\n ep.on('get_file_size_finish', function () {\r\n\r\n onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\r\n\r\n if (params.UploadData.UploadId) {\r\n ep.emit('get_upload_data_finish', params.UploadData);\r\n } else {\r\n var _params = util.extend({\r\n TaskId: TaskId,\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n Headers: params.Headers,\r\n StorageClass: StorageClass,\r\n Body: Body,\r\n FileSize: FileSize,\r\n SliceSize: ChunkSize,\r\n onHashProgress: onHashProgress,\r\n }, params);\r\n getUploadIdAndPartList.call(self, _params, function (err, UploadData) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) return ep.emit('error', err);\r\n params.UploadData.UploadId = UploadData.UploadId;\r\n params.UploadData.PartList = UploadData.PartList;\r\n ep.emit('get_upload_data_finish', params.UploadData);\r\n });\r\n }\r\n });\r\n\r\n // 获取上传文件大小\r\n FileSize = params.ContentLength;\r\n delete params.ContentLength;\r\n !params.Headers && (params.Headers = {});\r\n util.each(params.Headers, function (item, key) {\r\n if (key.toLowerCase() === 'content-length') {\r\n delete params.Headers[key];\r\n }\r\n });\r\n\r\n // 控制分片大小\r\n (function () {\r\n var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\r\n var AutoChunkSize = 1024 * 1024;\r\n for (var i = 0; i < SIZE.length; i++) {\r\n AutoChunkSize = SIZE[i] * 1024 * 1024;\r\n if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\r\n }\r\n params.ChunkSize = params.SliceSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\r\n })();\r\n\r\n // 开始上传\r\n if (FileSize === 0) {\r\n params.Body = '';\r\n params.ContentLength = 0;\r\n params.SkipTask = true;\r\n self.putObject(params, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, data);\r\n });\r\n } else {\r\n ep.emit('get_file_size_finish');\r\n }\r\n\r\n}\r\n\r\n// 获取上传任务的 UploadId\r\nfunction getUploadIdAndPartList(params, callback) {\r\n var TaskId = params.TaskId;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var StorageClass = params.StorageClass;\r\n var self = this;\r\n\r\n // 计算 ETag\r\n var ETagMap = {};\r\n var FileSize = params.FileSize;\r\n var SliceSize = params.SliceSize;\r\n var SliceCount = Math.ceil(FileSize / SliceSize);\r\n var FinishSliceCount = 0;\r\n var FinishSize = 0;\r\n var onHashProgress = util.throttleOnProgress.call(self, FileSize, params.onHashProgress);\r\n var getChunkETag = function (PartNumber, callback) {\r\n var start = SliceSize * (PartNumber - 1);\r\n var end = Math.min(start + SliceSize, FileSize);\r\n var ChunkSize = end - start;\r\n\r\n if (ETagMap[PartNumber]) {\r\n callback(null, {\r\n PartNumber: PartNumber,\r\n ETag: ETagMap[PartNumber],\r\n Size: ChunkSize\r\n });\r\n } else {\r\n util.fileSlice(params.Body, start, end, false, function (chunkItem) {\r\n util.getFileMd5(chunkItem, function (err, md5) {\r\n if (err) return callback(err);\r\n var ETag = '\"' + md5 + '\"';\r\n ETagMap[PartNumber] = ETag;\r\n FinishSliceCount += 1;\r\n FinishSize += ChunkSize;\r\n callback(err, {\r\n PartNumber: PartNumber,\r\n ETag: ETag,\r\n Size: ChunkSize\r\n });\r\n onHashProgress({loaded: FinishSize, total: FileSize});\r\n });\r\n });\r\n }\r\n };\r\n\r\n // 通过和文件的 md5 对比,判断 UploadId 是否可用\r\n var isAvailableUploadList = function (PartList, callback) {\r\n var PartCount = PartList.length;\r\n // 如果没有分片,通过\r\n if (PartCount === 0) {\r\n return callback(null, true);\r\n }\r\n // 检查分片数量\r\n if (PartCount > SliceCount) {\r\n return callback(null, false);\r\n }\r\n // 检查分片大小\r\n if (PartCount > 1) {\r\n var PartSliceSize = Math.max(PartList[0].Size, PartList[1].Size);\r\n if (PartSliceSize !== SliceSize) {\r\n return callback(null, false);\r\n }\r\n }\r\n // 逐个分片计算并检查 ETag 是否一致\r\n var next = function (index) {\r\n if (index < PartCount) {\r\n var Part = PartList[index];\r\n getChunkETag(Part.PartNumber, function (err, chunk) {\r\n if (chunk && chunk.ETag === Part.ETag && chunk.Size === Part.Size) {\r\n next(index + 1);\r\n } else {\r\n callback(null, false);\r\n }\r\n });\r\n } else {\r\n callback(null, true);\r\n }\r\n };\r\n next(0);\r\n };\r\n\r\n var ep = new EventProxy();\r\n ep.on('error', function (errData) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n return callback(errData);\r\n });\r\n\r\n // 存在 UploadId\r\n ep.on('upload_id_available', function (UploadData) {\r\n // 转换成 map\r\n var map = {};\r\n var list = [];\r\n util.each(UploadData.PartList, function (item) {\r\n map[item.PartNumber] = item;\r\n });\r\n for (var PartNumber = 1; PartNumber <= SliceCount; PartNumber++) {\r\n var item = map[PartNumber];\r\n if (item) {\r\n item.PartNumber = PartNumber;\r\n item.Uploaded = true;\r\n } else {\r\n item = {\r\n PartNumber: PartNumber,\r\n ETag: null,\r\n Uploaded: false\r\n };\r\n }\r\n list.push(item);\r\n }\r\n UploadData.PartList = list;\r\n callback(null, UploadData);\r\n });\r\n\r\n // 不存在 UploadId, 初始化生成 UploadId\r\n ep.on('no_available_upload_id', function () {\r\n if (!self._isRunningTask(TaskId)) return;\r\n var _params = util.extend({\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n Headers: util.clone(params.Headers),\r\n StorageClass: StorageClass,\r\n Body: params.Body,\r\n }, params);\r\n // 获取 File 或 Blob 的 type 属性,如果有,作为文件 Content-Type\r\n var ContentType = params.Headers['Content-Type'] || (params.Body && params.Body.type);\r\n if (ContentType) {\r\n _params.Headers['Content-Type'] = ContentType;\r\n }\r\n self.multipartInit(_params, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) return ep.emit('error', err);\r\n var UploadId = data.UploadId;\r\n if (!UploadId) {\r\n return callback({Message: 'no upload id'});\r\n }\r\n ep.emit('upload_id_available', {UploadId: UploadId, PartList: []});\r\n });\r\n });\r\n\r\n // 如果已存在 UploadId,找一个可以用的 UploadId\r\n ep.on('has_and_check_upload_id', function (UploadIdList) {\r\n // 串行地,找一个内容一致的 UploadId\r\n UploadIdList = UploadIdList.reverse();\r\n Async.eachLimit(UploadIdList, 1, function (UploadId, asyncCallback) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n // 如果正在上传,跳过\r\n if (session.using[UploadId]) {\r\n asyncCallback(); // 检查下一个 UploadId\r\n return;\r\n }\r\n // 判断 UploadId 是否可用\r\n wholeMultipartListPart.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n UploadId: UploadId,\r\n }, function (err, PartListData) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) {\r\n session.removeUsing(UploadId);\r\n return ep.emit('error', err);\r\n }\r\n var PartList = PartListData.PartList;\r\n PartList.forEach(function (item) {\r\n item.PartNumber *= 1;\r\n item.Size *= 1;\r\n item.ETag = item.ETag || '';\r\n });\r\n isAvailableUploadList(PartList, function (err, isAvailable) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) return ep.emit('error', err);\r\n if (isAvailable) {\r\n asyncCallback({\r\n UploadId: UploadId,\r\n PartList: PartList\r\n }); // 马上结束\r\n } else {\r\n asyncCallback(); // 检查下一个 UploadId\r\n }\r\n });\r\n });\r\n }, function (AvailableUploadData) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n onHashProgress(null, true);\r\n if (AvailableUploadData && AvailableUploadData.UploadId) {\r\n ep.emit('upload_id_available', AvailableUploadData);\r\n } else {\r\n ep.emit('no_available_upload_id');\r\n }\r\n });\r\n });\r\n\r\n // 在本地缓存找可用的 UploadId\r\n ep.on('seek_local_avail_upload_id', function (RemoteUploadIdList) {\r\n // 在本地找可用的 UploadId\r\n var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key);\r\n var LocalUploadIdList = session.getUploadIdList(uuid);\r\n if (!uuid || !LocalUploadIdList) {\r\n ep.emit('has_and_check_upload_id', RemoteUploadIdList);\r\n return;\r\n }\r\n var next = function (index) {\r\n // 如果本地找不到可用 UploadId,再一个个遍历校验远端\r\n if (index >= LocalUploadIdList.length) {\r\n ep.emit('has_and_check_upload_id', RemoteUploadIdList);\r\n return;\r\n }\r\n var UploadId = LocalUploadIdList[index];\r\n // 如果不在远端 UploadId 列表里,跳过并删除\r\n if (!util.isInArray(RemoteUploadIdList, UploadId)) {\r\n session.removeUploadId(UploadId);\r\n next(index + 1);\r\n return;\r\n }\r\n // 如果正在上传,跳过\r\n if (session.using[UploadId]) {\r\n next(index + 1);\r\n return;\r\n }\r\n // 判断 UploadId 是否存在线上\r\n wholeMultipartListPart.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n UploadId: UploadId,\r\n }, function (err, PartListData) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) {\r\n // 如果 UploadId 获取会出错,跳过并删除\r\n session.removeUploadId(UploadId);\r\n next(index + 1);\r\n } else {\r\n // 找到可用 UploadId\r\n ep.emit('upload_id_available', {\r\n UploadId: UploadId,\r\n PartList: PartListData.PartList,\r\n });\r\n }\r\n });\r\n };\r\n next(0);\r\n });\r\n\r\n // 获取线上 UploadId 列表\r\n ep.on('get_remote_upload_id_list', function (RemoteUploadIdList) {\r\n // 获取符合条件的 UploadId 列表,因为同一个文件可以有多个上传任务。\r\n wholeMultipartList.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) {\r\n return ep.emit('error', err);\r\n }\r\n // 整理远端 UploadId 列表\r\n var RemoteUploadIdList = util.filter(data.UploadList, function (item) {\r\n return item.Key === Key && (!StorageClass || item.StorageClass.toUpperCase() === StorageClass.toUpperCase());\r\n }).reverse().map(function (item) {\r\n return item.UploadId || item.UploadID;\r\n });\r\n if (RemoteUploadIdList.length) {\r\n ep.emit('seek_local_avail_upload_id', RemoteUploadIdList);\r\n } else {\r\n // 远端没有 UploadId,清理缓存的 UploadId\r\n var uuid = session.getFileId(params.Body, params.ChunkSize, Bucket, Key), LocalUploadIdList;\r\n if (uuid && (LocalUploadIdList = session.getUploadIdList(uuid))) {\r\n util.each(LocalUploadIdList, function (UploadId) {\r\n session.removeUploadId(UploadId);\r\n });\r\n }\r\n ep.emit('no_available_upload_id');\r\n }\r\n });\r\n });\r\n\r\n // 开始找可用 UploadId\r\n ep.emit('get_remote_upload_id_list');\r\n\r\n}\r\n\r\n// 获取符合条件的全部上传任务 (条件包括 Bucket, Region, Prefix)\r\nfunction wholeMultipartList(params, callback) {\r\n var self = this;\r\n var UploadList = [];\r\n var sendParams = {\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Prefix: params.Key\r\n };\r\n var next = function () {\r\n self.multipartList(sendParams, function (err, data) {\r\n if (err) return callback(err);\r\n UploadList.push.apply(UploadList, data.Upload || []);\r\n if (data.IsTruncated === 'true') { // 列表不完整\r\n sendParams.KeyMarker = data.NextKeyMarker;\r\n sendParams.UploadIdMarker = data.NextUploadIdMarker;\r\n next();\r\n } else {\r\n callback(null, {UploadList: UploadList});\r\n }\r\n });\r\n };\r\n next();\r\n}\r\n\r\n// 获取指定上传任务的分块列表\r\nfunction wholeMultipartListPart(params, callback) {\r\n var self = this;\r\n var PartList = [];\r\n var sendParams = {\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n UploadId: params.UploadId\r\n };\r\n var next = function () {\r\n self.multipartListPart(sendParams, function (err, data) {\r\n if (err) return callback(err);\r\n PartList.push.apply(PartList, data.Part || []);\r\n if (data.IsTruncated === 'true') { // 列表不完整\r\n sendParams.PartNumberMarker = data.NextPartNumberMarker;\r\n next();\r\n } else {\r\n callback(null, {PartList: PartList});\r\n }\r\n });\r\n };\r\n next();\r\n}\r\n\r\n// 上传文件分块,包括\r\n/*\r\n UploadId (上传任务编号)\r\n AsyncLimit (并发量),\r\n SliceList (上传的分块数组),\r\n FilePath (本地文件的位置),\r\n SliceSize (文件分块大小)\r\n FileSize (文件大小)\r\n onProgress (上传成功之后的回调函数)\r\n */\r\nfunction uploadSliceList(params, cb) {\r\n var self = this;\r\n var TaskId = params.TaskId;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var UploadData = params.UploadData;\r\n var FileSize = params.FileSize;\r\n var SliceSize = params.SliceSize;\r\n var ChunkParallel = Math.min(params.AsyncLimit || self.options.ChunkParallelLimit || 1, 256);\r\n var Body = params.Body;\r\n var SliceCount = Math.ceil(FileSize / SliceSize);\r\n var FinishSize = 0;\r\n var ServerSideEncryption = params.ServerSideEncryption;\r\n var needUploadSlices = util.filter(UploadData.PartList, function (SliceItem) {\r\n if (SliceItem['Uploaded']) {\r\n FinishSize += SliceItem['PartNumber'] >= SliceCount ? (FileSize % SliceSize || SliceSize) : SliceSize;\r\n }\r\n return !SliceItem['Uploaded'];\r\n });\r\n var onProgress = params.onProgress;\r\n\r\n Async.eachLimit(needUploadSlices, ChunkParallel, function (SliceItem, asyncCallback) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n var PartNumber = SliceItem['PartNumber'];\r\n var currentSize = Math.min(FileSize, SliceItem['PartNumber'] * SliceSize) - (SliceItem['PartNumber'] - 1) * SliceSize;\r\n var preAddSize = 0;\r\n uploadSliceItem.call(self, {\r\n TaskId: TaskId,\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n SliceSize: SliceSize,\r\n FileSize: FileSize,\r\n PartNumber: PartNumber,\r\n ServerSideEncryption: ServerSideEncryption,\r\n Body: Body,\r\n UploadData: UploadData,\r\n onProgress: function (data) {\r\n FinishSize += data.loaded - preAddSize;\r\n preAddSize = data.loaded;\r\n onProgress({loaded: FinishSize, total: FileSize});\r\n },\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (util.isBrowser && !err && !data.ETag) {\r\n err = 'get ETag error, please add \"ETag\" to CORS ExposeHeader setting.';\r\n }\r\n if (err) {\r\n FinishSize -= preAddSize;\r\n } else {\r\n FinishSize += currentSize - preAddSize;\r\n SliceItem.ETag = data.ETag;\r\n }\r\n asyncCallback(err || null, data);\r\n });\r\n }, function (err) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) return cb(err);\r\n cb(null, {\r\n UploadId: UploadData.UploadId,\r\n SliceList: UploadData.PartList\r\n });\r\n });\r\n}\r\n\r\n// 上传指定分片\r\nfunction uploadSliceItem(params, callback) {\r\n var self = this;\r\n var TaskId = params.TaskId;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var FileSize = params.FileSize;\r\n var FileBody = params.Body;\r\n var PartNumber = params.PartNumber * 1;\r\n var SliceSize = params.SliceSize;\r\n var ServerSideEncryption = params.ServerSideEncryption;\r\n var UploadData = params.UploadData;\r\n var ChunkRetryTimes = self.options.ChunkRetryTimes + 1;\r\n\r\n var start = SliceSize * (PartNumber - 1);\r\n\r\n var ContentLength = SliceSize;\r\n\r\n var end = start + SliceSize;\r\n\r\n if (end > FileSize) {\r\n end = FileSize;\r\n ContentLength = end - start;\r\n }\r\n\r\n var PartItem = UploadData.PartList[PartNumber - 1];\r\n Async.retry(ChunkRetryTimes, function (tryCallback) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n util.fileSlice(FileBody, start, end, true, function (Body) {\r\n self.multipartUpload({\r\n TaskId: TaskId,\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n ContentLength: ContentLength,\r\n PartNumber: PartNumber,\r\n UploadId: UploadData.UploadId,\r\n ServerSideEncryption: ServerSideEncryption,\r\n Body: Body,\r\n onProgress: params.onProgress,\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n if (err) {\r\n return tryCallback(err);\r\n } else {\r\n PartItem.Uploaded = true;\r\n return tryCallback(null, data);\r\n }\r\n });\r\n });\r\n }, function (err, data) {\r\n if (!self._isRunningTask(TaskId)) return;\r\n return callback(err, data);\r\n });\r\n}\r\n\r\n\r\n// 完成分块上传\r\nfunction uploadSliceComplete(params, callback) {\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var UploadId = params.UploadId;\r\n var SliceList = params.SliceList;\r\n var self = this;\r\n var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\r\n var Parts = SliceList.map(function (item) {\r\n return {\r\n PartNumber: item.PartNumber,\r\n ETag: item.ETag\r\n };\r\n });\r\n // 完成上传的请求也做重试\r\n Async.retry(ChunkRetryTimes, function (tryCallback) {\r\n self.multipartComplete({\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n UploadId: UploadId,\r\n Parts: Parts\r\n }, tryCallback);\r\n }, function (err, data) {\r\n callback(err, data);\r\n });\r\n}\r\n\r\n// 抛弃分块上传任务\r\n/*\r\n AsyncLimit (抛弃上传任务的并发量),\r\n UploadId (上传任务的编号,当 Level 为 task 时候需要)\r\n Level (抛弃分块上传任务的级别,task : 抛弃指定的上传任务,file : 抛弃指定的文件对应的上传任务,其他值 :抛弃指定Bucket 的全部上传任务)\r\n */\r\nfunction abortUploadTask(params, callback) {\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var UploadId = params.UploadId;\r\n var Level = params.Level || 'task';\r\n var AsyncLimit = params.AsyncLimit;\r\n var self = this;\r\n\r\n var ep = new EventProxy();\r\n\r\n ep.on('error', function (errData) {\r\n return callback(errData);\r\n });\r\n\r\n // 已经获取到需要抛弃的任务列表\r\n ep.on('get_abort_array', function (AbortArray) {\r\n abortUploadTaskArray.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n Headers: params.Headers,\r\n AsyncLimit: AsyncLimit,\r\n AbortArray: AbortArray\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, data);\r\n });\r\n });\r\n\r\n if (Level === 'bucket') {\r\n // Bucket 级别的任务抛弃,抛弃该 Bucket 下的全部上传任务\r\n wholeMultipartList.call(self, {\r\n Bucket: Bucket,\r\n Region: Region\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n ep.emit('get_abort_array', data.UploadList || []);\r\n });\r\n } else if (Level === 'file') {\r\n // 文件级别的任务抛弃,抛弃该文件的全部上传任务\r\n if (!Key) return callback({error: 'abort_upload_task_no_key'});\r\n wholeMultipartList.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n ep.emit('get_abort_array', data.UploadList || []);\r\n });\r\n } else if (Level === 'task') {\r\n // 单个任务级别的任务抛弃,抛弃指定 UploadId 的上传任务\r\n if (!UploadId) return callback({error: 'abort_upload_task_no_id'});\r\n if (!Key) return callback({error: 'abort_upload_task_no_key'});\r\n ep.emit('get_abort_array', [{\r\n Key: Key,\r\n UploadId: UploadId\r\n }]);\r\n } else {\r\n return callback({error: 'abort_unknown_level'});\r\n }\r\n}\r\n\r\n// 批量抛弃分块上传任务\r\nfunction abortUploadTaskArray(params, callback) {\r\n\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var AbortArray = params.AbortArray;\r\n var AsyncLimit = params.AsyncLimit || 1;\r\n var self = this;\r\n\r\n var index = 0;\r\n var resultList = new Array(AbortArray.length);\r\n Async.eachLimit(AbortArray, AsyncLimit, function (AbortItem, callback) {\r\n var eachIndex = index;\r\n if (Key && Key !== AbortItem.Key) {\r\n resultList[eachIndex] = {error: {KeyNotMatch: true}};\r\n callback(null);\r\n return;\r\n }\r\n var UploadId = AbortItem.UploadId || AbortItem.UploadID;\r\n\r\n self.multipartAbort({\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: AbortItem.Key,\r\n Headers: params.Headers,\r\n UploadId: UploadId\r\n }, function (err, data) {\r\n var task = {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: AbortItem.Key,\r\n UploadId: UploadId\r\n };\r\n resultList[eachIndex] = {error: err, task: task};\r\n callback(null);\r\n });\r\n index++;\r\n\r\n }, function (err) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n\r\n var successList = [];\r\n var errorList = [];\r\n\r\n for (var i = 0, len = resultList.length; i < len; i++) {\r\n var item = resultList[i];\r\n if (item['task']) {\r\n if (item['error']) {\r\n errorList.push(item['task']);\r\n } else {\r\n successList.push(item['task']);\r\n }\r\n }\r\n }\r\n\r\n return callback(null, {\r\n successList: successList,\r\n errorList: errorList\r\n });\r\n });\r\n}\r\n\r\n\r\n// 批量上传文件\r\nfunction uploadFiles(params, callback) {\r\n var self = this;\r\n\r\n // 判断多大的文件使用分片上传\r\n var SliceSize = params.SliceSize === undefined ? self.options.SliceSize : params.SliceSize;\r\n\r\n // 汇总返回进度\r\n var TotalSize = 0;\r\n var TotalFinish = 0;\r\n var onTotalProgress = util.throttleOnProgress.call(self, TotalFinish, params.onProgress);\r\n\r\n // 汇总返回回调\r\n var unFinishCount = params.files.length;\r\n var _onTotalFileFinish = params.onFileFinish;\r\n var resultList = Array(unFinishCount);\r\n var onTotalFileFinish = function (err, data, options) {\r\n onTotalProgress(null, true);\r\n _onTotalFileFinish && _onTotalFileFinish(err, data, options);\r\n resultList[options.Index] = {\r\n options: options,\r\n error: err,\r\n data: data\r\n };\r\n if (--unFinishCount <= 0 && callback) {\r\n callback(null, {\r\n files: resultList,\r\n });\r\n }\r\n };\r\n\r\n // 开始处理每个文件\r\n var taskList = [];\r\n util.each(params.files, function (fileParams, index) {\r\n (function () { // 对齐 nodejs 缩进\r\n\r\n var Body = fileParams.Body;\r\n var FileSize = Body.size || Body.length || 0;\r\n var fileInfo = {Index: index, TaskId: ''};\r\n\r\n // 更新文件总大小\r\n TotalSize += FileSize;\r\n\r\n // 整理 option,用于返回给回调\r\n util.each(fileParams, function (v, k) {\r\n if (typeof v !== 'object' && typeof v !== 'function') {\r\n fileInfo[k] = v;\r\n }\r\n });\r\n\r\n // 处理单个文件 TaskReady\r\n var _onTaskReady = fileParams.onTaskReady;\r\n var onTaskReady = function (tid) {\r\n fileInfo.TaskId = tid;\r\n _onTaskReady && _onTaskReady(tid);\r\n };\r\n fileParams.onTaskReady = onTaskReady;\r\n\r\n // 处理单个文件进度\r\n var PreAddSize = 0;\r\n var _onProgress = fileParams.onProgress;\r\n var onProgress = function (info) {\r\n TotalFinish = TotalFinish - PreAddSize + info.loaded;\r\n PreAddSize = info.loaded;\r\n _onProgress && _onProgress(info);\r\n onTotalProgress({loaded: TotalFinish, total: TotalSize});\r\n };\r\n fileParams.onProgress = onProgress;\r\n\r\n // 处理单个文件完成\r\n var _onFileFinish = fileParams.onFileFinish;\r\n var onFileFinish = function (err, data) {\r\n _onFileFinish && _onFileFinish(err, data);\r\n onTotalFileFinish && onTotalFileFinish(err, data, fileInfo);\r\n };\r\n\r\n // 添加上传任务\r\n var api = FileSize >= SliceSize ? 'sliceUploadFile' : 'putObject';\r\n taskList.push({\r\n api: api,\r\n params: fileParams,\r\n callback: onFileFinish,\r\n });\r\n })();\r\n });\r\n self._addTasks(taskList);\r\n}\r\n\r\n// 分片复制文件\r\nfunction sliceCopyFile(params, callback) {\r\n var ep = new EventProxy();\r\n\r\n var self = this;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var CopySource = params.CopySource;\r\n var m = CopySource.match(/^([^.]+-\\d+)\\.cos(v6)?\\.([^.]+)\\.[^/]+\\/(.+)$/);\r\n if (!m) {\r\n callback({error: 'CopySource format error'});\r\n return;\r\n }\r\n\r\n var SourceBucket = m[1];\r\n var SourceRegion = m[3];\r\n var SourceKey = decodeURIComponent(m[4]);\r\n var CopySliceSize = params.CopySliceSize === undefined ? self.options.CopySliceSize : params.CopySliceSize;\r\n CopySliceSize = Math.max(0, CopySliceSize);\r\n\r\n var ChunkSize = params.CopyChunkSize || this.options.CopyChunkSize;\r\n var ChunkParallel = this.options.CopyChunkParallelLimit;\r\n\r\n var FinishSize = 0;\r\n var FileSize;\r\n var onProgress;\r\n\r\n // 分片复制完成,开始 multipartComplete 操作\r\n ep.on('copy_slice_complete', function (UploadData) {\r\n self.multipartComplete({\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n UploadId: UploadData.UploadId,\r\n Parts: UploadData.PartList,\r\n },function (err, data) {\r\n if (err) {\r\n onProgress(null, true);\r\n return callback(err);\r\n }\r\n onProgress({loaded: FileSize, total: FileSize}, true);\r\n callback(null, data);\r\n });\r\n });\r\n\r\n ep.on('get_copy_data_finish',function (UploadData) {\r\n Async.eachLimit(UploadData.PartList, ChunkParallel, function (SliceItem, asyncCallback) {\r\n var PartNumber = SliceItem.PartNumber;\r\n var CopySourceRange = SliceItem.CopySourceRange;\r\n var currentSize = SliceItem.end - SliceItem.start;\r\n var preAddSize = 0;\r\n\r\n copySliceItem.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n CopySource: CopySource,\r\n UploadId: UploadData.UploadId,\r\n PartNumber: PartNumber,\r\n CopySourceRange: CopySourceRange,\r\n onProgress: function (data) {\r\n FinishSize += data.loaded - preAddSize;\r\n preAddSize = data.loaded;\r\n onProgress({loaded: FinishSize, total: FileSize});\r\n }\r\n },function (err,data) {\r\n if (err) {\r\n return asyncCallback(err);\r\n }\r\n onProgress({loaded: FinishSize, total: FileSize});\r\n\r\n FinishSize += currentSize - preAddSize;\r\n SliceItem.ETag = data.ETag;\r\n asyncCallback(err || null, data);\r\n });\r\n }, function (err) {\r\n if (err) {\r\n onProgress(null, true);\r\n return callback(err);\r\n }\r\n\r\n ep.emit('copy_slice_complete', UploadData);\r\n });\r\n });\r\n\r\n ep.on('get_file_size_finish', function (SourceHeaders) {\r\n // 控制分片大小\r\n (function () {\r\n var SIZE = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 1024 * 2, 1024 * 4, 1024 * 5];\r\n var AutoChunkSize = 1024 * 1024;\r\n for (var i = 0; i < SIZE.length; i++) {\r\n AutoChunkSize = SIZE[i] * 1024 * 1024;\r\n if (FileSize / AutoChunkSize <= self.options.MaxPartNumber) break;\r\n }\r\n params.ChunkSize = ChunkSize = Math.max(ChunkSize, AutoChunkSize);\r\n\r\n var ChunkCount = Math.ceil(FileSize / ChunkSize);\r\n\r\n var list = [];\r\n for (var partNumber = 1; partNumber <= ChunkCount; partNumber++) {\r\n var start = (partNumber - 1) * ChunkSize;\r\n var end = partNumber * ChunkSize < FileSize ? (partNumber * ChunkSize - 1) : FileSize - 1;\r\n var item = {\r\n PartNumber: partNumber,\r\n start: start,\r\n end: end,\r\n CopySourceRange: \"bytes=\" + start + \"-\" + end,\r\n };\r\n list.push(item);\r\n }\r\n params.PartList = list;\r\n })();\r\n\r\n var TargetHeader;\r\n if (params.Headers['x-cos-metadata-directive'] === 'Replaced') {\r\n TargetHeader = params.Headers;\r\n } else {\r\n TargetHeader = SourceHeaders;\r\n }\r\n TargetHeader['x-cos-storage-class'] = params.Headers['x-cos-storage-class'] || SourceHeaders['x-cos-storage-class'];\r\n TargetHeader = util.clearKey(TargetHeader);\r\n /**\r\n * 对于归档存储的对象,如果未恢复副本,则不允许 Copy\r\n */\r\n if (SourceHeaders['x-cos-storage-class'] === 'ARCHIVE') {\r\n var restoreHeader = SourceHeaders['x-cos-restore'];\r\n if (!restoreHeader || restoreHeader === 'ongoing-request=\"true\"') {\r\n callback({ error: 'Unrestored archive object is not allowed to be copied' });\r\n return;\r\n }\r\n }\r\n /**\r\n * 去除一些无用的头部,规避 multipartInit 出错\r\n * 这些头部通常是在 putObjectCopy 时才使用\r\n */\r\n delete TargetHeader['x-cos-copy-source'];\r\n delete TargetHeader['x-cos-metadata-directive'];\r\n delete TargetHeader['x-cos-copy-source-If-Modified-Since'];\r\n delete TargetHeader['x-cos-copy-source-If-Unmodified-Since'];\r\n delete TargetHeader['x-cos-copy-source-If-Match'];\r\n delete TargetHeader['x-cos-copy-source-If-None-Match'];\r\n self.multipartInit({\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n Headers: TargetHeader,\r\n },function (err,data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n params.UploadId = data.UploadId;\r\n ep.emit('get_copy_data_finish', params);\r\n });\r\n });\r\n\r\n // 获取远端复制源文件的大小\r\n self.headObject({\r\n Bucket: SourceBucket,\r\n Region: SourceRegion,\r\n Key: SourceKey,\r\n },function(err, data) {\r\n if (err) {\r\n if (err.statusCode && err.statusCode === 404) {\r\n callback({ErrorStatus: SourceKey + ' Not Exist'});\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n\r\n FileSize = params.FileSize = data.headers['content-length'];\r\n if (FileSize === undefined || !FileSize) {\r\n callback({error: 'get Content-Length error, please add \"Content-Length\" to CORS ExposeHeader setting.'});\r\n return;\r\n }\r\n\r\n onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\r\n\r\n // 开始上传\r\n if (FileSize <= CopySliceSize) {\r\n if (!params.Headers['x-cos-metadata-directive']) {\r\n params.Headers['x-cos-metadata-directive'] = 'Copy';\r\n }\r\n self.putObjectCopy(params, function (err, data) {\r\n if (err) {\r\n onProgress(null, true);\r\n return callback(err);\r\n }\r\n onProgress({loaded: FileSize, total: FileSize}, true);\r\n callback(err, data);\r\n });\r\n } else {\r\n var resHeaders = data.headers;\r\n var SourceHeaders = {\r\n 'Cache-Control': resHeaders['cache-control'],\r\n 'Content-Disposition': resHeaders['content-disposition'],\r\n 'Content-Encoding': resHeaders['content-encoding'],\r\n 'Content-Type': resHeaders['content-type'],\r\n 'Expires': resHeaders['expires'],\r\n 'x-cos-storage-class': resHeaders['x-cos-storage-class'],\r\n };\r\n util.each(resHeaders, function (v, k) {\r\n var metaPrefix = 'x-cos-meta-';\r\n if (k.indexOf(metaPrefix) === 0 && k.length > metaPrefix.length) {\r\n SourceHeaders[k] = v;\r\n }\r\n });\r\n ep.emit('get_file_size_finish', SourceHeaders);\r\n }\r\n });\r\n}\r\n\r\n// 复制指定分片\r\nfunction copySliceItem(params, callback) {\r\n var TaskId = params.TaskId;\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n var CopySource = params.CopySource;\r\n var UploadId = params.UploadId;\r\n var PartNumber = params.PartNumber * 1;\r\n var CopySourceRange = params.CopySourceRange;\r\n\r\n var ChunkRetryTimes = this.options.ChunkRetryTimes + 1;\r\n var self = this;\r\n\r\n Async.retry(ChunkRetryTimes, function (tryCallback) {\r\n self.uploadPartCopy({\r\n TaskId: TaskId,\r\n Bucket: Bucket,\r\n Region: Region,\r\n Key: Key,\r\n CopySource: CopySource,\r\n UploadId: UploadId,\r\n PartNumber:PartNumber,\r\n CopySourceRange:CopySourceRange,\r\n onProgress:params.onProgress,\r\n },function (err,data) {\r\n tryCallback(err || null, data);\r\n })\r\n }, function (err, data) {\r\n return callback(err, data);\r\n });\r\n}\r\n\r\n\r\nvar API_MAP = {\r\n sliceUploadFile: sliceUploadFile,\r\n abortUploadTask: abortUploadTask,\r\n uploadFiles: uploadFiles,\r\n sliceCopyFile: sliceCopyFile,\r\n};\r\n\r\nmodule.exports.init = function (COS, task) {\r\n task.transferToTaskMethod(API_MAP, 'sliceUploadFile');\r\n util.each(API_MAP, function (fn, apiName) {\r\n COS.prototype[apiName] = util.apiWrapper(apiName, fn);\r\n });\r\n};\r\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","\"use strict\";\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar uploader_1 = require(\"./uploader\");\nvar vod_reporter_1 = require(\"./vod_reporter\");\nvar TcVod = /** @class */ (function () {\n function TcVod(params) {\n this.allowReport = true; // report sdk status to tencent cloud\n this.enableResume = true; // resume uploading from break point\n this.getSignature = params.getSignature;\n if (params.allowReport !== void 0) {\n this.allowReport = params.allowReport;\n }\n if (params.enableResume !== void 0) {\n this.enableResume = params.enableResume;\n }\n this.appId = params.appId;\n this.reportId = params.reportId;\n }\n TcVod.prototype.upload = function (params) {\n var uploaderParams = __assign({ getSignature: this.getSignature, appId: this.appId, reportId: this.reportId, enableResume: this.enableResume }, params);\n var uploader = new uploader_1.default(uploaderParams);\n if (this.allowReport) {\n this.initReporter(uploader);\n }\n uploader.start();\n return uploader;\n };\n // report to official report system\n TcVod.prototype.initReporter = function (uploader) {\n new vod_reporter_1.VodReporter(uploader);\n };\n return TcVod;\n}());\nexports.default = TcVod;\n//# sourceMappingURL=tc_vod.js.map","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","var eachLimit = function (arr, limit, iterator, callback) {\r\n callback = callback || function () {};\r\n if (!arr.length || limit <= 0) {\r\n return callback();\r\n }\r\n\r\n var completed = 0;\r\n var started = 0;\r\n var running = 0;\r\n\r\n (function replenish () {\r\n if (completed >= arr.length) {\r\n return callback();\r\n }\r\n\r\n while (running < limit && started < arr.length) {\r\n started += 1;\r\n running += 1;\r\n iterator(arr[started - 1], function (err) {\r\n\r\n if (err) {\r\n callback(err);\r\n callback = function () {};\r\n } else {\r\n completed += 1;\r\n running -= 1;\r\n if (completed >= arr.length) {\r\n callback();\r\n } else {\r\n replenish();\r\n }\r\n }\r\n });\r\n }\r\n })();\r\n};\r\n\r\nvar retry = function (times, iterator, callback) {\r\n var next = function (index) {\r\n iterator(function (err, data) {\r\n if (err && index < times) {\r\n next(index + 1);\r\n } else {\r\n callback(err, data);\r\n }\r\n });\r\n };\r\n if (times < 1) {\r\n callback();\r\n } else {\r\n next(1);\r\n }\r\n};\r\n\r\nvar async = {\r\n eachLimit: eachLimit,\r\n retry: retry\r\n};\r\n\r\nmodule.exports = async;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","var initEvent = function (cos) {\r\n var listeners = {};\r\n var getList = function (action) {\r\n !listeners[action] && (listeners[action] = []);\r\n return listeners[action];\r\n };\r\n cos.on = function (action, callback) {\r\n if (action === 'task-list-update') {\r\n console.warn('warning: Event \"' + action + '\" has been deprecated. Please use \"list-update\" instead.');\r\n }\r\n getList(action).push(callback);\r\n };\r\n cos.off = function (action, callback) {\r\n var list = getList(action);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n callback === list[i] && list.splice(i, 1);\r\n }\r\n };\r\n cos.emit = function (action, data) {\r\n var list = getList(action).map(function (cb) {\r\n return cb;\r\n });\r\n for (var i = 0; i < list.length; i++) {\r\n list[i](data);\r\n }\r\n };\r\n};\r\n\r\nvar EventProxy = function () {\r\n initEvent(this);\r\n};\r\n\r\nmodule.exports.init = initEvent;\r\nmodule.exports.EventProxy = EventProxy;","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","var REQUEST = require('../lib/request');\r\nvar util = require('./util');\r\n\r\n\r\n// Bucket 相关\r\n\r\n/**\r\n * 获取用户的 bucket 列表\r\n * @param {Object} params 回调函数,必须,下面为参数列表\r\n * 无特殊参数\r\n * @param {Function} callback 回调函数,必须\r\n */\r\nfunction getService(params, callback) {\r\n\r\n if (typeof params === 'function') {\r\n callback = params;\r\n params = {};\r\n }\r\n var protocol = this.options.Protocol || (util.isBrowser && location.protocol === 'http:' ? 'http:' : 'https:');\r\n var domain = this.options.ServiceDomain;\r\n var region = params.Region;\r\n if (domain) {\r\n domain = domain.replace(/\\{Region\\}/ig, region || '').replace(/\\{.*?\\}/ig, '');\r\n if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\r\n domain = protocol + '//' + domain;\r\n }\r\n if (domain.slice(-1) === '/') {\r\n domain = domain.slice(0, -1);\r\n }\r\n } else if(region){\r\n domain = protocol + '//cos.'+ region + '.myqcloud.com';\r\n } else {\r\n domain = protocol + '//service.cos.myqcloud.com';\r\n }\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetService',\r\n url: domain,\r\n method: 'GET',\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var buckets = (data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Buckets\r\n && data.ListAllMyBucketsResult.Buckets.Bucket) || [];\r\n buckets = util.isArray(buckets) ? buckets : [buckets];\r\n var owner = (data && data.ListAllMyBucketsResult && data.ListAllMyBucketsResult.Owner) || {};\r\n callback(null, {\r\n Buckets: buckets,\r\n Owner: owner,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 创建 Bucket,并初始化访问权限\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.ACL 用户自定义文件权限,可以设置:private,public-read;默认值:private,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限,格式x-cos-grant-read: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限,格式x-cos-grant-write: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限,格式x-cos-grant-full-control: uin=\" \",uin=\" \",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {String} data.Location 操作地址\r\n */\r\nfunction putBucket(params, callback) {\r\n\r\n var self = this;\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucket',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var url = getUrl({\r\n protocol: self.options.Protocol,\r\n domain: self.options.Domain,\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n isLocation: true,\r\n });\r\n callback(null, {\r\n Location: url,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 查看是否存在该Bucket,是否有权限访问\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Boolean} data.BucketExist Bucket是否存在\r\n * @return {Boolean} data.BucketAuth 是否有 Bucket 的访问权限\r\n */\r\nfunction headBucket(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:HeadBucket',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n method: 'HEAD',\r\n }, function (err, data) {\r\n callback(err, data);\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 下的 object 列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Prefix 前缀匹配,用来规定返回的文件前缀地址,非必须\r\n * @param {String} params.Delimiter 定界符为一个符号,如果有Prefix,则将Prefix到delimiter之间的相同路径归为一类,非必须\r\n * @param {String} params.Marker 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,非必须\r\n * @param {String} params.MaxKeys 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListBucketResult 返回的 object 列表信息\r\n */\r\nfunction getBucket(params, callback) {\r\n var reqParams = {};\r\n reqParams['prefix'] = params['Prefix'] || '';\r\n reqParams['delimiter'] = params['Delimiter'];\r\n reqParams['marker'] = params['Marker'];\r\n reqParams['max-keys'] = params['MaxKeys'];\r\n reqParams['encoding-type'] = params['EncodingType'];\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucket',\r\n ResourceKey: reqParams['prefix'],\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var ListBucketResult = data.ListBucketResult || {};\r\n var Contents = ListBucketResult.Contents || [];\r\n var CommonPrefixes = ListBucketResult.CommonPrefixes || [];\r\n\r\n Contents = util.isArray(Contents) ? Contents : [Contents];\r\n CommonPrefixes = util.isArray(CommonPrefixes) ? CommonPrefixes : [CommonPrefixes];\r\n\r\n var result = util.clone(ListBucketResult);\r\n util.extend(result, {\r\n Contents: Contents,\r\n CommonPrefixes: CommonPrefixes,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 删除 Bucket\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {String} data.Location 操作地址\r\n */\r\nfunction deleteBucket(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucket',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n method: 'DELETE',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 设置 Bucket 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.ACL 用户自定义文件权限,可以设置:private,public-read;默认值:private,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限,格式x-cos-grant-read: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限,格式x-cos-grant-write: uin=\" \",uin=\" \",非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限,格式x-cos-grant-full-control: uin=\" \",uin=\" \",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction putBucketAcl(params, callback) {\r\n var headers = params.Headers;\r\n\r\n var xml = '';\r\n if (params['AccessControlPolicy']) {\r\n var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\r\n var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\r\n Grants = util.isArray(Grants) ? Grants : [Grants];\r\n delete AccessControlPolicy.Grant;\r\n delete AccessControlPolicy.Grants;\r\n AccessControlPolicy.AccessControlList = {Grant: Grants};\r\n xml = util.json2xml({AccessControlPolicy: AccessControlPolicy});\r\n\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n }\r\n\r\n // Grant Header 去重\r\n util.each(headers, function (val, key) {\r\n if (key.indexOf('x-cos-grant-') === 0) {\r\n headers[key] = uniqGrant(headers[key]);\r\n }\r\n });\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketACL',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: headers,\r\n action: 'acl',\r\n body: xml,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.AccessControlPolicy 访问权限信息\r\n */\r\nfunction getBucketAcl(params, callback) {\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketACL',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'acl',\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var AccessControlPolicy = data.AccessControlPolicy || {};\r\n var Owner = AccessControlPolicy.Owner || {};\r\n var Grant = AccessControlPolicy.AccessControlList.Grant || [];\r\n Grant = util.isArray(Grant) ? Grant : [Grant];\r\n var result = decodeAcl(AccessControlPolicy);\r\n if (data.headers && data.headers['x-cos-acl']) {\r\n result.ACL = data.headers['x-cos-acl'];\r\n }\r\n result = util.extend(result, {\r\n Owner: Owner,\r\n Grants: Grant,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 设置 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.CORSConfiguration 相关的跨域设置,必须\r\n * @param {Array} params.CORSConfiguration.CORSRules 对应的跨域规则\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction putBucketCors(params, callback) {\r\n\r\n var CORSConfiguration = params['CORSConfiguration'] || {};\r\n var CORSRules = CORSConfiguration['CORSRules'] || params['CORSRules'] || [];\r\n CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\r\n util.each(CORSRules, function (rule) {\r\n util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key, k) {\r\n var sKey = key + 's';\r\n var val = rule[sKey] || rule[key] || [];\r\n delete rule[sKey];\r\n rule[key] = util.isArray(val) ? val : [val];\r\n });\r\n });\r\n\r\n var xml = util.json2xml({CORSConfiguration: {CORSRule: CORSRules}});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketCORS',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'cors',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.CORSRules Bucket的跨域设置\r\n */\r\nfunction getBucketCors(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketCORS',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'cors',\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchCORSConfiguration') {\r\n var result = {\r\n CORSRules: [],\r\n statusCode: err.statusCode,\r\n };\r\n err.headers && (result.headers = err.headers);\r\n callback(null, result);\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n var CORSConfiguration = data.CORSConfiguration || {};\r\n var CORSRules = CORSConfiguration.CORSRules || CORSConfiguration.CORSRule || [];\r\n CORSRules = util.clone(util.isArray(CORSRules) ? CORSRules : [CORSRules]);\r\n\r\n util.each(CORSRules, function (rule) {\r\n util.each(['AllowedOrigin', 'AllowedHeader', 'AllowedMethod', 'ExposeHeader'], function (key, j) {\r\n var sKey = key + 's';\r\n var val = rule[sKey] || rule[key] || [];\r\n delete rule[key];\r\n rule[sKey] = util.isArray(val) ? val : [val];\r\n });\r\n });\r\n\r\n callback(null, {\r\n CORSRules: CORSRules,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 删除 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction deleteBucketCors(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketCORS',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'cors',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode || err.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的 地域信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据,包含地域信息 LocationConstraint\r\n */\r\nfunction getBucketLocation(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketLocation',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'location',\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, data);\r\n });\r\n}\r\n\r\nfunction putBucketPolicy(params, callback) {\r\n var Policy = params['Policy'];\r\n var PolicyStr = Policy;\r\n try {\r\n if (typeof Policy === 'string') {\r\n Policy = JSON.parse(PolicyStr);\r\n } else {\r\n PolicyStr = JSON.stringify(Policy);\r\n }\r\n } catch (e) {\r\n callback({error: 'Policy format error'});\r\n }\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/json';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(PolicyStr));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketPolicy',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n action: 'policy',\r\n body: util.isBrowser ? PolicyStr : Policy,\r\n headers: headers,\r\n json: true,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的读取权限策略\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction getBucketPolicy(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketPolicy',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'policy',\r\n rawBody: true,\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode && err.statusCode === 403) {\r\n return callback({ErrorStatus: 'Access Denied'});\r\n }\r\n if (err.statusCode && err.statusCode === 405) {\r\n return callback({ErrorStatus: 'Method Not Allowed'});\r\n }\r\n if (err.statusCode && err.statusCode === 404) {\r\n return callback({ErrorStatus: 'Policy Not Found'});\r\n }\r\n return callback(err);\r\n }\r\n var Policy = {};\r\n try {\r\n Policy = JSON.parse(data.body);\r\n } catch (e) {\r\n }\r\n callback(null, {\r\n Policy: Policy,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 删除 Bucket 的 跨域设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction deleteBucketPolicy(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketPolicy',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'policy',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode || err.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 设置 Bucket 的标签\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Array} params.TagSet 标签设置,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction putBucketTagging(params, callback) {\r\n\r\n var Tagging = params['Tagging'] || {};\r\n var Tags = Tagging.TagSet || Tagging.Tags || params['Tags'] || [];\r\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\r\n var xml = util.json2xml({Tagging: {TagSet: {Tag: Tags}}});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketTagging',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'tagging',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction getBucketTagging(params, callback) {\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketTagging',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'tagging',\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode === 404 && err.error && (err.error === \"Not Found\" || err.error.Code === 'NoSuchTagSet')) {\r\n var result = {\r\n Tags: [],\r\n statusCode: err.statusCode,\r\n };\r\n err.headers && (result.headers = err.headers);\r\n callback(null, result);\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n var Tags = [];\r\n try {\r\n Tags = data.Tagging.TagSet.Tag || [];\r\n } catch (e) {\r\n }\r\n Tags = util.clone(util.isArray(Tags) ? Tags : [Tags]);\r\n callback(null, {\r\n Tags: Tags,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 删除 Bucket 的 标签设置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction deleteBucketTagging(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketTagging',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'tagging',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction putBucketLifecycle(params, callback) {\r\n\r\n var LifecycleConfiguration = params['LifecycleConfiguration'] || {};\r\n var Rules = LifecycleConfiguration.Rules || params.Rules || [];\r\n Rules = util.clone(Rules);\r\n var xml = util.json2xml({LifecycleConfiguration: {Rule: Rules}});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketLifecycle',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'lifecycle',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction getBucketLifecycle(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketLifecycle',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'lifecycle',\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode === 404 && err.error && err.error.Code === 'NoSuchLifecycleConfiguration') {\r\n var result = {\r\n Rules: [],\r\n statusCode: err.statusCode,\r\n };\r\n err.headers && (result.headers = err.headers);\r\n callback(null, result);\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n var Rules = [];\r\n try {\r\n Rules = data.LifecycleConfiguration.Rule || [];\r\n } catch (e) {\r\n }\r\n Rules = util.clone(util.isArray(Rules) ? Rules : [Rules]);\r\n callback(null, {\r\n Rules: Rules,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction deleteBucketLifecycle(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketLifecycle',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'lifecycle',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction putBucketVersioning(params, callback) {\r\n\r\n if (!params['VersioningConfiguration']) {\r\n callback({error: 'missing param VersioningConfiguration'});\r\n return;\r\n }\r\n var VersioningConfiguration = params['VersioningConfiguration'] || {};\r\n var xml = util.json2xml({VersioningConfiguration: VersioningConfiguration});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketVersioning',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'versioning',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction getBucketVersioning(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketVersioning',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'versioning',\r\n }, function (err, data) {\r\n if (!err) {\r\n !data.VersioningConfiguration && (data.VersioningConfiguration = {});\r\n }\r\n callback(err, data);\r\n });\r\n}\r\n\r\nfunction putBucketReplication(params, callback) {\r\n var ReplicationConfiguration = util.clone(params.ReplicationConfiguration);\r\n var xml = util.json2xml({ReplicationConfiguration: ReplicationConfiguration});\r\n xml = xml.replace(/<(\\/?)Rules>/ig, '<$1Rule>');\r\n xml = xml.replace(/<(\\/?)Tags>/ig, '<$1Tag>');\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketReplication',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'replication',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\nfunction getBucketReplication(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketReplication',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'replication',\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode === 404 && err.error && (err.error === 'Not Found' || err.error.Code === 'ReplicationConfigurationnotFoundError')) {\r\n var result = {\r\n ReplicationConfiguration: {Rules: []},\r\n statusCode: err.statusCode,\r\n };\r\n err.headers && (result.headers = err.headers);\r\n callback(null, result);\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n if (!err) {\r\n !data.ReplicationConfiguration && (data.ReplicationConfiguration = {});\r\n }\r\n if (data.ReplicationConfiguration.Rule) {\r\n data.ReplicationConfiguration.Rules = data.ReplicationConfiguration.Rule;\r\n delete data.ReplicationConfiguration.Rule;\r\n }\r\n callback(err, data);\r\n });\r\n}\r\n\r\nfunction deleteBucketReplication(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketReplication',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'replication',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 设置 Bucket 静态网站配置信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Object} params.WebsiteConfiguration 地域名称,必须\r\n * @param {Object} WebsiteConfiguration.IndexDocument 索引文档,必须\r\n * @param {Object} WebsiteConfiguration.ErrorDocument 错误文档,非必须\r\n * @param {Object} WebsiteConfiguration.RedirectAllRequestsTo 重定向所有请求,非必须\r\n * @param {Array} params.RoutingRules 重定向规则,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction putBucketWebsite(params, callback) {\r\n\r\n if (!params['WebsiteConfiguration']) {\r\n callback({ error: 'missing param WebsiteConfiguration' });\r\n return;\r\n }\r\n\r\n var WebsiteConfiguration = util.clone(params['WebsiteConfiguration'] || {});\r\n var RoutingRules = WebsiteConfiguration['RoutingRules'] || WebsiteConfiguration['RoutingRule'] || [];\r\n RoutingRules = util.isArray(RoutingRules) ? RoutingRules : [RoutingRules];\r\n delete WebsiteConfiguration.RoutingRule;\r\n delete WebsiteConfiguration.RoutingRules;\r\n RoutingRules.length > 0 && (WebsiteConfiguration.RoutingRules = { RoutingRule: RoutingRules });\r\n var xml = util.json2xml({ WebsiteConfiguration: WebsiteConfiguration });\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutBucketWebsite',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'website',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 Bucket 的静态网站配置信息\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction getBucketWebsite(params, callback) {\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketWebsite',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n action: 'website',\r\n }, function (err, data) {\r\n if (err) {\r\n if(err.statusCode === 404 && err.error.Code === 'NoSuchWebsiteConfiguration'){\r\n var result = {\r\n WebsiteConfiguration: {},\r\n statusCode: err.statusCode,\r\n };\r\n err.headers && (result.headers = err.headers);\r\n callback(null, result);\r\n } else {\r\n callback(err);\r\n }\r\n return;\r\n }\r\n\r\n var WebsiteConfiguration = data.WebsiteConfiguration || {};\r\n if (WebsiteConfiguration['RoutingRules']) {\r\n var RoutingRules = util.clone(WebsiteConfiguration['RoutingRules'].RoutingRule || []);\r\n RoutingRules = util.makeArray(RoutingRules);\r\n WebsiteConfiguration.RoutingRules = RoutingRules;\r\n }\r\n\r\n callback(null, {\r\n WebsiteConfiguration: WebsiteConfiguration,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 删除 Bucket 的静态网站配置\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回数据\r\n */\r\nfunction deleteBucketWebsite(params, callback) {\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteBucketWebsite',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n action: 'website',\r\n }, function (err, data) {\r\n if (err && err.statusCode === 204) {\r\n return callback(null, {statusCode: err.statusCode});\r\n } else if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n// Object 相关\r\n\r\n/**\r\n * 取回对应Object的元数据,Head的权限与Get的权限一致\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {String} params.IfModifiedSince 当Object在指定时间后被修改,则返回对应Object元信息,否则返回304,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 为指定 object 的元数据,如果设置了 IfModifiedSince ,且文件未修改,则返回一个对象,NotModified 属性为 true\r\n * @return {Boolean} data.NotModified 是否在 IfModifiedSince 时间点之后未修改该 object,则为 true\r\n */\r\nfunction headObject(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:HeadObject',\r\n method: 'HEAD',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n VersionId: params.VersionId,\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n var statusCode = err.statusCode;\r\n if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\r\n return callback(null, {\r\n NotModified: true,\r\n statusCode: statusCode,\r\n });\r\n }\r\n return callback(err);\r\n }\r\n if (data.headers && data.headers.etag) {\r\n data.ETag = data.headers && data.headers.etag;\r\n }\r\n callback(null, data);\r\n });\r\n}\r\n\r\n\r\nfunction listObjectVersions(params, callback) {\r\n var reqParams = {};\r\n reqParams['prefix'] = params['Prefix'] || '';\r\n reqParams['delimiter'] = params['Delimiter'];\r\n reqParams['key-marker'] = params['KeyMarker'];\r\n reqParams['version-id-marker'] = params['VersionIdMarker'];\r\n reqParams['max-keys'] = params['MaxKeys'];\r\n reqParams['encoding-type'] = params['EncodingType'];\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetBucketObjectVersions',\r\n ResourceKey: reqParams['prefix'],\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n action: 'versions',\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var ListVersionsResult = data.ListVersionsResult || {};\r\n var DeleteMarkers = ListVersionsResult.DeleteMarker || [];\r\n DeleteMarkers = util.isArray(DeleteMarkers) ? DeleteMarkers : [DeleteMarkers];\r\n var Versions = ListVersionsResult.Version || [];\r\n Versions = util.isArray(Versions) ? Versions : [Versions];\r\n\r\n var result = util.clone(ListVersionsResult);\r\n delete result.DeleteMarker;\r\n delete result.Version;\r\n util.extend(result, {\r\n DeleteMarkers: DeleteMarkers,\r\n Versions: Versions,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 下载 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {WriteStream} params.Output 文件写入流,非必须\r\n * @param {String} params.IfModifiedSince 当Object在指定时间后被修改,则返回对应Object元信息,否则返回304,非必须\r\n * @param {String} params.IfUnmodifiedSince 如果文件修改时间早于或等于指定时间,才返回文件内容。否则返回 412 (precondition failed),非必须\r\n * @param {String} params.IfMatch 当 ETag 与指定的内容一致,才返回文件。否则返回 412 (precondition failed),非必须\r\n * @param {String} params.IfNoneMatch 当 ETag 与指定的内容不一致,才返回文件。否则返回304 (not modified),非必须\r\n * @param {String} params.ResponseContentType 设置返回头部中的 Content-Type 参数,非必须\r\n * @param {String} params.ResponseContentLanguage 设置返回头部中的 Content-Language 参数,非必须\r\n * @param {String} params.ResponseExpires 设置返回头部中的 Content-Expires 参数,非必须\r\n * @param {String} params.ResponseCacheControl 设置返回头部中的 Cache-Control 参数,非必须\r\n * @param {String} params.ResponseContentDisposition 设置返回头部中的 Content-Disposition 参数,非必须\r\n * @param {String} params.ResponseContentEncoding 设置返回头部中的 Content-Encoding 参数,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @param {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @param {Object} data 为对应的 object 数据,包括 body 和 headers\r\n */\r\nfunction getObject(params, callback) {\r\n var reqParams = {};\r\n\r\n reqParams['response-content-type'] = params['ResponseContentType'];\r\n reqParams['response-content-language'] = params['ResponseContentLanguage'];\r\n reqParams['response-expires'] = params['ResponseExpires'];\r\n reqParams['response-cache-control'] = params['ResponseCacheControl'];\r\n reqParams['response-content-disposition'] = params['ResponseContentDisposition'];\r\n reqParams['response-content-encoding'] = params['ResponseContentEncoding'];\r\n\r\n // 如果用户自己传入了 output\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetObject',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n VersionId: params.VersionId,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n rawBody: true,\r\n }, function (err, data) {\r\n if (err) {\r\n var statusCode = err.statusCode;\r\n if (params.Headers['If-Modified-Since'] && statusCode && statusCode === 304) {\r\n return callback(null, {\r\n NotModified: true\r\n });\r\n }\r\n return callback(err);\r\n }\r\n var result = {};\r\n result.Body = data.body;\r\n if (data.headers && data.headers.etag) {\r\n result.ETag = data.headers && data.headers.etag;\r\n }\r\n util.extend(result, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n\r\n}\r\n\r\n/**\r\n * 上传 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key 文件名称,必须\r\n * @param {File || Blob || String} params.Body 上传文件对象或字符串,必须\r\n * @param {String} params.CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节),必须\r\n * @param {String} params.ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存,非必须\r\n * @param {String} params.Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容,非必须\r\n * @param {String} params.Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ACL 允许用户自定义文件权限,有效值:private | public-read,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读取对象的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantReadAcp 赋予被授权者读取对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantWriteAcp 赋予被授权者写入对象的访问控制列表(ACL)的权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者操作对象的所有权限,格式:id=\"[OwnerUin]\",可使用半角逗号(,)分隔多组被授权者,非必须\r\n * @param {String} params.StorageClass 设置对象的存储级别,枚举值:STANDARD、STANDARD_IA、ARCHIVE,默认值:STANDARD,非必须\r\n * @param {String} params.x-cos-meta-* 允许用户自定义的头部信息,将作为对象的元数据保存。大小限制2KB,非必须\r\n * @param {String} params.ContentSha1 RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {Function} params.onProgress 上传进度回调函数\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 为对应的 object 数据\r\n * @return {String} data.ETag 为对应上传文件的 ETag 值\r\n */\r\nfunction putObject(params, callback) {\r\n var self = this;\r\n var FileSize = params.ContentLength;\r\n var onProgress = util.throttleOnProgress.call(self, FileSize, params.onProgress);\r\n\r\n // 特殊处理 Cache-Control\r\n var headers = params.Headers;\r\n !headers['Cache-Control'] && (headers['Cache-Control'] = '');\r\n\r\n // 获取 File 或 Blob 的 type 属性,如果有,作为文件 Content-Type\r\n var ContentType = headers['Content-Type'] || (params.Body && params.Body.type);\r\n !headers['Content-Type'] && ContentType && (headers['Content-Type'] = ContentType);\r\n\r\n var needCalcMd5 = params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5 || self.options.UploadCheckContentMd5;\r\n util.getBodyMd5(needCalcMd5, params.Body, function (md5) {\r\n if (md5) {\r\n if (self.options.UploadCheckContentMd5) params.Headers['Content-MD5'] = util.binaryBase64(md5);\r\n if (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5) params.Headers['x-cos-meta-md5'] = md5;\r\n }\r\n\r\n if (params.ContentLength !== undefined) {\r\n params.Headers['Content-Length'] = params.ContentLength;\r\n }\r\n onProgress(null, true); // 任务状态开始 uploading\r\n submitRequest.call(self, {\r\n Action: 'name/cos:PutObject',\r\n TaskId: params.TaskId,\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n body: params.Body,\r\n onProgress: onProgress,\r\n }, function (err, data) {\r\n if (err) {\r\n onProgress(null, true);\r\n return callback(err);\r\n }\r\n onProgress({loaded: FileSize, total: FileSize}, true);\r\n if (data) {\r\n var url = getUrl({\r\n ForcePathStyle: self.options.ForcePathStyle,\r\n protocol: self.options.Protocol,\r\n domain: self.options.Domain,\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n object: params.Key,\r\n });\r\n url = url.substr(url.indexOf('://') + 3);\r\n var result = {\r\n Location: url,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n };\r\n if (data.headers && data.headers.etag) {\r\n result.ETag = data.headers.etag;\r\n }\r\n return callback(null, result);\r\n }\r\n callback(null, data);\r\n });\r\n }, params.onHashProgress);\r\n}\r\n\r\n/**\r\n * 删除 object\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @param {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @param {Object} data 删除操作成功之后返回的数据\r\n */\r\nfunction deleteObject(params, callback) {\r\n submitRequest.call(this, {\r\n Action: 'name/cos:DeleteObject',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n VersionId: params.VersionId,\r\n }, function (err, data) {\r\n if (err) {\r\n var statusCode = err.statusCode;\r\n if (statusCode && statusCode === 204) {\r\n return callback(null, {statusCode: statusCode});\r\n } else if (statusCode && statusCode === 404) {\r\n return callback(null, {BucketNotFound: true, statusCode: statusCode,});\r\n } else {\r\n return callback(err);\r\n }\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取 object 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.AccessControlPolicy 权限列表\r\n */\r\nfunction getObjectAcl(params, callback) {\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:GetObjectACL',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n action: 'acl',\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var AccessControlPolicy = data.AccessControlPolicy || {};\r\n var Owner = AccessControlPolicy.Owner || {};\r\n var Grant = AccessControlPolicy.AccessControlList && AccessControlPolicy.AccessControlList.Grant || [];\r\n Grant = util.isArray(Grant) ? Grant : [Grant];\r\n var result = decodeAcl(AccessControlPolicy);\r\n if (data.headers && data.headers['x-cos-acl']) {\r\n result.ACL = data.headers['x-cos-acl'];\r\n }\r\n result = util.extend(result, {\r\n Owner: Owner,\r\n Grants: Grant,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 设置 object 的 权限列表\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction putObjectAcl(params, callback) {\r\n var headers = params.Headers;\r\n\r\n var xml = '';\r\n if (params['AccessControlPolicy']) {\r\n var AccessControlPolicy = util.clone(params['AccessControlPolicy'] || {});\r\n var Grants = AccessControlPolicy.Grants || AccessControlPolicy.Grant;\r\n Grants = util.isArray(Grants) ? Grants : [Grants];\r\n delete AccessControlPolicy.Grant;\r\n delete AccessControlPolicy.Grants;\r\n AccessControlPolicy.AccessControlList = {Grant: Grants};\r\n xml = util.json2xml({AccessControlPolicy: AccessControlPolicy});\r\n\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n }\r\n\r\n // Grant Header 去重\r\n util.each(headers, function (val, key) {\r\n if (key.indexOf('x-cos-grant-') === 0) {\r\n headers[key] = uniqGrant(headers[key]);\r\n }\r\n });\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:PutObjectACL',\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n action: 'acl',\r\n headers: headers,\r\n body: xml,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * Options Object请求实现跨域访问的预请求。即发出一个 OPTIONS 请求给服务器以确认是否可以进行跨域操作。\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction optionsObject(params, callback) {\r\n\r\n var headers = params.Headers;\r\n headers['Origin'] = params['Origin'];\r\n headers['Access-Control-Request-Method'] = params['AccessControlRequestMethod'];\r\n headers['Access-Control-Request-Headers'] = params['AccessControlRequestHeaders'];\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:OptionsObject',\r\n method: 'OPTIONS',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err) {\r\n if (err.statusCode && err.statusCode === 403) {\r\n return callback(null, {\r\n OptionsForbidden: true,\r\n statusCode: err.statusCode\r\n });\r\n }\r\n return callback(err);\r\n }\r\n\r\n var headers = data.headers || {};\r\n callback(null, {\r\n AccessControlAllowOrigin: headers['access-control-allow-origin'],\r\n AccessControlAllowMethods: headers['access-control-allow-methods'],\r\n AccessControlAllowHeaders: headers['access-control-allow-headers'],\r\n AccessControlExposeHeaders: headers['access-control-expose-headers'],\r\n AccessControlMaxAge: headers['access-control-max-age'],\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * @param {Object} 参数列表\r\n * @param {String} Bucket Bucket 名称\r\n * @param {String} Region 地域名称\r\n * @param {String} Key 文件名称\r\n * @param {String} CopySource 源文件URL绝对路径,可以通过versionid子资源指定历史版本\r\n * @param {String} ACL 允许用户自定义文件权限。有效值:private,public-read默认值:private。\r\n * @param {String} GrantRead 赋予被授权者读的权限,格式 x-cos-grant-read: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} GrantWrite 赋予被授权者写的权限,格式 x-cos-grant-write: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} GrantFullControl 赋予被授权者读写权限,格式 x-cos-grant-full-control: uin=\" \",uin=\" \",当需要给子账户授权时,uin=\"RootAcountID/SubAccountID\",当需要给根账户授权时,uin=\"RootAcountID\"。\r\n * @param {String} MetadataDirective 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced\r\n * @param {String} CopySourceIfModifiedSince 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfUnmodifiedSince 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfMatch 当Object的Etag和给定一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} CopySourceIfNoneMatch 当Object的Etag和给定不一致时,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。\r\n * @param {String} StorageClass 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Archive;默认值:Standard\r\n * @param {String} CacheControl 指定所有缓存机制在整个请求/响应链中必须服从的指令。\r\n * @param {String} ContentDisposition MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件\r\n * @param {String} ContentEncoding HTTP 中用来对「采用何种编码格式传输正文」进行协定的一对头部字段\r\n * @param {String} ContentLength 设置响应消息的实体内容的大小,单位为字节\r\n * @param {String} ContentType RFC 2616 中定义的 HTTP 请求内容类型(MIME),例如text/plain\r\n * @param {String} Expect 请求的特定的服务器行为\r\n * @param {String} Expires 响应过期的日期和时间\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {String} ContentLanguage 指定内容语言\r\n * @param {String} x-cos-meta-* 允许用户自定义的头部信息,将作为 Object 元数据返回。大小限制2K。\r\n */\r\nfunction putObjectCopy(params, callback) {\r\n\r\n // 特殊处理 Cache-Control\r\n var headers = params.Headers;\r\n !headers['Cache-Control'] && (headers['Cache-Control'] = '');\r\n\r\n var CopySource = params.CopySource || '';\r\n var m = CopySource.match(/^([^.]+-\\d+)\\.cos(v6)?\\.([^.]+)\\.[^/]+\\/(.+)$/);\r\n if (!m) {\r\n callback({error: 'CopySource format error'});\r\n return;\r\n }\r\n\r\n var SourceBucket = m[1];\r\n var SourceRegion = m[3];\r\n var SourceKey = decodeURIComponent(m[4]);\r\n\r\n submitRequest.call(this, {\r\n Scope: [{\r\n action: 'name/cos:GetObject',\r\n bucket: SourceBucket,\r\n region: SourceRegion,\r\n prefix: SourceKey,\r\n }, {\r\n action: 'name/cos:PutObject',\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n prefix: params.Key,\r\n }],\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n VersionId: params.VersionId,\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var result = util.clone(data.CopyObjectResult || {});\r\n util.extend(result, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\nfunction uploadPartCopy(params, callback) {\r\n\r\n var CopySource = params.CopySource || '';\r\n var m = CopySource.match(/^([^.]+-\\d+)\\.cos(v6)?\\.([^.]+)\\.[^/]+\\/(.+)$/);\r\n if (!m) {\r\n callback({error: 'CopySource format error'});\r\n return;\r\n }\r\n\r\n var SourceBucket = m[1];\r\n var SourceRegion = m[3];\r\n var SourceKey = decodeURIComponent(m[4]);\r\n\r\n submitRequest.call(this, {\r\n Scope: [{\r\n action: 'name/cos:GetObject',\r\n bucket: SourceBucket,\r\n region: SourceRegion,\r\n prefix: SourceKey,\r\n }, {\r\n action: 'name/cos:PutObject',\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n prefix: params.Key,\r\n }],\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n VersionId: params.VersionId,\r\n qs: {\r\n partNumber: params['PartNumber'],\r\n uploadId: params['UploadId'],\r\n },\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var result = util.clone(data.CopyPartResult || {});\r\n util.extend(result, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\nfunction deleteMultipleObject(params, callback) {\r\n var Objects = params.Objects || [];\r\n var Quiet = params.Quiet;\r\n Objects = util.isArray(Objects) ? Objects : [Objects];\r\n\r\n var xml = util.json2xml({Delete: {Object: Objects, Quiet: Quiet || false}});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n var Scope = util.map(Objects, function (v) {\r\n return {\r\n action: 'name/cos:DeleteObject',\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n prefix: v.Key,\r\n };\r\n });\r\n\r\n submitRequest.call(this, {\r\n Scope: Scope,\r\n method: 'POST',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n body: xml,\r\n action: 'delete',\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var DeleteResult = data.DeleteResult || {};\r\n var Deleted = DeleteResult.Deleted || [];\r\n var Errors = DeleteResult.Error || [];\r\n\r\n Deleted = util.isArray(Deleted) ? Deleted : [Deleted];\r\n Errors = util.isArray(Errors) ? Errors : [Errors];\r\n\r\n var result = util.clone(DeleteResult);\r\n util.extend(result, {\r\n Error: Errors,\r\n Deleted: Deleted,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\nfunction restoreObject(params, callback) {\r\n var headers = params.Headers;\r\n if (!params['RestoreRequest']) {\r\n callback({error: 'missing param RestoreRequest'});\r\n return;\r\n }\r\n\r\n var RestoreRequest = params.RestoreRequest || {};\r\n var xml = util.json2xml({RestoreRequest: RestoreRequest});\r\n\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:RestoreObject',\r\n method: 'POST',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n VersionId: params.VersionId,\r\n body: xml,\r\n action: 'restore',\r\n headers: headers,\r\n }, function (err, data) {\r\n callback(err, data);\r\n });\r\n}\r\n\r\n\r\n// 分块上传\r\n\r\n\r\n/**\r\n * 初始化分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId object名称,必须\r\n * @param {String} params.CacheControl RFC 2616 中定义的缓存策略,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentDisposition RFC 2616 中定义的文件名称,将作为 Object 元数据保存 ,非必须\r\n * @param {String} params.ContentEncoding RFC 2616 中定义的编码格式,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ContentType RFC 2616 中定义的内容类型(MIME),将作为 Object 元数据保存,非必须\r\n * @param {String} params.Expires RFC 2616 中定义的过期时间,将作为 Object 元数据保存,非必须\r\n * @param {String} params.ACL 允许用户自定义文件权限,非必须\r\n * @param {String} params.GrantRead 赋予被授权者读的权限 ,非必须\r\n * @param {String} params.GrantWrite 赋予被授权者写的权限 ,非必须\r\n * @param {String} params.GrantFullControl 赋予被授权者读写权限 ,非必须\r\n * @param {String} params.StorageClass 设置Object的存储级别,枚举值:Standard,Standard_IA,Archive,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction multipartInit(params, callback) {\r\n\r\n var self = this;\r\n // 特殊处理 Cache-Control\r\n var headers = params.Headers;\r\n !headers['Cache-Control'] && (headers['Cache-Control'] = '');\r\n util.getBodyMd5(params.Body && (params.UploadAddMetaMd5 || self.options.UploadAddMetaMd5), params.Body, function (md5) {\r\n if (md5) params.Headers['x-cos-meta-md5'] = md5;\r\n submitRequest.call(self, {\r\n Action: 'name/cos:InitiateMultipartUpload',\r\n method: 'POST',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n action: 'uploads',\r\n headers: params.Headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n data = util.clone(data || {});\r\n if (data && data.InitiateMultipartUploadResult) {\r\n return callback(null, util.extend(data.InitiateMultipartUploadResult, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n }));\r\n }\r\n callback(null, data);\r\n });\r\n }, params.onHashProgress);\r\n}\r\n\r\n/**\r\n * 分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {File || Blob || String} params.Body 上传文件对象或字符串\r\n * @param {String} params.ContentLength RFC 2616 中定义的 HTTP 请求内容长度(字节),非必须\r\n * @param {String} params.Expect 当使用 Expect: 100-continue 时,在收到服务端确认后,才会发送请求内容,非必须\r\n * @param {String} params.ServerSideEncryption 支持按照指定的加密算法进行服务端数据加密,格式 x-cos-server-side-encryption: \"AES256\",非必须\r\n * @param {String} params.ContentSha1 RFC 3174 中定义的 160-bit 内容 SHA-1 算法校验值,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ETag 返回的文件分块 sha1 值\r\n */\r\nfunction multipartUpload(params, callback) {\r\n\r\n var self = this;\r\n util.getFileSize('multipartUpload', params, function () {\r\n util.getBodyMd5(self.options.UploadCheckContentMd5, params.Body, function (md5) {\r\n if (md5) params.Headers['Content-MD5'] = util.binaryBase64(md5);\r\n submitRequest.call(self, {\r\n Action: 'name/cos:UploadPart',\r\n TaskId: params.TaskId,\r\n method: 'PUT',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n qs: {\r\n partNumber: params['PartNumber'],\r\n uploadId: params['UploadId'],\r\n },\r\n headers: params.Headers,\r\n onProgress: params.onProgress,\r\n body: params.Body || null\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n data['headers'] = data['headers'] || {};\r\n callback(null, {\r\n ETag: data['headers']['etag'] || '',\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n });\r\n });\r\n\r\n}\r\n\r\n/**\r\n * 完成分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {Array} params.Parts 分块信息列表,必须\r\n * @param {String} params.Parts[i].PartNumber 块编号,必须\r\n * @param {String} params.Parts[i].ETag 分块的 sha1 校验值\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.CompleteMultipartUpload 完成分块上传后的文件信息,包括Location, Bucket, Key 和 ETag\r\n */\r\nfunction multipartComplete(params, callback) {\r\n var self = this;\r\n\r\n var UploadId = params.UploadId;\r\n\r\n var Parts = params['Parts'];\r\n\r\n for (var i = 0, len = Parts.length; i < len; i++) {\r\n if (Parts[i]['ETag'].indexOf('\"') === 0) {\r\n continue;\r\n }\r\n Parts[i]['ETag'] = '\"' + Parts[i]['ETag'] + '\"';\r\n }\r\n\r\n var xml = util.json2xml({CompleteMultipartUpload: {Part: Parts}});\r\n\r\n var headers = params.Headers;\r\n headers['Content-Type'] = 'application/xml';\r\n headers['Content-MD5'] = util.binaryBase64(util.md5(xml));\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:CompleteMultipartUpload',\r\n method: 'POST',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n qs: {\r\n uploadId: UploadId\r\n },\r\n body: xml,\r\n headers: headers,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var url = getUrl({\r\n ForcePathStyle: self.options.ForcePathStyle,\r\n protocol: self.options.Protocol,\r\n domain: self.options.Domain,\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n object: params.Key,\r\n isLocation: true,\r\n });\r\n var CompleteMultipartUploadResult = data.CompleteMultipartUploadResult || {};\r\n var result = util.extend(CompleteMultipartUploadResult, {\r\n Location: url,\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 分块上传任务列表查询\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Delimiter 定界符为一个符号,如果有Prefix,则将Prefix到delimiter之间的相同路径归为一类,定义为Common Prefix,然后列出所有Common Prefix。如果没有Prefix,则从路径起点开始,非必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {String} params.Prefix 前缀匹配,用来规定返回的文件前缀地址,非必须\r\n * @param {String} params.MaxUploads 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.KeyMarker 与upload-id-marker一起使用
当upload-id-marker未被指定时,ObjectName字母顺序大于key-marker的条目将被列出
当upload-id-marker被指定时,ObjectName字母顺序大于key-marker的条目被列出,ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出,非必须\r\n * @param {String} params.UploadIdMarker 与key-marker一起使用
当key-marker未被指定时,upload-id-marker将被忽略
当key-marker被指定时,ObjectName字母顺序大于key-marker的条目被列出,ObjectName字母顺序等于key-marker同时UploadId大于upload-id-marker的条目将被列出,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListMultipartUploadsResult 分块上传任务信息\r\n */\r\nfunction multipartList(params, callback) {\r\n var reqParams = {};\r\n\r\n reqParams['delimiter'] = params['Delimiter'];\r\n reqParams['encoding-type'] = params['EncodingType'];\r\n reqParams['prefix'] = params['Prefix'] || '';\r\n\r\n reqParams['max-uploads'] = params['MaxUploads'];\r\n\r\n reqParams['key-marker'] = params['KeyMarker'];\r\n reqParams['upload-id-marker'] = params['UploadIdMarker'];\r\n\r\n reqParams = util.clearKey(reqParams);\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:ListMultipartUploads',\r\n ResourceKey: reqParams['prefix'],\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n action: 'uploads',\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n\r\n if (data && data.ListMultipartUploadsResult) {\r\n var Upload = data.ListMultipartUploadsResult.Upload || [];\r\n\r\n var CommonPrefixes = data.ListMultipartUploadsResult.CommonPrefixes || [];\r\n\r\n CommonPrefixes = util.isArray(CommonPrefixes) ? CommonPrefixes : [CommonPrefixes];\r\n Upload = util.isArray(Upload) ? Upload : [Upload];\r\n\r\n data.ListMultipartUploadsResult.Upload = Upload;\r\n data.ListMultipartUploadsResult.CommonPrefixes = CommonPrefixes;\r\n }\r\n var result = util.clone(data.ListMultipartUploadsResult || {});\r\n util.extend(result, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 上传的分块列表查询\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId 标示本次分块上传的ID,必须\r\n * @param {String} params.EncodingType 规定返回值的编码方式,非必须\r\n * @param {String} params.MaxParts 单次返回最大的条目数量,默认1000,非必须\r\n * @param {String} params.PartNumberMarker 默认以UTF-8二进制顺序列出条目,所有列出条目从marker开始,非必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n * @return {Object} data.ListMultipartUploadsResult 分块信息\r\n */\r\nfunction multipartListPart(params, callback) {\r\n var reqParams = {};\r\n\r\n reqParams['uploadId'] = params['UploadId'];\r\n reqParams['encoding-type'] = params['EncodingType'];\r\n reqParams['max-parts'] = params['MaxParts'];\r\n reqParams['part-number-marker'] = params['PartNumberMarker'];\r\n\r\n submitRequest.call(this, {\r\n Action: 'name/cos:ListParts',\r\n method: 'GET',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n var ListPartsResult = data.ListPartsResult || {};\r\n var Part = ListPartsResult.Part || [];\r\n Part = util.isArray(Part) ? Part : [Part];\r\n\r\n ListPartsResult.Part = Part;\r\n var result = util.clone(ListPartsResult);\r\n util.extend(result, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n callback(null, result);\r\n });\r\n}\r\n\r\n/**\r\n * 抛弃分块上传\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.UploadId 标示本次分块上传的ID,必须\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction multipartAbort(params, callback) {\r\n var reqParams = {};\r\n\r\n reqParams['uploadId'] = params['UploadId'];\r\n submitRequest.call(this, {\r\n Action: 'name/cos:AbortMultipartUpload',\r\n method: 'DELETE',\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n headers: params.Headers,\r\n qs: reqParams,\r\n }, function (err, data) {\r\n if (err) {\r\n return callback(err);\r\n }\r\n callback(null, {\r\n statusCode: data.statusCode,\r\n headers: data.headers,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * 获取签名\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Method 请求方法,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.Expires 名超时时间,单位秒,可选\r\n * @return {String} data 返回签名字符串\r\n */\r\nfunction getAuth(params) {\r\n var self = this;\r\n return util.getAuth({\r\n SecretId: params.SecretId || this.options.SecretId || '',\r\n SecretKey: params.SecretKey || this.options.SecretKey || '',\r\n Method: params.Method,\r\n Key: params.Key,\r\n Query: params.Query,\r\n Headers: params.Headers,\r\n Expires: params.Expires,\r\n UseRawKey: self.options.UseRawKey,\r\n SystemClockOffset: self.options.SystemClockOffset,\r\n });\r\n}\r\n\r\n/**\r\n * 获取文件下载链接\r\n * @param {Object} params 参数对象,必须\r\n * @param {String} params.Bucket Bucket名称,必须\r\n * @param {String} params.Region 地域名称,必须\r\n * @param {String} params.Key object名称,必须\r\n * @param {String} params.Method 请求的方法,可选\r\n * @param {String} params.Expires 签名超时时间,单位秒,可选\r\n * @param {Function} callback 回调函数,必须\r\n * @return {Object} err 请求失败的错误,如果请求成功,则为空。https://cloud.tencent.com/document/product/436/7730\r\n * @return {Object} data 返回的数据\r\n */\r\nfunction getObjectUrl(params, callback) {\r\n var self = this;\r\n var url = getUrl({\r\n ForcePathStyle: self.options.ForcePathStyle,\r\n protocol: params.Protocol || self.options.Protocol,\r\n domain: self.options.Domain,\r\n bucket: params.Bucket,\r\n region: params.Region,\r\n object: params.Key,\r\n });\r\n if (params.Sign !== undefined && !params.Sign) {\r\n callback(null, {Url: url});\r\n return url;\r\n }\r\n var AuthData = getAuthorizationAsync.call(this, {\r\n Action: ((params.Method || '').toUpperCase() === 'PUT' ? 'name/cos:PutObject' : 'name/cos:GetObject'),\r\n Bucket: params.Bucket || '',\r\n Region: params.Region || '',\r\n Method: params.Method || 'get',\r\n Key: params.Key,\r\n Expires: params.Expires,\r\n }, function (err, AuthData) {\r\n if (!callback) return;\r\n if (err) {\r\n callback(err);\r\n return;\r\n }\r\n var signUrl = url;\r\n signUrl += '?' + (AuthData.Authorization.indexOf('q-signature') > -1 ?\r\n AuthData.Authorization : 'sign=' + encodeURIComponent(AuthData.Authorization));\r\n AuthData.XCosSecurityToken && (signUrl += '&x-cos-security-token=' + AuthData.XCosSecurityToken);\r\n AuthData.ClientIP && (signUrl += '&clientIP=' + AuthData.ClientIP);\r\n AuthData.ClientUA && (signUrl += '&clientUA=' + AuthData.ClientUA);\r\n AuthData.Token && (signUrl += '&token=' + AuthData.Token);\r\n setTimeout(function () {\r\n callback(null, {Url: signUrl});\r\n });\r\n });\r\n if (AuthData) {\r\n return url + '?' + AuthData.Authorization +\r\n (AuthData.XCosSecurityToken ? '&x-cos-security-token=' + AuthData.XCosSecurityToken : '');\r\n } else {\r\n return url;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * 私有方法\r\n */\r\nfunction decodeAcl(AccessControlPolicy) {\r\n var result = {\r\n GrantFullControl: [],\r\n GrantWrite: [],\r\n GrantRead: [],\r\n GrantReadAcp: [],\r\n GrantWriteAcp: [],\r\n ACL: '',\r\n };\r\n var GrantMap = {\r\n 'FULL_CONTROL': 'GrantFullControl',\r\n 'WRITE': 'GrantWrite',\r\n 'READ': 'GrantRead',\r\n 'READ_ACP': 'GrantReadAcp',\r\n 'WRITE_ACP': 'GrantWriteAcp',\r\n };\r\n var AccessControlList = AccessControlPolicy && AccessControlPolicy.AccessControlList || {};\r\n var Grant = AccessControlList.Grant;\r\n if (Grant) {\r\n Grant = util.isArray(Grant) ? Grant : [Grant];\r\n }\r\n var PublicAcl = {READ: 0, WRITE: 0, FULL_CONTROL: 0};\r\n Grant && Grant.length && util.each(Grant, function (item) {\r\n if (item.Grantee.ID === 'qcs::cam::anyone:anyone' || item.Grantee.URI === 'http://cam.qcloud.com/groups/global/AllUsers') {\r\n PublicAcl[item.Permission] = 1;\r\n } else if (item.Grantee.ID !== AccessControlPolicy.Owner.ID) {\r\n result[GrantMap[item.Permission]].push('id=\"' + item.Grantee.ID + '\"');\r\n }\r\n });\r\n if (PublicAcl.FULL_CONTROL || (PublicAcl.WRITE && PublicAcl.READ)) {\r\n result.ACL = 'public-read-write';\r\n } else if (PublicAcl.READ) {\r\n result.ACL = 'public-read';\r\n } else {\r\n result.ACL = 'private';\r\n }\r\n util.each(GrantMap, function (item) {\r\n result[item] = uniqGrant(result[item].join(','));\r\n });\r\n return result;\r\n}\r\n\r\n// Grant 去重\r\nfunction uniqGrant(str) {\r\n var arr = str.split(',');\r\n var exist = {};\r\n var i, item;\r\n for (i = 0; i < arr.length; ) {\r\n item = arr[i].trim();\r\n if (exist[item]) {\r\n arr.splice(i, 1);\r\n } else {\r\n exist[item] = true;\r\n arr[i] = item;\r\n i++;\r\n }\r\n }\r\n return arr.join(',');\r\n}\r\n\r\n// 生成操作 url\r\nfunction getUrl(params) {\r\n var longBucket = params.bucket;\r\n var shortBucket = longBucket.substr(0, longBucket.lastIndexOf('-'));\r\n var appId = longBucket.substr(longBucket.lastIndexOf('-') + 1);\r\n var domain = params.domain;\r\n var region = params.region;\r\n var object = params.object;\r\n var protocol = params.protocol || (util.isBrowser && location.protocol === 'http:' ? 'http:' : 'https:');\r\n if (!domain) {\r\n if (['cn-south', 'cn-south-2', 'cn-north', 'cn-east', 'cn-southwest', 'sg'].indexOf(region) > -1) {\r\n domain = '{Region}.myqcloud.com';\r\n } else {\r\n domain = 'cos.{Region}.myqcloud.com';\r\n }\r\n if (!params.ForcePathStyle) {\r\n domain = '{Bucket}.' + domain;\r\n }\r\n }\r\n domain = domain.replace(/\\{\\{AppId\\}\\}/ig, appId)\r\n .replace(/\\{\\{Bucket\\}\\}/ig, shortBucket)\r\n .replace(/\\{\\{Region\\}\\}/ig, region)\r\n .replace(/\\{\\{.*?\\}\\}/ig, '');\r\n domain = domain.replace(/\\{AppId\\}/ig, appId)\r\n .replace(/\\{BucketName\\}/ig, shortBucket)\r\n .replace(/\\{Bucket\\}/ig, longBucket)\r\n .replace(/\\{Region\\}/ig, region)\r\n .replace(/\\{.*?\\}/ig, '');\r\n if (!/^[a-zA-Z]+:\\/\\//.test(domain)) {\r\n domain = protocol + '//' + domain;\r\n }\r\n\r\n // 去掉域名最后的斜杆\r\n if (domain.slice(-1) === '/') {\r\n domain = domain.slice(0, -1);\r\n }\r\n var url = domain;\r\n\r\n if (params.ForcePathStyle) {\r\n url += '/' + longBucket;\r\n }\r\n url += '/';\r\n if (object) {\r\n url += util.camSafeUrlEncode(object).replace(/%2F/g, '/');\r\n }\r\n\r\n if (params.isLocation) {\r\n url = url.replace(/^https?:\\/\\//, '');\r\n }\r\n return url;\r\n}\r\n\r\n// 异步获取签名\r\nfunction getAuthorizationAsync(params, callback) {\r\n\r\n var headers = util.clone(params.Headers);\r\n delete headers['Content-Type'];\r\n delete headers['Cache-Control'];\r\n util.each(headers, function (v, k) {\r\n v === '' && delete headers[k];\r\n });\r\n\r\n var cb = function (AuthData) {\r\n\r\n // 检查签名格式\r\n var formatAllow = false;\r\n var auth = AuthData.Authorization;\r\n if (auth) {\r\n if (auth.indexOf(' ') > -1) {\r\n formatAllow = false;\r\n } else if (auth.indexOf('q-sign-algorithm=') > -1 &&\r\n auth.indexOf('q-ak=') > -1 &&\r\n auth.indexOf('q-sign-time=') > -1 &&\r\n auth.indexOf('q-key-time=') > -1 &&\r\n auth.indexOf('q-url-param-list=') > -1) {\r\n formatAllow = true;\r\n } else {\r\n try {\r\n auth = atob(auth);\r\n if (auth.indexOf('a=') > -1 &&\r\n auth.indexOf('k=') > -1 &&\r\n auth.indexOf('t=') > -1 &&\r\n auth.indexOf('r=') > -1 &&\r\n auth.indexOf('b=') > -1) {\r\n formatAllow = true;\r\n }\r\n } catch (e) {}\r\n }\r\n }\r\n if (formatAllow) {\r\n callback && callback(null, AuthData);\r\n } else {\r\n callback && callback('authorization error');\r\n }\r\n };\r\n\r\n var self = this;\r\n var Bucket = params.Bucket || '';\r\n var Region = params.Region || '';\r\n\r\n // PathName\r\n var KeyName = params.Key || '';\r\n if (self.options.ForcePathStyle && Bucket) {\r\n KeyName = Bucket + '/' + KeyName;\r\n }\r\n var Pathname = '/' + KeyName;\r\n\r\n // Action、ResourceKey\r\n var StsData = {};\r\n var Scope = params.Scope;\r\n if (!Scope) {\r\n var Action = params.Action || '';\r\n var ResourceKey = params.ResourceKey || params.Key || '';\r\n Scope = params.Scope || [{\r\n action: Action,\r\n bucket: Bucket,\r\n region: Region,\r\n prefix: ResourceKey,\r\n }];\r\n }\r\n var ScopeKey = util.md5(JSON.stringify(Scope));\r\n\r\n // STS\r\n self._StsCache = self._StsCache ||[];\r\n (function () {\r\n var i, AuthData;\r\n for (i = self._StsCache.length - 1; i >= 0; i--) {\r\n AuthData = self._StsCache[i];\r\n var compareTime = Math.round(util.getSkewTime(self.options.SystemClockOffset) / 1000) + 30;\r\n if (AuthData.StartTime && compareTime < AuthData.StartTime || compareTime >= AuthData.ExpiredTime) {\r\n self._StsCache.splice(i, 1);\r\n continue;\r\n }\r\n if (!AuthData.ScopeLimit || AuthData.ScopeLimit && AuthData.ScopeKey === ScopeKey) {\r\n StsData = AuthData;\r\n break;\r\n }\r\n }\r\n })();\r\n\r\n var calcAuthByTmpKey = function () {\r\n var KeyTime = StsData.StartTime && StsData.ExpiredTime ? StsData.StartTime + ';' + StsData.ExpiredTime : '';\r\n var Authorization = util.getAuth({\r\n SecretId: StsData.TmpSecretId,\r\n SecretKey: StsData.TmpSecretKey,\r\n Method: params.Method,\r\n Pathname: Pathname,\r\n Query: params.Query,\r\n Headers: headers,\r\n Expires: params.Expires,\r\n UseRawKey: self.options.UseRawKey,\r\n SystemClockOffset: self.options.SystemClockOffset,\r\n KeyTime: KeyTime\r\n });\r\n var AuthData = {\r\n Authorization: Authorization,\r\n XCosSecurityToken: StsData.XCosSecurityToken || '',\r\n Token: StsData.Token || '',\r\n ClientIP: StsData.ClientIP || '',\r\n ClientUA: StsData.ClientUA || '',\r\n };\r\n cb(AuthData);\r\n };\r\n\r\n // 先判断是否有临时密钥\r\n if (StsData.ExpiredTime && StsData.ExpiredTime - (util.getSkewTime(self.options.SystemClockOffset) / 1000) > 60) { // 如果缓存的临时密钥有效,并还有超过60秒有效期就直接使用\r\n calcAuthByTmpKey();\r\n } else if (self.options.getAuthorization) { // 外部计算签名或获取临时密钥\r\n self.options.getAuthorization.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n Method: params.Method,\r\n Key: KeyName,\r\n Pathname: Pathname,\r\n Query: params.Query,\r\n Headers: headers,\r\n Scope: Scope,\r\n }, function (AuthData) {\r\n if (typeof AuthData === 'string') {\r\n AuthData = {Authorization: AuthData};\r\n }\r\n if (AuthData.TmpSecretId &&\r\n AuthData.TmpSecretKey &&\r\n AuthData.XCosSecurityToken &&\r\n AuthData.ExpiredTime) {\r\n StsData = AuthData || {};\r\n StsData.Scope = Scope;\r\n StsData.ScopeKey = ScopeKey;\r\n self._StsCache.push(StsData);\r\n calcAuthByTmpKey();\r\n } else {\r\n cb(AuthData);\r\n }\r\n });\r\n } else if (self.options.getSTS) { // 外部获取临时密钥\r\n self.options.getSTS.call(self, {\r\n Bucket: Bucket,\r\n Region: Region,\r\n }, function (data) {\r\n StsData = data || {};\r\n StsData.Scope = Scope;\r\n StsData.ScopeKey = ScopeKey;\r\n StsData.TmpSecretId = StsData.SecretId;\r\n StsData.TmpSecretKey = StsData.SecretKey;\r\n self._StsCache.push(StsData);\r\n calcAuthByTmpKey();\r\n });\r\n } else { // 内部计算获取签名\r\n return (function () {\r\n var Authorization = util.getAuth({\r\n SecretId: params.SecretId || self.options.SecretId,\r\n SecretKey: params.SecretKey || self.options.SecretKey,\r\n Method: params.Method,\r\n Pathname: Pathname,\r\n Query: params.Query,\r\n Headers: headers,\r\n Expires: params.Expires,\r\n UseRawKey: self.options.UseRawKey,\r\n SystemClockOffset: self.options.SystemClockOffset,\r\n });\r\n var AuthData = {\r\n Authorization: Authorization,\r\n XCosSecurityToken: self.options.XCosSecurityToken,\r\n };\r\n cb(AuthData);\r\n return AuthData;\r\n })();\r\n }\r\n return '';\r\n}\r\n\r\n// 调整时间偏差\r\nfunction allowRetry(err) {\r\n var allowRetry = false;\r\n var isTimeError = false;\r\n var serverDate = (err.headers && (err.headers.date || err.headers.Date)) || (err.error && err.error.ServerTime);\r\n try {\r\n var errorCode = err.error.Code;\r\n var errorMessage = err.error.Message;\r\n if (errorCode === 'RequestTimeTooSkewed' ||\r\n (errorCode === 'AccessDenied' && errorMessage === 'Request has expired')) {\r\n isTimeError = true;\r\n }\r\n } catch (e) {\r\n }\r\n if (err) {\r\n if (isTimeError && serverDate) {\r\n var serverTime = Date.parse(serverDate);\r\n if (this.options.CorrectClockSkew && Math.abs(util.getSkewTime(this.options.SystemClockOffset) - serverTime) >= 30000) {\r\n console.error('error: Local time is too skewed.');\r\n this.options.SystemClockOffset = serverTime - Date.now();\r\n allowRetry = true;\r\n }\r\n } else if (Math.round(err.statusCode / 100) === 5) {\r\n allowRetry = true;\r\n }\r\n }\r\n return allowRetry;\r\n}\r\n\r\n// 获取签名并发起请求\r\nfunction submitRequest(params, callback) {\r\n var self = this;\r\n\r\n // 处理 headers\r\n !params.headers && (params.headers = {});\r\n\r\n // 处理 query\r\n !params.qs && (params.qs = {});\r\n params.VersionId && (params.qs.versionId = params.VersionId);\r\n params.qs = util.clearKey(params.qs);\r\n\r\n // 清理 undefined 和 null 字段\r\n params.headers && (params.headers = util.clearKey(params.headers));\r\n params.qs && (params.qs = util.clearKey(params.qs));\r\n\r\n var Query = util.clone(params.qs);\r\n params.action && (Query[params.action] = '');\r\n\r\n var next = function (tryTimes) {\r\n var oldClockOffset = self.options.SystemClockOffset;\r\n getAuthorizationAsync.call(self, {\r\n Bucket: params.Bucket || '',\r\n Region: params.Region || '',\r\n Method: params.method,\r\n Key: params.Key,\r\n Query: Query,\r\n Headers: params.headers,\r\n Action: params.Action,\r\n ResourceKey: params.ResourceKey,\r\n Scope: params.Scope,\r\n }, function (err, AuthData) {\r\n if (err) {\r\n callback(err);\r\n return;\r\n }\r\n params.AuthData = AuthData;\r\n _submitRequest.call(self, params, function (err, data) {\r\n if (err && tryTimes < 2 && (oldClockOffset !== self.options.SystemClockOffset || allowRetry.call(self, err))) {\r\n if (params.headers) {\r\n delete params.headers.Authorization;\r\n delete params.headers['token'];\r\n delete params.headers['clientIP'];\r\n delete params.headers['clientUA'];\r\n delete params.headers['x-cos-security-token'];\r\n }\r\n next(tryTimes + 1);\r\n } else {\r\n callback(err, data);\r\n }\r\n });\r\n });\r\n };\r\n next(1);\r\n\r\n}\r\n\r\n// 发起请求\r\nfunction _submitRequest(params, callback) {\r\n var self = this;\r\n var TaskId = params.TaskId;\r\n if (TaskId && !self._isRunningTask(TaskId)) return;\r\n\r\n var bucket = params.Bucket;\r\n var region = params.Region;\r\n var object = params.Key;\r\n var method = params.method || 'GET';\r\n var url = params.url;\r\n var body = params.body;\r\n var json = params.json;\r\n var rawBody = params.rawBody;\r\n\r\n // url\r\n url = url || getUrl({\r\n ForcePathStyle: self.options.ForcePathStyle,\r\n protocol: self.options.Protocol,\r\n domain: self.options.Domain,\r\n bucket: bucket,\r\n region: region,\r\n object: object,\r\n });\r\n if (params.action) {\r\n url = url + '?' + params.action;\r\n }\r\n\r\n var opt = {\r\n method: method,\r\n url: url,\r\n headers: params.headers,\r\n qs: params.qs,\r\n body: body,\r\n json: json,\r\n };\r\n\r\n // 获取签名\r\n opt.headers.Authorization = params.AuthData.Authorization;\r\n params.AuthData.Token && (opt.headers['token'] = params.AuthData.Token);\r\n params.AuthData.ClientIP && (opt.headers['clientIP'] = params.AuthData.ClientIP);\r\n params.AuthData.ClientUA && (opt.headers['clientUA'] = params.AuthData.ClientUA);\r\n params.AuthData.XCosSecurityToken && (opt.headers['x-cos-security-token'] = params.AuthData.XCosSecurityToken);\r\n\r\n // 清理 undefined 和 null 字段\r\n opt.headers && (opt.headers = util.clearKey(opt.headers));\r\n opt = util.clearKey(opt);\r\n\r\n // progress\r\n if (params.onProgress && typeof params.onProgress === 'function') {\r\n var contentLength = body && (body.size || body.length) || 0;\r\n opt.onProgress = function (e) {\r\n if (TaskId && !self._isRunningTask(TaskId)) return;\r\n var loaded = e ? e.loaded : 0;\r\n params.onProgress({loaded: loaded, total: contentLength});\r\n };\r\n }\r\n if (this.options.Timeout) {\r\n opt.timeout = this.options.Timeout;\r\n }\r\n\r\n self.emit('before-send', opt);\r\n var sender = REQUEST(opt, function (err, response, body) {\r\n if (err === 'abort') return;\r\n\r\n // 返回内容添加 状态码 和 headers\r\n var hasReturned;\r\n var cb = function (err, data) {\r\n TaskId && self.off('inner-kill-task', killTask);\r\n if (hasReturned) return;\r\n hasReturned = true;\r\n var attrs = {};\r\n response && response.statusCode && (attrs.statusCode = response.statusCode);\r\n response && response.headers && (attrs.headers = response.headers);\r\n\r\n if (err) {\r\n err = util.extend(err || {}, attrs);\r\n callback(err, null);\r\n } else {\r\n data = util.extend(data || {}, attrs);\r\n callback(null, data);\r\n }\r\n sender = null;\r\n };\r\n\r\n // 请求错误,发生网络错误\r\n if (err) {\r\n cb({error: err});\r\n return;\r\n }\r\n\r\n var jsonRes;\r\n\r\n // 不对 body 进行转换,body 直接挂载返回\r\n if(rawBody) {\r\n jsonRes = {};\r\n jsonRes.body = body;\r\n } else {\r\n try {\r\n jsonRes = body && body.indexOf('<') > -1 && body.indexOf('>') > -1 && util.xml2json(body) || {};\r\n } catch (e) {\r\n jsonRes = body || {};\r\n }\r\n }\r\n\r\n // 请求返回码不为 200\r\n var statusCode = response.statusCode;\r\n var statusSuccess = Math.floor(statusCode / 100) === 2; // 200 202 204 206\r\n if (!statusSuccess) {\r\n cb({error: jsonRes.Error || jsonRes});\r\n return;\r\n }\r\n\r\n\r\n if (jsonRes.Error) {\r\n cb({error: jsonRes.Error});\r\n return;\r\n }\r\n cb(null, jsonRes);\r\n });\r\n\r\n // kill task\r\n var killTask = function (data) {\r\n if (data.TaskId === TaskId) {\r\n sender && sender.abort && sender.abort();\r\n self.off('inner-kill-task', killTask);\r\n }\r\n };\r\n TaskId && self.on('inner-kill-task', killTask);\r\n\r\n}\r\n\r\n\r\nvar API_MAP = {\r\n // Bucket 相关方法\r\n getService: getService, // Bucket\r\n putBucket: putBucket,\r\n headBucket: headBucket, // Bucket\r\n getBucket: getBucket,\r\n deleteBucket: deleteBucket,\r\n putBucketAcl: putBucketAcl, // BucketACL\r\n getBucketAcl: getBucketAcl,\r\n putBucketCors: putBucketCors, // BucketCors\r\n getBucketCors: getBucketCors,\r\n deleteBucketCors: deleteBucketCors,\r\n getBucketLocation: getBucketLocation, // BucketLocation\r\n getBucketPolicy: getBucketPolicy, // BucketPolicy\r\n putBucketPolicy: putBucketPolicy,\r\n deleteBucketPolicy: deleteBucketPolicy,\r\n putBucketTagging: putBucketTagging, // BucketTagging\r\n getBucketTagging: getBucketTagging,\r\n deleteBucketTagging: deleteBucketTagging,\r\n putBucketLifecycle: putBucketLifecycle, // BucketLifecycle\r\n getBucketLifecycle: getBucketLifecycle,\r\n deleteBucketLifecycle: deleteBucketLifecycle,\r\n putBucketVersioning: putBucketVersioning, // BucketVersioning\r\n getBucketVersioning: getBucketVersioning,\r\n putBucketReplication: putBucketReplication, // BucketReplication\r\n getBucketReplication: getBucketReplication,\r\n deleteBucketReplication: deleteBucketReplication,\r\n putBucketWebsite: putBucketWebsite, // BucketWebsite\r\n getBucketWebsite: getBucketWebsite,\r\n deleteBucketWebsite: deleteBucketWebsite,\r\n\r\n // Object 相关方法\r\n getObject: getObject,\r\n headObject: headObject,\r\n listObjectVersions: listObjectVersions,\r\n putObject: putObject,\r\n deleteObject: deleteObject,\r\n getObjectAcl: getObjectAcl,\r\n putObjectAcl: putObjectAcl,\r\n optionsObject: optionsObject,\r\n putObjectCopy: putObjectCopy,\r\n deleteMultipleObject: deleteMultipleObject,\r\n restoreObject: restoreObject,\r\n\r\n // 分块上传相关方法\r\n uploadPartCopy: uploadPartCopy,\r\n multipartInit: multipartInit,\r\n multipartUpload: multipartUpload,\r\n multipartComplete: multipartComplete,\r\n multipartList: multipartList,\r\n multipartListPart: multipartListPart,\r\n multipartAbort: multipartAbort,\r\n\r\n // 工具方法\r\n getObjectUrl: getObjectUrl,\r\n getAuth: getAuth,\r\n};\r\n\r\nfunction warnOldApi(apiName, fn, proto) {\r\n util.each(['Cors', 'Acl'], function (suffix) {\r\n if (apiName.slice(-suffix.length) === suffix) {\r\n var oldName = apiName.slice(0, -suffix.length) + suffix.toUpperCase();\r\n var apiFn = util.apiWrapper(apiName, fn);\r\n var warned = false;\r\n proto[oldName] = function () {\r\n !warned && console.warn('warning: cos.' + oldName + ' has been deprecated. Please Use cos.' + apiName + ' instead.');\r\n warned = true;\r\n apiFn.apply(this, arguments);\r\n };\r\n }\r\n });\r\n}\r\n\r\nmodule.exports.init = function (COS, task) {\r\n task.transferToTaskMethod(API_MAP, 'putObject');\r\n util.each(API_MAP, function (fn, apiName) {\r\n COS.prototype[apiName] = util.apiWrapper(apiName, fn);\r\n warnOldApi(apiName, fn, COS.prototype);\r\n });\r\n};\r\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","var $ = (function () {\r\n var deletedIds = [];\r\n\r\n var slice = deletedIds.slice;\r\n\r\n var concat = deletedIds.concat;\r\n\r\n var push = deletedIds.push;\r\n\r\n var indexOf = deletedIds.indexOf;\r\n\r\n var class2type = {};\r\n\r\n var toString = class2type.toString;\r\n\r\n var hasOwn = class2type.hasOwnProperty;\r\n\r\n var support = {};\r\n\r\n\r\n var\r\n version = \"1.11.1 -css,-css/addGetHookIf,-css/curCSS,-css/defaultDisplay,-css/hiddenVisibleSelectors,-css/support,-css/swap,-css/var/cssExpand,-css/var/isHidden,-css/var/rmargin,-css/var/rnumnonpx,-effects,-effects/Tween,-effects/animatedSelector,-effects/support,-dimensions,-offset,-deprecated,-event-alias,-wrap\",\r\n\r\n // Define a local copy of jQuery\r\n jQuery = function (selector, context) {\r\n // The jQuery object is actually just the init constructor 'enhanced'\r\n // Need init if jQuery is called (just allow error to be thrown if not included)\r\n return new jQuery.fn.init(selector, context);\r\n },\r\n\r\n // Support: Android<4.1, IE<9\r\n // Make sure we trim BOM and NBSP\r\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\r\n\r\n // Matches dashed string for camelizing\r\n rmsPrefix = /^-ms-/,\r\n rdashAlpha = /-([\\da-z])/gi,\r\n\r\n // Used by jQuery.camelCase as callback to replace()\r\n fcamelCase = function (all, letter) {\r\n return letter.toUpperCase();\r\n };\r\n\r\n jQuery.fn = jQuery.prototype = {\r\n // The current version of jQuery being used\r\n jquery: version,\r\n\r\n constructor: jQuery,\r\n\r\n // Start with an empty selector\r\n selector: \"\",\r\n\r\n // The default length of a jQuery object is 0\r\n length: 0,\r\n\r\n toArray: function () {\r\n return slice.call(this);\r\n },\r\n\r\n // Get the Nth element in the matched element set OR\r\n // Get the whole matched element set as a clean array\r\n get: function (num) {\r\n return num != null ?\r\n\r\n // Return just the one element from the set\r\n ( num < 0 ? this[num + this.length] : this[num] ) :\r\n\r\n // Return all the elements in a clean array\r\n slice.call(this);\r\n },\r\n\r\n // Take an array of elements and push it onto the stack\r\n // (returning the new matched element set)\r\n pushStack: function (elems) {\r\n\r\n // Build a new jQuery matched element set\r\n var ret = jQuery.merge(this.constructor(), elems);\r\n\r\n // Add the old object onto the stack (as a reference)\r\n ret.prevObject = this;\r\n ret.context = this.context;\r\n\r\n // Return the newly-formed element set\r\n return ret;\r\n },\r\n\r\n // Execute a callback for every element in the matched set.\r\n // (You can seed the arguments with an array of args, but this is\r\n // only used internally.)\r\n each: function (callback, args) {\r\n return jQuery.each(this, callback, args);\r\n },\r\n\r\n map: function (callback) {\r\n return this.pushStack(jQuery.map(this, function (elem, i) {\r\n return callback.call(elem, i, elem);\r\n }));\r\n },\r\n\r\n slice: function () {\r\n return this.pushStack(slice.apply(this, arguments));\r\n },\r\n\r\n first: function () {\r\n return this.eq(0);\r\n },\r\n\r\n last: function () {\r\n return this.eq(-1);\r\n },\r\n\r\n eq: function (i) {\r\n var len = this.length,\r\n j = +i + ( i < 0 ? len : 0 );\r\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\r\n },\r\n\r\n end: function () {\r\n return this.prevObject || this.constructor(null);\r\n },\r\n\r\n // For internal use only.\r\n // Behaves like an Array's method, not like a jQuery method.\r\n push: push,\r\n sort: deletedIds.sort,\r\n splice: deletedIds.splice\r\n };\r\n\r\n jQuery.extend = jQuery.fn.extend = function () {\r\n var src, copyIsArray, copy, name, options, clone,\r\n target = arguments[0] || {},\r\n i = 1,\r\n length = arguments.length,\r\n deep = false;\r\n\r\n // Handle a deep copy situation\r\n if (typeof target === \"boolean\") {\r\n deep = target;\r\n\r\n // skip the boolean and the target\r\n target = arguments[i] || {};\r\n i++;\r\n }\r\n\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (typeof target !== \"object\" && !jQuery.isFunction(target)) {\r\n target = {};\r\n }\r\n\r\n // extend jQuery itself if only one argument is passed\r\n if (i === length) {\r\n target = this;\r\n i--;\r\n }\r\n\r\n for (; i < length; i++) {\r\n // Only deal with non-null/undefined values\r\n if ((options = arguments[i]) != null) {\r\n // Extend the base object\r\n for (name in options) {\r\n src = target[name];\r\n copy = options[name];\r\n\r\n // Prevent never-ending loop\r\n if (target === copy) {\r\n continue;\r\n }\r\n\r\n // Recurse if we're merging plain objects or arrays\r\n if (deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) )) {\r\n if (copyIsArray) {\r\n copyIsArray = false;\r\n clone = src && jQuery.isArray(src) ? src : [];\r\n\r\n } else {\r\n clone = src && jQuery.isPlainObject(src) ? src : {};\r\n }\r\n\r\n // Never move original objects, clone them\r\n target[name] = jQuery.extend(deep, clone, copy);\r\n\r\n // Don't bring in undefined values\r\n } else if (copy !== undefined) {\r\n target[name] = copy;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Return the modified object\r\n return target;\r\n };\r\n\r\n jQuery.extend({\r\n // Unique for each copy of jQuery on the page\r\n expando: \"jQuery\" + ( version + Math.random() ).replace(/\\D/g, \"\"),\r\n\r\n // Assume jQuery is ready without the ready module\r\n isReady: true,\r\n\r\n error: function (msg) {\r\n throw new Error(msg);\r\n },\r\n\r\n noop: function () {\r\n },\r\n\r\n // See test/unit/core.js for details concerning isFunction.\r\n // Since version 1.3, DOM methods and functions like alert\r\n // aren't supported. They return false on IE (#2968).\r\n isFunction: function (obj) {\r\n return jQuery.type(obj) === \"function\";\r\n },\r\n\r\n isArray: Array.isArray || function (obj) {\r\n return jQuery.type(obj) === \"array\";\r\n },\r\n\r\n isWindow: function (obj) {\r\n /* jshint eqeqeq: false */\r\n return obj != null && obj == obj.window;\r\n },\r\n\r\n isNumeric: function (obj) {\r\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\r\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\r\n // subtraction forces infinities to NaN\r\n return !jQuery.isArray(obj) && obj - parseFloat(obj) >= 0;\r\n },\r\n\r\n isEmptyObject: function (obj) {\r\n var name;\r\n for (name in obj) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n isPlainObject: function (obj) {\r\n var key;\r\n\r\n // Must be an Object.\r\n // Because of IE, we also have to check the presence of the constructor property.\r\n // Make sure that DOM nodes and window objects don't pass through, as well\r\n if (!obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\r\n return false;\r\n }\r\n\r\n try {\r\n // Not own constructor property must be Object\r\n if (obj.constructor &&\r\n !hasOwn.call(obj, \"constructor\") &&\r\n !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\r\n return false;\r\n }\r\n } catch (e) {\r\n // IE8,9 Will throw exceptions on certain host objects #9897\r\n return false;\r\n }\r\n\r\n // Support: IE<9\r\n // Handle iteration over inherited properties before own properties.\r\n if (support.ownLast) {\r\n for (key in obj) {\r\n return hasOwn.call(obj, key);\r\n }\r\n }\r\n\r\n // Own properties are enumerated firstly, so to speed up,\r\n // if last one is own, then all properties are own.\r\n for (key in obj) {\r\n }\r\n\r\n return key === undefined || hasOwn.call(obj, key);\r\n },\r\n\r\n type: function (obj) {\r\n if (obj == null) {\r\n return obj + \"\";\r\n }\r\n return typeof obj === \"object\" || typeof obj === \"function\" ?\r\n class2type[toString.call(obj)] || \"object\" :\r\n typeof obj;\r\n },\r\n\r\n // Evaluates a script in a global context\r\n // Workarounds based on findings by Jim Driscoll\r\n // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\r\n globalEval: function (data) {\r\n if (data && jQuery.trim(data)) {\r\n // We use execScript on Internet Explorer\r\n // We use an anonymous function so that context is window\r\n // rather than jQuery in Firefox\r\n ( window.execScript || function (data) {\r\n window[\"eval\"].call(window, data);\r\n } )(data);\r\n }\r\n },\r\n\r\n // Convert dashed to camelCase; used by the css and data modules\r\n // Microsoft forgot to hump their vendor prefix (#9572)\r\n camelCase: function (string) {\r\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\r\n },\r\n\r\n nodeName: function (elem, name) {\r\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n },\r\n\r\n // args is for internal usage only\r\n each: function (obj, callback, args) {\r\n var value,\r\n i = 0,\r\n length = obj.length,\r\n isArray = isArraylike(obj);\r\n\r\n if (args) {\r\n if (isArray) {\r\n for (; i < length; i++) {\r\n value = callback.apply(obj[i], args);\r\n\r\n if (value === false) {\r\n break;\r\n }\r\n }\r\n } else {\r\n for (i in obj) {\r\n value = callback.apply(obj[i], args);\r\n\r\n if (value === false) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // A special, fast, case for the most common use of each\r\n } else {\r\n if (isArray) {\r\n for (; i < length; i++) {\r\n value = callback.call(obj[i], i, obj[i]);\r\n\r\n if (value === false) {\r\n break;\r\n }\r\n }\r\n } else {\r\n for (i in obj) {\r\n value = callback.call(obj[i], i, obj[i]);\r\n\r\n if (value === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return obj;\r\n },\r\n\r\n // Support: Android<4.1, IE<9\r\n trim: function (text) {\r\n return text == null ?\r\n \"\" :\r\n ( text + \"\" ).replace(rtrim, \"\");\r\n },\r\n\r\n // results is for internal usage only\r\n makeArray: function (arr, results) {\r\n var ret = results || [];\r\n\r\n if (arr != null) {\r\n if (isArraylike(Object(arr))) {\r\n jQuery.merge(ret,\r\n typeof arr === \"string\" ?\r\n [arr] : arr\r\n );\r\n } else {\r\n push.call(ret, arr);\r\n }\r\n }\r\n\r\n return ret;\r\n },\r\n\r\n inArray: function (elem, arr, i) {\r\n var len;\r\n\r\n if (arr) {\r\n if (indexOf) {\r\n return indexOf.call(arr, elem, i);\r\n }\r\n\r\n len = arr.length;\r\n i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\r\n\r\n for (; i < len; i++) {\r\n // Skip accessing in sparse arrays\r\n if (i in arr && arr[i] === elem) {\r\n return i;\r\n }\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n\r\n merge: function (first, second) {\r\n var len = +second.length,\r\n j = 0,\r\n i = first.length;\r\n\r\n while (j < len) {\r\n first[i++] = second[j++];\r\n }\r\n\r\n // Support: IE<9\r\n // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\r\n if (len !== len) {\r\n while (second[j] !== undefined) {\r\n first[i++] = second[j++];\r\n }\r\n }\r\n\r\n first.length = i;\r\n\r\n return first;\r\n },\r\n\r\n grep: function (elems, callback, invert) {\r\n var callbackInverse,\r\n matches = [],\r\n i = 0,\r\n length = elems.length,\r\n callbackExpect = !invert;\r\n\r\n // Go through the array, only saving the items\r\n // that pass the validator function\r\n for (; i < length; i++) {\r\n callbackInverse = !callback(elems[i], i);\r\n if (callbackInverse !== callbackExpect) {\r\n matches.push(elems[i]);\r\n }\r\n }\r\n\r\n return matches;\r\n },\r\n\r\n // arg is for internal usage only\r\n map: function (elems, callback, arg) {\r\n var value,\r\n i = 0,\r\n length = elems.length,\r\n isArray = isArraylike(elems),\r\n ret = [];\r\n\r\n // Go through the array, translating each of the items to their new values\r\n if (isArray) {\r\n for (; i < length; i++) {\r\n value = callback(elems[i], i, arg);\r\n\r\n if (value != null) {\r\n ret.push(value);\r\n }\r\n }\r\n\r\n // Go through every key on the object,\r\n } else {\r\n for (i in elems) {\r\n value = callback(elems[i], i, arg);\r\n\r\n if (value != null) {\r\n ret.push(value);\r\n }\r\n }\r\n }\r\n\r\n // Flatten any nested arrays\r\n return concat.apply([], ret);\r\n },\r\n\r\n // A global GUID counter for objects\r\n guid: 1,\r\n\r\n // Bind a function to a context, optionally partially applying any\r\n // arguments.\r\n proxy: function (fn, context) {\r\n var args, proxy, tmp;\r\n\r\n if (typeof context === \"string\") {\r\n tmp = fn[context];\r\n context = fn;\r\n fn = tmp;\r\n }\r\n\r\n // Quick check to determine if target is callable, in the spec\r\n // this throws a TypeError, but we will just return undefined.\r\n if (!jQuery.isFunction(fn)) {\r\n return undefined;\r\n }\r\n\r\n // Simulated bind\r\n args = slice.call(arguments, 2);\r\n proxy = function () {\r\n return fn.apply(context || this, args.concat(slice.call(arguments)));\r\n };\r\n\r\n // Set the guid of unique handler to the same of original handler, so it can be removed\r\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\r\n\r\n return proxy;\r\n },\r\n\r\n now: function () {\r\n return +( new Date() );\r\n },\r\n\r\n // jQuery.support is not used in Core but other projects attach their\r\n // properties to it so it needs to exist.\r\n support: support\r\n });\r\n\r\n// Populate the class2type map\r\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\r\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\r\n });\r\n\r\n function isArraylike(obj) {\r\n var length = obj.length,\r\n type = jQuery.type(obj);\r\n\r\n if (type === \"function\" || jQuery.isWindow(obj)) {\r\n return false;\r\n }\r\n\r\n if (obj.nodeType === 1 && length) {\r\n return true;\r\n }\r\n\r\n return type === \"array\" || length === 0 ||\r\n typeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\r\n }\r\n\r\n\r\n// Initialize a jQuery object\r\n\r\n\r\n// A central reference to the root jQuery(document)\r\n var rootjQuery,\r\n\r\n // Use the correct document accordingly with window argument (sandbox)\r\n document = window.document,\r\n\r\n // A simple way to check for HTML strings\r\n // Prioritize #id over to avoid XSS via location.hash (#9521)\r\n // Strict HTML recognition (#11290: must start with <)\r\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\r\n\r\n init = jQuery.fn.init = function (selector, context) {\r\n var match, elem;\r\n\r\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n if (!selector) {\r\n return this;\r\n }\r\n\r\n // Handle HTML strings\r\n if (typeof selector === \"string\") {\r\n if (selector.charAt(0) === \"<\" && selector.charAt(selector.length - 1) === \">\" && selector.length >= 3) {\r\n // Assume that strings that start and end with <> are HTML and skip the regex check\r\n match = [null, selector, null];\r\n\r\n } else {\r\n match = rquickExpr.exec(selector);\r\n }\r\n\r\n // Match html or make sure no context is specified for #id\r\n if (match && (match[1] || !context)) {\r\n\r\n // HANDLE: $(html) -> $(array)\r\n if (match[1]) {\r\n context = context instanceof jQuery ? context[0] : context;\r\n\r\n // scripts is true for back-compat\r\n // Intentionally let the error be thrown if parseHTML is not present\r\n jQuery.merge(this, jQuery.parseHTML(\r\n match[1],\r\n context && context.nodeType ? context.ownerDocument || context : document,\r\n true\r\n ));\r\n\r\n // HANDLE: $(html, props)\r\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\r\n for (match in context) {\r\n // Properties of context are called as methods if possible\r\n if (jQuery.isFunction(this[match])) {\r\n this[match](context[match]);\r\n\r\n // ...and otherwise set as attributes\r\n } else {\r\n this.attr(match, context[match]);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n\r\n // HANDLE: $(#id)\r\n } else {\r\n elem = document.getElementById(match[2]);\r\n\r\n // Check parentNode to catch when Blackberry 4.6 returns\r\n // nodes that are no longer in the document #6963\r\n if (elem && elem.parentNode) {\r\n // Handle the case where IE and Opera return items\r\n // by name instead of ID\r\n if (elem.id !== match[2]) {\r\n return rootjQuery.find(selector);\r\n }\r\n\r\n // Otherwise, we inject the element directly into the jQuery object\r\n this.length = 1;\r\n this[0] = elem;\r\n }\r\n\r\n this.context = document;\r\n this.selector = selector;\r\n return this;\r\n }\r\n\r\n // HANDLE: $(expr, $(...))\r\n } else if (!context || context.jquery) {\r\n return ( context || rootjQuery ).find(selector);\r\n\r\n // HANDLE: $(expr, context)\r\n // (which is just equivalent to: $(context).find(expr)\r\n } else {\r\n return this.constructor(context).find(selector);\r\n }\r\n\r\n // HANDLE: $(DOMElement)\r\n } else if (selector.nodeType) {\r\n this.context = this[0] = selector;\r\n this.length = 1;\r\n return this;\r\n\r\n // HANDLE: $(function)\r\n // Shortcut for document ready\r\n } else if (jQuery.isFunction(selector)) {\r\n return typeof rootjQuery.ready !== \"undefined\" ?\r\n rootjQuery.ready(selector) :\r\n // Execute immediately if ready is not present\r\n selector(jQuery);\r\n }\r\n\r\n if (selector.selector !== undefined) {\r\n this.selector = selector.selector;\r\n this.context = selector.context;\r\n }\r\n\r\n return jQuery.makeArray(selector, this);\r\n };\r\n\r\n// Give the init function the jQuery prototype for later instantiation\r\n init.prototype = jQuery.fn;\r\n\r\n// Initialize central reference\r\n rootjQuery = jQuery(document);\r\n\r\n\r\n var rnotwhite = (/\\S+/g);\r\n\r\n// String to Object options format cache\r\n var optionsCache = {};\r\n\r\n// Convert String-formatted options into Object-formatted ones and store in cache\r\n function createOptions(options) {\r\n var object = optionsCache[options] = {};\r\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\r\n object[flag] = true;\r\n });\r\n return object;\r\n }\r\n\r\n /*\r\n * Create a callback list using the following parameters:\r\n *\r\n *\toptions: an optional list of space-separated options that will change how\r\n *\t\t\tthe callback list behaves or a more traditional option object\r\n *\r\n * By default a callback list will act like an event callback list and can be\r\n * \"fired\" multiple times.\r\n *\r\n * Possible options:\r\n *\r\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n *\r\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n *\t\t\t\t\tvalues (like a Deferred)\r\n *\r\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n *\r\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n *\r\n */\r\n jQuery.Callbacks = function (options) {\r\n\r\n // Convert options from String-formatted to Object-formatted if needed\r\n // (we check in cache first)\r\n options = typeof options === \"string\" ?\r\n ( optionsCache[options] || createOptions(options) ) :\r\n jQuery.extend({}, options);\r\n\r\n var // Flag to know if list is currently firing\r\n firing,\r\n // Last fire value (for non-forgettable lists)\r\n memory,\r\n // Flag to know if list was already fired\r\n fired,\r\n // End of the loop when firing\r\n firingLength,\r\n // Index of currently firing callback (modified by remove if needed)\r\n firingIndex,\r\n // First callback to fire (used internally by add and fireWith)\r\n firingStart,\r\n // Actual callback list\r\n list = [],\r\n // Stack of fire calls for repeatable lists\r\n stack = !options.once && [],\r\n // Fire callbacks\r\n fire = function (data) {\r\n memory = options.memory && data;\r\n fired = true;\r\n firingIndex = firingStart || 0;\r\n firingStart = 0;\r\n firingLength = list.length;\r\n firing = true;\r\n for (; list && firingIndex < firingLength; firingIndex++) {\r\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\r\n memory = false; // To prevent further calls using add\r\n break;\r\n }\r\n }\r\n firing = false;\r\n if (list) {\r\n if (stack) {\r\n if (stack.length) {\r\n fire(stack.shift());\r\n }\r\n } else if (memory) {\r\n list = [];\r\n } else {\r\n self.disable();\r\n }\r\n }\r\n },\r\n // Actual Callbacks object\r\n self = {\r\n // Add a callback or a collection of callbacks to the list\r\n add: function () {\r\n if (list) {\r\n // First, we save the current length\r\n var start = list.length;\r\n (function add(args) {\r\n jQuery.each(args, function (_, arg) {\r\n var type = jQuery.type(arg);\r\n if (type === \"function\") {\r\n if (!options.unique || !self.has(arg)) {\r\n list.push(arg);\r\n }\r\n } else if (arg && arg.length && type !== \"string\") {\r\n // Inspect recursively\r\n add(arg);\r\n }\r\n });\r\n })(arguments);\r\n // Do we need to add the callbacks to the\r\n // current firing batch?\r\n if (firing) {\r\n firingLength = list.length;\r\n // With memory, if we're not firing then\r\n // we should call right away\r\n } else if (memory) {\r\n firingStart = start;\r\n fire(memory);\r\n }\r\n }\r\n return this;\r\n },\r\n // Remove a callback from the list\r\n remove: function () {\r\n if (list) {\r\n jQuery.each(arguments, function (_, arg) {\r\n var index;\r\n while (( index = jQuery.inArray(arg, list, index) ) > -1) {\r\n list.splice(index, 1);\r\n // Handle firing indexes\r\n if (firing) {\r\n if (index <= firingLength) {\r\n firingLength--;\r\n }\r\n if (index <= firingIndex) {\r\n firingIndex--;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n return this;\r\n },\r\n // Check if a given callback is in the list.\r\n // If no argument is given, return whether or not list has callbacks attached.\r\n has: function (fn) {\r\n return fn ? jQuery.inArray(fn, list) > -1 : !!( list && list.length );\r\n },\r\n // Remove all callbacks from the list\r\n empty: function () {\r\n list = [];\r\n firingLength = 0;\r\n return this;\r\n },\r\n // Have the list do nothing anymore\r\n disable: function () {\r\n list = stack = memory = undefined;\r\n return this;\r\n },\r\n // Is it disabled?\r\n disabled: function () {\r\n return !list;\r\n },\r\n // Lock the list in its current state\r\n lock: function () {\r\n stack = undefined;\r\n if (!memory) {\r\n self.disable();\r\n }\r\n return this;\r\n },\r\n // Is it locked?\r\n locked: function () {\r\n return !stack;\r\n },\r\n // Call all callbacks with the given context and arguments\r\n fireWith: function (context, args) {\r\n if (list && ( !fired || stack )) {\r\n args = args || [];\r\n args = [context, args.slice ? args.slice() : args];\r\n if (firing) {\r\n stack.push(args);\r\n } else {\r\n fire(args);\r\n }\r\n }\r\n return this;\r\n },\r\n // Call all the callbacks with the given arguments\r\n fire: function () {\r\n self.fireWith(this, arguments);\r\n return this;\r\n },\r\n // To know if the callbacks have already been called at least once\r\n fired: function () {\r\n return !!fired;\r\n }\r\n };\r\n\r\n return self;\r\n };\r\n\r\n\r\n jQuery.extend({\r\n\r\n Deferred: function (func) {\r\n var tuples = [\r\n // action, add listener, listener list, final state\r\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"],\r\n [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"],\r\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]\r\n ],\r\n state = \"pending\",\r\n promise = {\r\n state: function () {\r\n return state;\r\n },\r\n always: function () {\r\n deferred.done(arguments).fail(arguments);\r\n return this;\r\n },\r\n then: function (/* fnDone, fnFail, fnProgress */) {\r\n var fns = arguments;\r\n return jQuery.Deferred(function (newDefer) {\r\n jQuery.each(tuples, function (i, tuple) {\r\n var fn = jQuery.isFunction(fns[i]) && fns[i];\r\n // deferred[ done | fail | progress ] for forwarding actions to newDefer\r\n deferred[tuple[1]](function () {\r\n var returned = fn && fn.apply(this, arguments);\r\n if (returned && jQuery.isFunction(returned.promise)) {\r\n returned.promise()\r\n .done(newDefer.resolve)\r\n .fail(newDefer.reject)\r\n .progress(newDefer.notify);\r\n } else {\r\n newDefer[tuple[0] + \"With\"](this === promise ? newDefer.promise() : this, fn ? [returned] : arguments);\r\n }\r\n });\r\n });\r\n fns = null;\r\n }).promise();\r\n },\r\n // Get a promise for this deferred\r\n // If obj is provided, the promise aspect is added to the object\r\n promise: function (obj) {\r\n return obj != null ? jQuery.extend(obj, promise) : promise;\r\n }\r\n },\r\n deferred = {};\r\n\r\n // Keep pipe for back-compat\r\n promise.pipe = promise.then;\r\n\r\n // Add list-specific methods\r\n jQuery.each(tuples, function (i, tuple) {\r\n var list = tuple[2],\r\n stateString = tuple[3];\r\n\r\n // promise[ done | fail | progress ] = list.add\r\n promise[tuple[1]] = list.add;\r\n\r\n // Handle state\r\n if (stateString) {\r\n list.add(function () {\r\n // state = [ resolved | rejected ]\r\n state = stateString;\r\n\r\n // [ reject_list | resolve_list ].disable; progress_list.lock\r\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\r\n }\r\n\r\n // deferred[ resolve | reject | notify ]\r\n deferred[tuple[0]] = function () {\r\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments);\r\n return this;\r\n };\r\n deferred[tuple[0] + \"With\"] = list.fireWith;\r\n });\r\n\r\n // Make the deferred a promise\r\n promise.promise(deferred);\r\n\r\n // Call given func if any\r\n if (func) {\r\n func.call(deferred, deferred);\r\n }\r\n\r\n // All done!\r\n return deferred;\r\n },\r\n\r\n // Deferred helper\r\n when: function (subordinate /* , ..., subordinateN */) {\r\n var i = 0,\r\n resolveValues = slice.call(arguments),\r\n length = resolveValues.length,\r\n\r\n // the count of uncompleted subordinates\r\n remaining = length !== 1 || ( subordinate && jQuery.isFunction(subordinate.promise) ) ? length : 0,\r\n\r\n // the master Deferred. If resolveValues consist of only a single Deferred, just use that.\r\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\r\n\r\n // Update function for both resolve and progress values\r\n updateFunc = function (i, contexts, values) {\r\n return function (value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? slice.call(arguments) : value;\r\n if (values === progressValues) {\r\n deferred.notifyWith(contexts, values);\r\n\r\n } else if (!(--remaining)) {\r\n deferred.resolveWith(contexts, values);\r\n }\r\n };\r\n },\r\n\r\n progressValues, progressContexts, resolveContexts;\r\n\r\n // add listeners to Deferred subordinates; treat others as resolved\r\n if (length > 1) {\r\n progressValues = new Array(length);\r\n progressContexts = new Array(length);\r\n resolveContexts = new Array(length);\r\n for (; i < length; i++) {\r\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\r\n resolveValues[i].promise()\r\n .done(updateFunc(i, resolveContexts, resolveValues))\r\n .fail(deferred.reject)\r\n .progress(updateFunc(i, progressContexts, progressValues));\r\n } else {\r\n --remaining;\r\n }\r\n }\r\n }\r\n\r\n // if we're not waiting on anything, resolve the master\r\n if (!remaining) {\r\n deferred.resolveWith(resolveContexts, resolveValues);\r\n }\r\n\r\n return deferred.promise();\r\n }\r\n });\r\n\r\n\r\n// The deferred used on DOM ready\r\n var readyList;\r\n\r\n jQuery.fn.ready = function (fn) {\r\n // Add the callback\r\n jQuery.ready.promise().done(fn);\r\n\r\n return this;\r\n };\r\n\r\n jQuery.extend({\r\n // Is the DOM ready to be used? Set to true once it occurs.\r\n isReady: false,\r\n\r\n // A counter to track how many items to wait for before\r\n // the ready event fires. See #6781\r\n readyWait: 1,\r\n\r\n // Hold (or release) the ready event\r\n holdReady: function (hold) {\r\n if (hold) {\r\n jQuery.readyWait++;\r\n } else {\r\n jQuery.ready(true);\r\n }\r\n },\r\n\r\n // Handle when the DOM is ready\r\n ready: function (wait) {\r\n\r\n // Abort if there are pending holds or we're already ready\r\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\r\n return;\r\n }\r\n\r\n // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\r\n if (!document.body) {\r\n return setTimeout(jQuery.ready);\r\n }\r\n\r\n // Remember that the DOM is ready\r\n jQuery.isReady = true;\r\n\r\n // If a normal DOM Ready event fired, decrement, and wait if need be\r\n if (wait !== true && --jQuery.readyWait > 0) {\r\n return;\r\n }\r\n\r\n // If there are functions bound, to execute\r\n readyList.resolveWith(document, [jQuery]);\r\n\r\n // Trigger any bound ready events\r\n if (jQuery.fn.triggerHandler) {\r\n jQuery(document).triggerHandler(\"ready\");\r\n jQuery(document).off(\"ready\");\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Clean-up method for dom ready events\r\n */\r\n function detach() {\r\n if (document.addEventListener) {\r\n document.removeEventListener(\"DOMContentLoaded\", completed, false);\r\n window.removeEventListener(\"load\", completed, false);\r\n\r\n } else {\r\n document.detachEvent(\"onreadystatechange\", completed);\r\n window.detachEvent(\"onload\", completed);\r\n }\r\n }\r\n\r\n /**\r\n * The ready event handler and self cleanup method\r\n */\r\n function completed() {\r\n // readyState === \"complete\" is good enough for us to call the dom ready in oldIE\r\n if (document.addEventListener || event.type === \"load\" || document.readyState === \"complete\") {\r\n detach();\r\n jQuery.ready();\r\n }\r\n }\r\n\r\n jQuery.ready.promise = function (obj) {\r\n if (!readyList) {\r\n\r\n readyList = jQuery.Deferred();\r\n\r\n // Catch cases where $(document).ready() is called after the browser event has already occurred.\r\n // we once tried to use readyState \"interactive\" here, but it caused issues like the one\r\n // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\r\n if (document.readyState === \"complete\") {\r\n // Handle it asynchronously to allow scripts the opportunity to delay ready\r\n setTimeout(jQuery.ready);\r\n\r\n // Standards-based browsers support DOMContentLoaded\r\n } else if (document.addEventListener) {\r\n // Use the handy event callback\r\n document.addEventListener(\"DOMContentLoaded\", completed, false);\r\n\r\n // A fallback to window.onload, that will always work\r\n window.addEventListener(\"load\", completed, false);\r\n\r\n // If IE event model is used\r\n } else {\r\n // Ensure firing before onload, maybe late but safe also for iframes\r\n document.attachEvent(\"onreadystatechange\", completed);\r\n\r\n // A fallback to window.onload, that will always work\r\n window.attachEvent(\"onload\", completed);\r\n\r\n // If IE and not a frame\r\n // continually check to see if the document is ready\r\n var top = false;\r\n\r\n try {\r\n top = window.frameElement == null && document.documentElement;\r\n } catch (e) {\r\n }\r\n\r\n if (top && top.doScroll) {\r\n (function doScrollCheck() {\r\n if (!jQuery.isReady) {\r\n\r\n try {\r\n // Use the trick by Diego Perini\r\n // http://javascript.nwbox.com/IEContentLoaded/\r\n top.doScroll(\"left\");\r\n } catch (e) {\r\n return setTimeout(doScrollCheck, 50);\r\n }\r\n\r\n // detach all dom ready events\r\n detach();\r\n\r\n // and execute any waiting functions\r\n jQuery.ready();\r\n }\r\n })();\r\n }\r\n }\r\n }\r\n return readyList.promise(obj);\r\n };\r\n\r\n\r\n var strundefined = typeof undefined;\r\n\r\n\r\n// Support: IE<9\r\n// Iteration over object's inherited properties before its own\r\n var i;\r\n for (i in jQuery(support)) {\r\n break;\r\n }\r\n support.ownLast = i !== \"0\";\r\n\r\n// Note: most support tests are defined in their respective modules.\r\n// false until the test is run\r\n support.inlineBlockNeedsLayout = false;\r\n\r\n\r\n// Execute ASAP in case we need to set body.style.zoom\r\n jQuery(function () {\r\n // Minified: var a,b,c,d\r\n var val, div, body, container;\r\n\r\n body = document.getElementsByTagName(\"body\")[0];\r\n if (!body || !body.style) {\r\n // Return for frameset docs that don't have a body\r\n return;\r\n }\r\n\r\n // Setup\r\n div = document.createElement(\"div\");\r\n container = document.createElement(\"div\");\r\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\r\n body.appendChild(container).appendChild(div);\r\n\r\n if (typeof div.style.zoom !== strundefined) {\r\n // Support: IE<8\r\n // Check if natively block-level elements act like inline-block\r\n // elements when setting their display to 'inline' and giving\r\n // them layout\r\n div.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\r\n\r\n support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\r\n if (val) {\r\n // Prevent IE 6 from affecting layout for positioned elements #11048\r\n // Prevent IE from shrinking the body in IE 7 mode #12869\r\n // Support: IE<8\r\n body.style.zoom = 1;\r\n }\r\n }\r\n\r\n body.removeChild(container);\r\n });\r\n\r\n\r\n (function () {\r\n var div = document.createElement(\"div\");\r\n\r\n // Execute the test only if not already executed in another module.\r\n if (support.deleteExpando == null) {\r\n // Support: IE<9\r\n support.deleteExpando = true;\r\n try {\r\n delete div.test;\r\n } catch (e) {\r\n support.deleteExpando = false;\r\n }\r\n }\r\n\r\n // Null elements to avoid leaks in IE.\r\n div = null;\r\n })();\r\n\r\n\r\n /**\r\n * Determines whether an object can have data\r\n */\r\n jQuery.acceptData = function (elem) {\r\n var noData = jQuery.noData[(elem.nodeName + \" \").toLowerCase()],\r\n nodeType = +elem.nodeType || 1;\r\n\r\n // Do not set data on non-element DOM nodes because it will not be cleared (#8335).\r\n return nodeType !== 1 && nodeType !== 9 ?\r\n false :\r\n\r\n // Nodes accept data unless otherwise specified; rejection can be conditional\r\n !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\r\n };\r\n\r\n\r\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n rmultiDash = /([A-Z])/g;\r\n\r\n function dataAttr(elem, key, data) {\r\n // If nothing was found internally, try to fetch any\r\n // data from the HTML5 data-* attribute\r\n if (data === undefined && elem.nodeType === 1) {\r\n\r\n var name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\r\n\r\n data = elem.getAttribute(name);\r\n\r\n if (typeof data === \"string\") {\r\n try {\r\n data = data === \"true\" ? true :\r\n data === \"false\" ? false :\r\n data === \"null\" ? null :\r\n // Only convert to a number if it doesn't change the string\r\n +data + \"\" === data ? +data :\r\n rbrace.test(data) ? jQuery.parseJSON(data) :\r\n data;\r\n } catch (e) {\r\n }\r\n\r\n // Make sure we set the data so it isn't changed later\r\n jQuery.data(elem, key, data);\r\n\r\n } else {\r\n data = undefined;\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n// checks a cache object for emptiness\r\n function isEmptyDataObject(obj) {\r\n var name;\r\n for (name in obj) {\r\n\r\n // if the public data object is empty, the private is still empty\r\n if (name === \"data\" && jQuery.isEmptyObject(obj[name])) {\r\n continue;\r\n }\r\n if (name !== \"toJSON\") {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function internalData(elem, name, data, pvt /* Internal Use Only */) {\r\n if (!jQuery.acceptData(elem)) {\r\n return;\r\n }\r\n\r\n var ret, thisCache,\r\n internalKey = jQuery.expando,\r\n\r\n // We have to handle DOM nodes and JS objects differently because IE6-7\r\n // can't GC object references properly across the DOM-JS boundary\r\n isNode = elem.nodeType,\r\n\r\n // Only DOM nodes need the global jQuery cache; JS object data is\r\n // attached directly to the object so GC can occur automatically\r\n cache = isNode ? jQuery.cache : elem,\r\n\r\n // Only defining an ID for JS objects if its cache already exists allows\r\n // the code to shortcut on the same path as a DOM node with no cache\r\n id = isNode ? elem[internalKey] : elem[internalKey] && internalKey;\r\n\r\n // Avoid doing any more work than we need to when trying to get data on an\r\n // object that has no data at all\r\n if ((!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\") {\r\n return;\r\n }\r\n\r\n if (!id) {\r\n // Only DOM nodes need a new unique ID for each element since their data\r\n // ends up in the global cache\r\n if (isNode) {\r\n id = elem[internalKey] = deletedIds.pop() || jQuery.guid++;\r\n } else {\r\n id = internalKey;\r\n }\r\n }\r\n\r\n if (!cache[id]) {\r\n // Avoid exposing jQuery metadata on plain JS objects when the object\r\n // is serialized using JSON.stringify\r\n cache[id] = isNode ? {} : {toJSON: jQuery.noop};\r\n }\r\n\r\n // An object can be passed to jQuery.data instead of a key/value pair; this gets\r\n // shallow copied over onto the existing cache\r\n if (typeof name === \"object\" || typeof name === \"function\") {\r\n if (pvt) {\r\n cache[id] = jQuery.extend(cache[id], name);\r\n } else {\r\n cache[id].data = jQuery.extend(cache[id].data, name);\r\n }\r\n }\r\n\r\n thisCache = cache[id];\r\n\r\n // jQuery data() is stored in a separate object inside the object's internal data\r\n // cache in order to avoid key collisions between internal data and user-defined\r\n // data.\r\n if (!pvt) {\r\n if (!thisCache.data) {\r\n thisCache.data = {};\r\n }\r\n\r\n thisCache = thisCache.data;\r\n }\r\n\r\n if (data !== undefined) {\r\n thisCache[jQuery.camelCase(name)] = data;\r\n }\r\n\r\n // Check for both converted-to-camel and non-converted data property names\r\n // If a data property was specified\r\n if (typeof name === \"string\") {\r\n\r\n // First Try to find as-is property data\r\n ret = thisCache[name];\r\n\r\n // Test for null|undefined property data\r\n if (ret == null) {\r\n\r\n // Try to find the camelCased property\r\n ret = thisCache[jQuery.camelCase(name)];\r\n }\r\n } else {\r\n ret = thisCache;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n function internalRemoveData(elem, name, pvt) {\r\n if (!jQuery.acceptData(elem)) {\r\n return;\r\n }\r\n\r\n var thisCache, i,\r\n isNode = elem.nodeType,\r\n\r\n // See jQuery.data for more information\r\n cache = isNode ? jQuery.cache : elem,\r\n id = isNode ? elem[jQuery.expando] : jQuery.expando;\r\n\r\n // If there is already no cache entry for this object, there is no\r\n // purpose in continuing\r\n if (!cache[id]) {\r\n return;\r\n }\r\n\r\n if (name) {\r\n\r\n thisCache = pvt ? cache[id] : cache[id].data;\r\n\r\n if (thisCache) {\r\n\r\n // Support array or space separated string names for data keys\r\n if (!jQuery.isArray(name)) {\r\n\r\n // try the string as a key before any manipulation\r\n if (name in thisCache) {\r\n name = [name];\r\n } else {\r\n\r\n // split the camel cased version by spaces unless a key with the spaces exists\r\n name = jQuery.camelCase(name);\r\n if (name in thisCache) {\r\n name = [name];\r\n } else {\r\n name = name.split(\" \");\r\n }\r\n }\r\n } else {\r\n // If \"name\" is an array of keys...\r\n // When data is initially created, via (\"key\", \"val\") signature,\r\n // keys will be converted to camelCase.\r\n // Since there is no way to tell _how_ a key was added, remove\r\n // both plain key and camelCase key. #12786\r\n // This will only penalize the array argument path.\r\n name = name.concat(jQuery.map(name, jQuery.camelCase));\r\n }\r\n\r\n i = name.length;\r\n while (i--) {\r\n delete thisCache[name[i]];\r\n }\r\n\r\n // If there is no data left in the cache, we want to continue\r\n // and let the cache object itself get destroyed\r\n if (pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache)) {\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // See jQuery.data for more information\r\n if (!pvt) {\r\n delete cache[id].data;\r\n\r\n // Don't destroy the parent cache unless the internal data object\r\n // had been the only thing left in it\r\n if (!isEmptyDataObject(cache[id])) {\r\n return;\r\n }\r\n }\r\n\r\n // Destroy the cache\r\n if (isNode) {\r\n jQuery.cleanData([elem], true);\r\n\r\n // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\r\n /* jshint eqeqeq: false */\r\n } else if (support.deleteExpando || cache != cache.window) {\r\n /* jshint eqeqeq: true */\r\n delete cache[id];\r\n\r\n // When all else fails, null\r\n } else {\r\n cache[id] = null;\r\n }\r\n }\r\n\r\n jQuery.extend({\r\n cache: {},\r\n\r\n // The following elements (space-suffixed to avoid Object.prototype collisions)\r\n // throw uncatchable exceptions if you attempt to set expando properties\r\n noData: {\r\n \"applet \": true,\r\n \"embed \": true,\r\n // ...but Flash objects (which have this classid) *can* handle expandos\r\n \"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\r\n },\r\n\r\n hasData: function (elem) {\r\n elem = elem.nodeType ? jQuery.cache[elem[jQuery.expando]] : elem[jQuery.expando];\r\n return !!elem && !isEmptyDataObject(elem);\r\n },\r\n\r\n data: function (elem, name, data) {\r\n return internalData(elem, name, data);\r\n },\r\n\r\n removeData: function (elem, name) {\r\n return internalRemoveData(elem, name);\r\n },\r\n\r\n // For internal use only.\r\n _data: function (elem, name, data) {\r\n return internalData(elem, name, data, true);\r\n },\r\n\r\n _removeData: function (elem, name) {\r\n return internalRemoveData(elem, name, true);\r\n }\r\n });\r\n\r\n jQuery.fn.extend({\r\n data: function (key, value) {\r\n var i, name, data,\r\n elem = this[0],\r\n attrs = elem && elem.attributes;\r\n\r\n // Special expections of .data basically thwart jQuery.access,\r\n // so implement the relevant behavior ourselves\r\n\r\n // Gets all values\r\n if (key === undefined) {\r\n if (this.length) {\r\n data = jQuery.data(elem);\r\n\r\n if (elem.nodeType === 1 && !jQuery._data(elem, \"parsedAttrs\")) {\r\n i = attrs.length;\r\n while (i--) {\r\n\r\n // Support: IE11+\r\n // The attrs elements can be null (#14894)\r\n if (attrs[i]) {\r\n name = attrs[i].name;\r\n if (name.indexOf(\"data-\") === 0) {\r\n name = jQuery.camelCase(name.slice(5));\r\n dataAttr(elem, name, data[name]);\r\n }\r\n }\r\n }\r\n jQuery._data(elem, \"parsedAttrs\", true);\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n // Sets multiple values\r\n if (typeof key === \"object\") {\r\n return this.each(function () {\r\n jQuery.data(this, key);\r\n });\r\n }\r\n\r\n return arguments.length > 1 ?\r\n\r\n // Sets one value\r\n this.each(function () {\r\n jQuery.data(this, key, value);\r\n }) :\r\n\r\n // Gets one value\r\n // Try to fetch any internally stored data first\r\n elem ? dataAttr(elem, key, jQuery.data(elem, key)) : undefined;\r\n },\r\n\r\n removeData: function (key) {\r\n return this.each(function () {\r\n jQuery.removeData(this, key);\r\n });\r\n }\r\n });\r\n\r\n\r\n jQuery.extend({\r\n queue: function (elem, type, data) {\r\n var queue;\r\n\r\n if (elem) {\r\n type = ( type || \"fx\" ) + \"queue\";\r\n queue = jQuery._data(elem, type);\r\n\r\n // Speed up dequeue by getting out quickly if this is just a lookup\r\n if (data) {\r\n if (!queue || jQuery.isArray(data)) {\r\n queue = jQuery._data(elem, type, jQuery.makeArray(data));\r\n } else {\r\n queue.push(data);\r\n }\r\n }\r\n return queue || [];\r\n }\r\n },\r\n\r\n dequeue: function (elem, type) {\r\n type = type || \"fx\";\r\n\r\n var queue = jQuery.queue(elem, type),\r\n startLength = queue.length,\r\n fn = queue.shift(),\r\n hooks = jQuery._queueHooks(elem, type),\r\n next = function () {\r\n jQuery.dequeue(elem, type);\r\n };\r\n\r\n // If the fx queue is dequeued, always remove the progress sentinel\r\n if (fn === \"inprogress\") {\r\n fn = queue.shift();\r\n startLength--;\r\n }\r\n\r\n if (fn) {\r\n\r\n // Add a progress sentinel to prevent the fx queue from being\r\n // automatically dequeued\r\n if (type === \"fx\") {\r\n queue.unshift(\"inprogress\");\r\n }\r\n\r\n // clear up the last queue stop function\r\n delete hooks.stop;\r\n fn.call(elem, next, hooks);\r\n }\r\n\r\n if (!startLength && hooks) {\r\n hooks.empty.fire();\r\n }\r\n },\r\n\r\n // not intended for public consumption - generates a queueHooks object, or returns the current one\r\n _queueHooks: function (elem, type) {\r\n var key = type + \"queueHooks\";\r\n return jQuery._data(elem, key) || jQuery._data(elem, key, {\r\n empty: jQuery.Callbacks(\"once memory\").add(function () {\r\n jQuery._removeData(elem, type + \"queue\");\r\n jQuery._removeData(elem, key);\r\n })\r\n });\r\n }\r\n });\r\n\r\n jQuery.fn.extend({\r\n queue: function (type, data) {\r\n var setter = 2;\r\n\r\n if (typeof type !== \"string\") {\r\n data = type;\r\n type = \"fx\";\r\n setter--;\r\n }\r\n\r\n if (arguments.length < setter) {\r\n return jQuery.queue(this[0], type);\r\n }\r\n\r\n return data === undefined ?\r\n this :\r\n this.each(function () {\r\n var queue = jQuery.queue(this, type, data);\r\n\r\n // ensure a hooks for this queue\r\n jQuery._queueHooks(this, type);\r\n\r\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\r\n jQuery.dequeue(this, type);\r\n }\r\n });\r\n },\r\n dequeue: function (type) {\r\n return this.each(function () {\r\n jQuery.dequeue(this, type);\r\n });\r\n },\r\n clearQueue: function (type) {\r\n return this.queue(type || \"fx\", []);\r\n },\r\n // Get a promise resolved when queues of a certain type\r\n // are emptied (fx is the type by default)\r\n promise: function (type, obj) {\r\n var tmp,\r\n count = 1,\r\n defer = jQuery.Deferred(),\r\n elements = this,\r\n i = this.length,\r\n resolve = function () {\r\n if (!( --count )) {\r\n defer.resolveWith(elements, [elements]);\r\n }\r\n };\r\n\r\n if (typeof type !== \"string\") {\r\n obj = type;\r\n type = undefined;\r\n }\r\n type = type || \"fx\";\r\n\r\n while (i--) {\r\n tmp = jQuery._data(elements[i], type + \"queueHooks\");\r\n if (tmp && tmp.empty) {\r\n count++;\r\n tmp.empty.add(resolve);\r\n }\r\n }\r\n resolve();\r\n return defer.promise(obj);\r\n }\r\n });\r\n\r\n\r\n /*\r\n * Helper functions for managing events -- not part of the public interface.\r\n * Props to Dean Edwards' addEvent library for many of the ideas.\r\n */\r\n jQuery.event = {\r\n\r\n global: {},\r\n\r\n add: function (elem, types, handler, data, selector) {\r\n var tmp, events, t, handleObjIn,\r\n special, eventHandle, handleObj,\r\n handlers, type, namespaces, origType,\r\n elemData = jQuery._data(elem);\r\n\r\n // Don't attach events to noData or text/comment nodes (but allow plain objects)\r\n if (!elemData) {\r\n return;\r\n }\r\n\r\n // Caller can pass in an object of custom data in lieu of the handler\r\n if (handler.handler) {\r\n handleObjIn = handler;\r\n handler = handleObjIn.handler;\r\n selector = handleObjIn.selector;\r\n }\r\n\r\n // Make sure that the handler has a unique ID, used to find/remove it later\r\n if (!handler.guid) {\r\n handler.guid = jQuery.guid++;\r\n }\r\n\r\n // Init the element's event structure and main handler, if this is the first\r\n if (!(events = elemData.events)) {\r\n events = elemData.events = {};\r\n }\r\n if (!(eventHandle = elemData.handle)) {\r\n eventHandle = elemData.handle = function (e) {\r\n // Discard the second event of a jQuery.event.trigger() and\r\n // when an event is called after a page has unloaded\r\n return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\r\n jQuery.event.dispatch.apply(eventHandle.elem, arguments) :\r\n undefined;\r\n };\r\n // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\r\n eventHandle.elem = elem;\r\n }\r\n\r\n // Handle multiple events separated by a space\r\n types = ( types || \"\" ).match(rnotwhite) || [\"\"];\r\n t = types.length;\r\n while (t--) {\r\n tmp = rtypenamespace.exec(types[t]) || [];\r\n type = origType = tmp[1];\r\n namespaces = ( tmp[2] || \"\" ).split(\".\").sort();\r\n\r\n // There *must* be a type, no attaching namespace-only handlers\r\n if (!type) {\r\n continue;\r\n }\r\n\r\n // If event changes its type, use the special event handlers for the changed type\r\n special = jQuery.event.special[type] || {};\r\n\r\n // If selector defined, determine special event api type, otherwise given type\r\n type = ( selector ? special.delegateType : special.bindType ) || type;\r\n\r\n // Update special based on newly reset type\r\n special = jQuery.event.special[type] || {};\r\n\r\n // handleObj is passed to all event handlers\r\n handleObj = jQuery.extend({\r\n type: type,\r\n origType: origType,\r\n data: data,\r\n handler: handler,\r\n guid: handler.guid,\r\n selector: selector,\r\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\r\n namespace: namespaces.join(\".\")\r\n }, handleObjIn);\r\n\r\n // Init the event handler queue if we're the first\r\n if (!(handlers = events[type])) {\r\n handlers = events[type] = [];\r\n handlers.delegateCount = 0;\r\n\r\n // Only use addEventListener/attachEvent if the special events handler returns false\r\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\r\n // Bind the global event handler to the element\r\n if (elem.addEventListener) {\r\n elem.addEventListener(type, eventHandle, false);\r\n\r\n } else if (elem.attachEvent) {\r\n elem.attachEvent(\"on\" + type, eventHandle);\r\n }\r\n }\r\n }\r\n\r\n if (special.add) {\r\n special.add.call(elem, handleObj);\r\n\r\n if (!handleObj.handler.guid) {\r\n handleObj.handler.guid = handler.guid;\r\n }\r\n }\r\n\r\n // Add to the element's handler list, delegates in front\r\n if (selector) {\r\n handlers.splice(handlers.delegateCount++, 0, handleObj);\r\n } else {\r\n handlers.push(handleObj);\r\n }\r\n\r\n // Keep track of which events have ever been used, for event optimization\r\n jQuery.event.global[type] = true;\r\n }\r\n\r\n // Nullify elem to prevent memory leaks in IE\r\n elem = null;\r\n },\r\n\r\n // Detach an event or set of events from an element\r\n remove: function (elem, types, handler, selector, mappedTypes) {\r\n var j, handleObj, tmp,\r\n origCount, t, events,\r\n special, handlers, type,\r\n namespaces, origType,\r\n elemData = jQuery.hasData(elem) && jQuery._data(elem);\r\n\r\n if (!elemData || !(events = elemData.events)) {\r\n return;\r\n }\r\n\r\n // Once for each type.namespace in types; type may be omitted\r\n types = ( types || \"\" ).match(rnotwhite) || [\"\"];\r\n t = types.length;\r\n while (t--) {\r\n tmp = rtypenamespace.exec(types[t]) || [];\r\n type = origType = tmp[1];\r\n namespaces = ( tmp[2] || \"\" ).split(\".\").sort();\r\n\r\n // Unbind all events (on this namespace, if provided) for the element\r\n if (!type) {\r\n for (type in events) {\r\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\r\n }\r\n continue;\r\n }\r\n\r\n special = jQuery.event.special[type] || {};\r\n type = ( selector ? special.delegateType : special.bindType ) || type;\r\n handlers = events[type] || [];\r\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\r\n\r\n // Remove matching events\r\n origCount = j = handlers.length;\r\n while (j--) {\r\n handleObj = handlers[j];\r\n\r\n if (( mappedTypes || origType === handleObj.origType ) &&\r\n ( !handler || handler.guid === handleObj.guid ) &&\r\n ( !tmp || tmp.test(handleObj.namespace) ) &&\r\n ( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector )) {\r\n handlers.splice(j, 1);\r\n\r\n if (handleObj.selector) {\r\n handlers.delegateCount--;\r\n }\r\n if (special.remove) {\r\n special.remove.call(elem, handleObj);\r\n }\r\n }\r\n }\r\n\r\n // Remove generic event handler if we removed something and no more handlers exist\r\n // (avoids potential for endless recursion during removal of special event handlers)\r\n if (origCount && !handlers.length) {\r\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\r\n jQuery.removeEvent(elem, type, elemData.handle);\r\n }\r\n\r\n delete events[type];\r\n }\r\n }\r\n\r\n // Remove the expando if it's no longer used\r\n if (jQuery.isEmptyObject(events)) {\r\n delete elemData.handle;\r\n\r\n // removeData also checks for emptiness and clears the expando if empty\r\n // so use it instead of delete\r\n jQuery._removeData(elem, \"events\");\r\n }\r\n },\r\n\r\n trigger: function (event, data, elem, onlyHandlers) {\r\n var handle, ontype, cur,\r\n bubbleType, special, tmp, i,\r\n eventPath = [elem || document],\r\n type = hasOwn.call(event, \"type\") ? event.type : event,\r\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\r\n\r\n cur = tmp = elem = elem || document;\r\n\r\n // Don't do events on text and comment nodes\r\n if (elem.nodeType === 3 || elem.nodeType === 8) {\r\n return;\r\n }\r\n\r\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\r\n return;\r\n }\r\n\r\n if (type.indexOf(\".\") >= 0) {\r\n // Namespaced trigger; create a regexp to match event type in handle()\r\n namespaces = type.split(\".\");\r\n type = namespaces.shift();\r\n namespaces.sort();\r\n }\r\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\r\n\r\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n event = event[jQuery.expando] ?\r\n event :\r\n new jQuery.Event(type, typeof event === \"object\" && event);\r\n\r\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n event.isTrigger = onlyHandlers ? 2 : 3;\r\n event.namespace = namespaces.join(\".\");\r\n event.namespace_re = event.namespace ?\r\n new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") :\r\n null;\r\n\r\n // Clean up the event in case it is being reused\r\n event.result = undefined;\r\n if (!event.target) {\r\n event.target = elem;\r\n }\r\n\r\n // Clone any incoming data and prepend the event, creating the handler arg list\r\n data = data == null ?\r\n [event] :\r\n jQuery.makeArray(data, [event]);\r\n\r\n // Allow special events to draw outside the lines\r\n special = jQuery.event.special[type] || {};\r\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\r\n return;\r\n }\r\n\r\n // Determine event propagation path in advance, per W3C events spec (#9951)\r\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\r\n\r\n bubbleType = special.delegateType || type;\r\n if (!rfocusMorph.test(bubbleType + type)) {\r\n cur = cur.parentNode;\r\n }\r\n for (; cur; cur = cur.parentNode) {\r\n eventPath.push(cur);\r\n tmp = cur;\r\n }\r\n\r\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n if (tmp === (elem.ownerDocument || document)) {\r\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\r\n }\r\n }\r\n\r\n // Fire handlers on the event path\r\n i = 0;\r\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\r\n\r\n event.type = i > 1 ?\r\n bubbleType :\r\n special.bindType || type;\r\n\r\n // jQuery handler\r\n handle = ( jQuery._data(cur, \"events\") || {} )[event.type] && jQuery._data(cur, \"handle\");\r\n if (handle) {\r\n handle.apply(cur, data);\r\n }\r\n\r\n // Native handler\r\n handle = ontype && cur[ontype];\r\n if (handle && handle.apply && jQuery.acceptData(cur)) {\r\n event.result = handle.apply(cur, data);\r\n if (event.result === false) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n event.type = type;\r\n\r\n // If nobody prevented the default action, do it now\r\n if (!onlyHandlers && !event.isDefaultPrevented()) {\r\n\r\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) &&\r\n jQuery.acceptData(elem)) {\r\n\r\n // Call a native DOM method on the target with the same name name as the event.\r\n // Can't use an .isFunction() check here because IE6/7 fails that test.\r\n // Don't do default actions on window, that's where global variables be (#6170)\r\n if (ontype && elem[type] && !jQuery.isWindow(elem)) {\r\n\r\n // Don't re-trigger an onFOO event when we call its FOO() method\r\n tmp = elem[ontype];\r\n\r\n if (tmp) {\r\n elem[ontype] = null;\r\n }\r\n\r\n // Prevent re-triggering of the same event, since we already bubbled it above\r\n jQuery.event.triggered = type;\r\n try {\r\n elem[type]();\r\n } catch (e) {\r\n // IE<9 dies on focus/blur to hidden element (#1486,#12518)\r\n // only reproducible on winXP IE8 native, not IE9 in IE8 mode\r\n }\r\n jQuery.event.triggered = undefined;\r\n\r\n if (tmp) {\r\n elem[ontype] = tmp;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return event.result;\r\n },\r\n\r\n dispatch: function (event) {\r\n\r\n // Make a writable jQuery.Event from the native event object\r\n event = jQuery.event.fix(event);\r\n\r\n var i, ret, handleObj, matched, j,\r\n handlerQueue = [],\r\n args = slice.call(arguments),\r\n handlers = ( jQuery._data(this, \"events\") || {} )[event.type] || [],\r\n special = jQuery.event.special[event.type] || {};\r\n\r\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n args[0] = event;\r\n event.delegateTarget = this;\r\n\r\n // Call the preDispatch hook for the mapped type, and let it bail if desired\r\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\r\n return;\r\n }\r\n\r\n // Determine handlers\r\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\r\n\r\n // Run delegates first; they may want to stop propagation beneath us\r\n i = 0;\r\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\r\n event.currentTarget = matched.elem;\r\n\r\n j = 0;\r\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\r\n\r\n // Triggered event must either 1) have no namespace, or\r\n // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\r\n if (!event.namespace_re || event.namespace_re.test(handleObj.namespace)) {\r\n\r\n event.handleObj = handleObj;\r\n event.data = handleObj.data;\r\n\r\n ret = ( (jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler )\r\n .apply(matched.elem, args);\r\n\r\n if (ret !== undefined) {\r\n if ((event.result = ret) === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Call the postDispatch hook for the mapped type\r\n if (special.postDispatch) {\r\n special.postDispatch.call(this, event);\r\n }\r\n\r\n return event.result;\r\n },\r\n\r\n handlers: function (event, handlers) {\r\n var sel, handleObj, matches, i,\r\n handlerQueue = [],\r\n delegateCount = handlers.delegateCount,\r\n cur = event.target;\r\n\r\n // Find delegate handlers\r\n // Black-hole SVG instance trees (#13180)\r\n // Avoid non-left-click bubbling in Firefox (#3861)\r\n if (delegateCount && cur.nodeType && (!event.button || event.type !== \"click\")) {\r\n\r\n /* jshint eqeqeq: false */\r\n for (; cur != this; cur = cur.parentNode || this) {\r\n /* jshint eqeqeq: true */\r\n\r\n // Don't check non-elements (#13208)\r\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n if (cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\")) {\r\n matches = [];\r\n for (i = 0; i < delegateCount; i++) {\r\n handleObj = handlers[i];\r\n\r\n // Don't conflict with Object.prototype properties (#13203)\r\n sel = handleObj.selector + \" \";\r\n\r\n if (matches[sel] === undefined) {\r\n matches[sel] = handleObj.needsContext ?\r\n jQuery(sel, this).index(cur) >= 0 :\r\n jQuery.find(sel, this, null, [cur]).length;\r\n }\r\n if (matches[sel]) {\r\n matches.push(handleObj);\r\n }\r\n }\r\n if (matches.length) {\r\n handlerQueue.push({elem: cur, handlers: matches});\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Add the remaining (directly-bound) handlers\r\n if (delegateCount < handlers.length) {\r\n handlerQueue.push({elem: this, handlers: handlers.slice(delegateCount)});\r\n }\r\n\r\n return handlerQueue;\r\n },\r\n\r\n fix: function (event) {\r\n if (event[jQuery.expando]) {\r\n return event;\r\n }\r\n\r\n // Create a writable copy of the event object and normalize some properties\r\n var i, prop, copy,\r\n type = event.type,\r\n originalEvent = event,\r\n fixHook = this.fixHooks[type];\r\n\r\n if (!fixHook) {\r\n this.fixHooks[type] = fixHook =\r\n rmouseEvent.test(type) ? this.mouseHooks :\r\n rkeyEvent.test(type) ? this.keyHooks :\r\n {};\r\n }\r\n copy = fixHook.props ? this.props.concat(fixHook.props) : this.props;\r\n\r\n event = new jQuery.Event(originalEvent);\r\n\r\n i = copy.length;\r\n while (i--) {\r\n prop = copy[i];\r\n event[prop] = originalEvent[prop];\r\n }\r\n\r\n // Support: IE<9\r\n // Fix target property (#1925)\r\n if (!event.target) {\r\n event.target = originalEvent.srcElement || document;\r\n }\r\n\r\n // Support: Chrome 23+, Safari?\r\n // Target should not be a text node (#504, #13143)\r\n if (event.target.nodeType === 3) {\r\n event.target = event.target.parentNode;\r\n }\r\n\r\n // Support: IE<9\r\n // For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\r\n event.metaKey = !!event.metaKey;\r\n\r\n return fixHook.filter ? fixHook.filter(event, originalEvent) : event;\r\n },\r\n\r\n // Includes some event props shared by KeyEvent and MouseEvent\r\n props: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\r\n\r\n fixHooks: {},\r\n\r\n keyHooks: {\r\n props: \"char charCode key keyCode\".split(\" \"),\r\n filter: function (event, original) {\r\n\r\n // Add which for key events\r\n if (event.which == null) {\r\n event.which = original.charCode != null ? original.charCode : original.keyCode;\r\n }\r\n\r\n return event;\r\n }\r\n },\r\n\r\n mouseHooks: {\r\n props: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\r\n filter: function (event, original) {\r\n var body, eventDoc, doc,\r\n button = original.button,\r\n fromElement = original.fromElement;\r\n\r\n // Calculate pageX/Y if missing and clientX/Y available\r\n if (event.pageX == null && original.clientX != null) {\r\n eventDoc = event.target.ownerDocument || document;\r\n doc = eventDoc.documentElement;\r\n body = eventDoc.body;\r\n\r\n event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\r\n event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\r\n }\r\n\r\n // Add relatedTarget, if necessary\r\n if (!event.relatedTarget && fromElement) {\r\n event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\r\n }\r\n\r\n // Add which for click: 1 === left; 2 === middle; 3 === right\r\n // Note: button is not normalized, so don't use it\r\n if (!event.which && button !== undefined) {\r\n event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\r\n }\r\n\r\n return event;\r\n }\r\n },\r\n\r\n special: {\r\n load: {\r\n // Prevent triggered image.load events from bubbling to window.load\r\n noBubble: true\r\n },\r\n focus: {\r\n // Fire native event if possible so blur/focus sequence is correct\r\n trigger: function () {\r\n if (this !== safeActiveElement() && this.focus) {\r\n try {\r\n this.focus();\r\n return false;\r\n } catch (e) {\r\n // Support: IE<9\r\n // If we error on focus to hidden element (#1486, #12518),\r\n // let .trigger() run the handlers\r\n }\r\n }\r\n },\r\n delegateType: \"focusin\"\r\n },\r\n blur: {\r\n trigger: function () {\r\n if (this === safeActiveElement() && this.blur) {\r\n this.blur();\r\n return false;\r\n }\r\n },\r\n delegateType: \"focusout\"\r\n },\r\n click: {\r\n // For checkbox, fire native event so checked state will be right\r\n trigger: function () {\r\n if (jQuery.nodeName(this, \"input\") && this.type === \"checkbox\" && this.click) {\r\n this.click();\r\n return false;\r\n }\r\n },\r\n\r\n // For cross-browser consistency, don't fire native .click() on links\r\n _default: function (event) {\r\n return jQuery.nodeName(event.target, \"a\");\r\n }\r\n },\r\n\r\n beforeunload: {\r\n postDispatch: function (event) {\r\n\r\n // Support: Firefox 20+\r\n // Firefox doesn't alert if the returnValue field is not set.\r\n if (event.result !== undefined && event.originalEvent) {\r\n event.originalEvent.returnValue = event.result;\r\n }\r\n }\r\n }\r\n },\r\n\r\n simulate: function (type, elem, event, bubble) {\r\n // Piggyback on a donor event to simulate a different one.\r\n // Fake originalEvent to avoid donor's stopPropagation, but if the\r\n // simulated event prevents default then we do the same on the donor.\r\n var e = jQuery.extend(\r\n new jQuery.Event(),\r\n event,\r\n {\r\n type: type,\r\n isSimulated: true,\r\n originalEvent: {}\r\n }\r\n );\r\n if (bubble) {\r\n jQuery.event.trigger(e, null, elem);\r\n } else {\r\n jQuery.event.dispatch.call(elem, e);\r\n }\r\n if (e.isDefaultPrevented()) {\r\n event.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n jQuery.removeEvent = document.removeEventListener ?\r\n function (elem, type, handle) {\r\n if (elem.removeEventListener) {\r\n elem.removeEventListener(type, handle, false);\r\n }\r\n } :\r\n function (elem, type, handle) {\r\n var name = \"on\" + type;\r\n\r\n if (elem.detachEvent) {\r\n\r\n // #8545, #7054, preventing memory leaks for custom events in IE6-8\r\n // detachEvent needed property on element, by name of that event, to properly expose it to GC\r\n if (typeof elem[name] === strundefined) {\r\n elem[name] = null;\r\n }\r\n\r\n elem.detachEvent(name, handle);\r\n }\r\n };\r\n\r\n jQuery.Event = function (src, props) {\r\n // Allow instantiation without the 'new' keyword\r\n if (!(this instanceof jQuery.Event)) {\r\n return new jQuery.Event(src, props);\r\n }\r\n\r\n // Event object\r\n if (src && src.type) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n\r\n // Events bubbling up the document may have been marked as prevented\r\n // by a handler lower down the tree; reflect the correct value.\r\n this.isDefaultPrevented = src.defaultPrevented ||\r\n src.defaultPrevented === undefined &&\r\n // Support: IE < 9, Android < 4.0\r\n src.returnValue === false ?\r\n returnTrue :\r\n returnFalse;\r\n\r\n // Event type\r\n } else {\r\n this.type = src;\r\n }\r\n\r\n // Put explicitly provided properties onto the event object\r\n if (props) {\r\n jQuery.extend(this, props);\r\n }\r\n\r\n // Create a timestamp if incoming event doesn't have one\r\n this.timeStamp = src && src.timeStamp || jQuery.now();\r\n\r\n // Mark it as fixed\r\n this[jQuery.expando] = true;\r\n };\r\n\r\n var rformElems = /^(?:input|select|textarea)$/i,\r\n rkeyEvent = /^key/,\r\n rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\r\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\r\n\r\n function returnTrue() {\r\n return true;\r\n }\r\n\r\n function returnFalse() {\r\n return false;\r\n }\r\n\r\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\n jQuery.Event.prototype = {\r\n isDefaultPrevented: returnFalse,\r\n isPropagationStopped: returnFalse,\r\n isImmediatePropagationStopped: returnFalse,\r\n\r\n preventDefault: function () {\r\n var e = this.originalEvent;\r\n\r\n this.isDefaultPrevented = returnTrue;\r\n if (!e) {\r\n return;\r\n }\r\n\r\n // If preventDefault exists, run it on the original event\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n\r\n // Support: IE\r\n // Otherwise set the returnValue property of the original event to false\r\n } else {\r\n e.returnValue = false;\r\n }\r\n },\r\n stopPropagation: function () {\r\n var e = this.originalEvent;\r\n\r\n this.isPropagationStopped = returnTrue;\r\n if (!e) {\r\n return;\r\n }\r\n // If stopPropagation exists, run it on the original event\r\n if (e.stopPropagation) {\r\n e.stopPropagation();\r\n }\r\n\r\n // Support: IE\r\n // Set the cancelBubble property of the original event to true\r\n e.cancelBubble = true;\r\n },\r\n stopImmediatePropagation: function () {\r\n var e = this.originalEvent;\r\n\r\n this.isImmediatePropagationStopped = returnTrue;\r\n\r\n if (e && e.stopImmediatePropagation) {\r\n e.stopImmediatePropagation();\r\n }\r\n\r\n this.stopPropagation();\r\n }\r\n };\r\n\r\n\r\n// IE submit delegation\r\n if (!support.submitBubbles) {\r\n\r\n jQuery.event.special.submit = {\r\n setup: function () {\r\n // Only need this for delegated form submit events\r\n if (jQuery.nodeName(this, \"form\")) {\r\n return false;\r\n }\r\n\r\n // Lazy-add a submit handler when a descendant form may potentially be submitted\r\n jQuery.event.add(this, \"click._submit keypress._submit\", function (e) {\r\n // Node name check avoids a VML-related crash in IE (#9807)\r\n var elem = e.target,\r\n form = jQuery.nodeName(elem, \"input\") || jQuery.nodeName(elem, \"button\") ? elem.form : undefined;\r\n if (form && !jQuery._data(form, \"submitBubbles\")) {\r\n jQuery.event.add(form, \"submit._submit\", function (event) {\r\n event._submit_bubble = true;\r\n });\r\n jQuery._data(form, \"submitBubbles\", true);\r\n }\r\n });\r\n // return undefined since we don't need an event listener\r\n },\r\n\r\n postDispatch: function (event) {\r\n // If form was submitted by the user, bubble the event up the tree\r\n if (event._submit_bubble) {\r\n delete event._submit_bubble;\r\n if (this.parentNode && !event.isTrigger) {\r\n jQuery.event.simulate(\"submit\", this.parentNode, event, true);\r\n }\r\n }\r\n },\r\n\r\n teardown: function () {\r\n // Only need this for delegated form submit events\r\n if (jQuery.nodeName(this, \"form\")) {\r\n return false;\r\n }\r\n\r\n // Remove delegated handlers; cleanData eventually reaps submit handlers attached above\r\n jQuery.event.remove(this, \"._submit\");\r\n }\r\n };\r\n }\r\n\r\n// IE change delegation and checkbox/radio fix\r\n if (!support.changeBubbles) {\r\n\r\n jQuery.event.special.change = {\r\n\r\n setup: function () {\r\n\r\n if (rformElems.test(this.nodeName)) {\r\n // IE doesn't fire change on a check/radio until blur; trigger it on click\r\n // after a propertychange. Eat the blur-change in special.change.handle.\r\n // This still fires onchange a second time for check/radio after blur.\r\n if (this.type === \"checkbox\" || this.type === \"radio\") {\r\n jQuery.event.add(this, \"propertychange._change\", function (event) {\r\n if (event.originalEvent.propertyName === \"checked\") {\r\n this._just_changed = true;\r\n }\r\n });\r\n jQuery.event.add(this, \"click._change\", function (event) {\r\n if (this._just_changed && !event.isTrigger) {\r\n this._just_changed = false;\r\n }\r\n // Allow triggered, simulated change events (#11500)\r\n jQuery.event.simulate(\"change\", this, event, true);\r\n });\r\n }\r\n return false;\r\n }\r\n // Delegated event; lazy-add a change handler on descendant inputs\r\n jQuery.event.add(this, \"beforeactivate._change\", function (e) {\r\n var elem = e.target;\r\n\r\n if (rformElems.test(elem.nodeName) && !jQuery._data(elem, \"changeBubbles\")) {\r\n jQuery.event.add(elem, \"change._change\", function (event) {\r\n if (this.parentNode && !event.isSimulated && !event.isTrigger) {\r\n jQuery.event.simulate(\"change\", this.parentNode, event, true);\r\n }\r\n });\r\n jQuery._data(elem, \"changeBubbles\", true);\r\n }\r\n });\r\n },\r\n\r\n handle: function (event) {\r\n var elem = event.target;\r\n\r\n // Swallow native change events from checkbox/radio, we already triggered them above\r\n if (this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\")) {\r\n return event.handleObj.handler.apply(this, arguments);\r\n }\r\n },\r\n\r\n teardown: function () {\r\n jQuery.event.remove(this, \"._change\");\r\n\r\n return !rformElems.test(this.nodeName);\r\n }\r\n };\r\n }\r\n\r\n// Create \"bubbling\" focus and blur events\r\n if (!support.focusinBubbles) {\r\n jQuery.each({focus: \"focusin\", blur: \"focusout\"}, function (orig, fix) {\r\n\r\n // Attach a single capturing handler on the document while someone wants focusin/focusout\r\n var handler = function (event) {\r\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event), true);\r\n };\r\n\r\n jQuery.event.special[fix] = {\r\n setup: function () {\r\n var doc = this.ownerDocument || this,\r\n attaches = jQuery._data(doc, fix);\r\n\r\n if (!attaches) {\r\n doc.addEventListener(orig, handler, true);\r\n }\r\n jQuery._data(doc, fix, ( attaches || 0 ) + 1);\r\n },\r\n teardown: function () {\r\n var doc = this.ownerDocument || this,\r\n attaches = jQuery._data(doc, fix) - 1;\r\n\r\n if (!attaches) {\r\n doc.removeEventListener(orig, handler, true);\r\n jQuery._removeData(doc, fix);\r\n } else {\r\n jQuery._data(doc, fix, attaches);\r\n }\r\n }\r\n };\r\n });\r\n }\r\n\r\n jQuery.fn.extend({\r\n\r\n on: function (types, selector, data, fn, /*INTERNAL*/ one) {\r\n var type, origFn;\r\n\r\n // Types can be a map of types/handlers\r\n if (typeof types === \"object\") {\r\n // ( types-Object, selector, data )\r\n if (typeof selector !== \"string\") {\r\n // ( types-Object, data )\r\n data = data || selector;\r\n selector = undefined;\r\n }\r\n for (type in types) {\r\n this.on(type, selector, data, types[type], one);\r\n }\r\n return this;\r\n }\r\n\r\n if (data == null && fn == null) {\r\n // ( types, fn )\r\n fn = selector;\r\n data = selector = undefined;\r\n } else if (fn == null) {\r\n if (typeof selector === \"string\") {\r\n // ( types, selector, fn )\r\n fn = data;\r\n data = undefined;\r\n } else {\r\n // ( types, data, fn )\r\n fn = data;\r\n data = selector;\r\n selector = undefined;\r\n }\r\n }\r\n if (fn === false) {\r\n fn = returnFalse;\r\n } else if (!fn) {\r\n return this;\r\n }\r\n\r\n if (one === 1) {\r\n origFn = fn;\r\n fn = function (event) {\r\n // Can use an empty set, since event contains the info\r\n jQuery().off(event);\r\n return origFn.apply(this, arguments);\r\n };\r\n // Use same guid so caller can remove using origFn\r\n fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\r\n }\r\n return this.each(function () {\r\n jQuery.event.add(this, types, fn, data, selector);\r\n });\r\n },\r\n one: function (types, selector, data, fn) {\r\n return this.on(types, selector, data, fn, 1);\r\n },\r\n off: function (types, selector, fn) {\r\n var handleObj, type;\r\n if (types && types.preventDefault && types.handleObj) {\r\n // ( event ) dispatched jQuery.Event\r\n handleObj = types.handleObj;\r\n jQuery(types.delegateTarget).off(\r\n handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\r\n handleObj.selector,\r\n handleObj.handler\r\n );\r\n return this;\r\n }\r\n if (typeof types === \"object\") {\r\n // ( types-object [, selector] )\r\n for (type in types) {\r\n this.off(type, selector, types[type]);\r\n }\r\n return this;\r\n }\r\n if (selector === false || typeof selector === \"function\") {\r\n // ( types [, fn] )\r\n fn = selector;\r\n selector = undefined;\r\n }\r\n if (fn === false) {\r\n fn = returnFalse;\r\n }\r\n return this.each(function () {\r\n jQuery.event.remove(this, types, fn, selector);\r\n });\r\n },\r\n\r\n trigger: function (type, data) {\r\n return this.each(function () {\r\n jQuery.event.trigger(type, data, this);\r\n });\r\n },\r\n triggerHandler: function (type, data) {\r\n var elem = this[0];\r\n if (elem) {\r\n return jQuery.event.trigger(type, data, elem, true);\r\n }\r\n }\r\n });\r\n\r\n\r\n// Based off of the plugin by Clint Helfers, with permission.\r\n// http://blindsignals.com/index.php/2009/07/jquery-delay/\r\n jQuery.fn.delay = function (time, type) {\r\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\r\n type = type || \"fx\";\r\n\r\n return this.queue(type, function (next, hooks) {\r\n var timeout = setTimeout(next, time);\r\n hooks.stop = function () {\r\n clearTimeout(timeout);\r\n };\r\n });\r\n };\r\n\r\n\r\n var nonce = jQuery.now();\r\n\r\n var rquery = (/\\?/);\r\n\r\n\r\n var rvalidtokens = /(,)|(\\[|{)|(}|])|\"(?:[^\"\\\\\\r\\n]|\\\\[\"\\\\\\/bfnrt]|\\\\u[\\da-fA-F]{4})*\"\\s*:?|true|false|null|-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|)/g;\r\n\r\n jQuery.parseJSON = function (data) {\r\n // Attempt to parse using the native JSON parser first\r\n if (window.JSON && window.JSON.parse) {\r\n // Support: Android 2.3\r\n // Workaround failure to string-cast null input\r\n return window.JSON.parse(data + \"\");\r\n }\r\n\r\n var requireNonComma,\r\n depth = null,\r\n str = jQuery.trim(data + \"\");\r\n\r\n // Guard against invalid (and possibly dangerous) input by ensuring that nothing remains\r\n // after removing valid tokens\r\n return str && !jQuery.trim(str.replace(rvalidtokens, function (token, comma, open, close) {\r\n\r\n // Force termination if we see a misplaced comma\r\n if (requireNonComma && comma) {\r\n depth = 0;\r\n }\r\n\r\n // Perform no more replacements after returning to outermost depth\r\n if (depth === 0) {\r\n return token;\r\n }\r\n\r\n // Commas must not follow \"[\", \"{\", or \",\"\r\n requireNonComma = open || comma;\r\n\r\n // Determine new depth\r\n // array/object open (\"[\" or \"{\"): depth += true - false (increment)\r\n // array/object close (\"]\" or \"}\"): depth += false - true (decrement)\r\n // other cases (\",\" or primitive): depth += true - true (numeric cast)\r\n depth += !close - !open;\r\n\r\n // Remove this token\r\n return \"\";\r\n })) ?\r\n ( Function(\"return \" + str) )() :\r\n jQuery.error(\"Invalid JSON: \" + data);\r\n };\r\n\r\n\r\n// Cross-browser xml parsing\r\n jQuery.parseXML = function (data) {\r\n var xml, tmp;\r\n if (!data || typeof data !== \"string\") {\r\n return null;\r\n }\r\n try {\r\n if (window.DOMParser) { // Standard\r\n tmp = new DOMParser();\r\n xml = tmp.parseFromString(data, \"text/xml\");\r\n } else { // IE\r\n xml = new ActiveXObject(\"Microsoft.XMLDOM\");\r\n xml.async = \"false\";\r\n xml.loadXML(data);\r\n }\r\n } catch (e) {\r\n xml = undefined;\r\n }\r\n if (!xml || !xml.documentElement || xml.getElementsByTagName(\"parsererror\").length) {\r\n jQuery.error(\"Invalid XML: \" + data);\r\n }\r\n return xml;\r\n };\r\n\r\n\r\n var\r\n // Document location\r\n ajaxLocParts,\r\n ajaxLocation,\r\n\r\n rhash = /#.*$/,\r\n rts = /([?&])_=[^&]*/,\r\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg, // IE leaves an \\r character at EOL\r\n // #7653, #8125, #8152: local protocol detection\r\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\r\n rnoContent = /^(?:GET|HEAD)$/,\r\n rprotocol = /^\\/\\//,\r\n rurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\r\n\r\n /* Prefilters\r\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\r\n * 2) These are called:\r\n * - BEFORE asking for a transport\r\n * - AFTER param serialization (s.data is a string if s.processData is true)\r\n * 3) key is the dataType\r\n * 4) the catchall symbol \"*\" can be used\r\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\r\n */\r\n prefilters = {},\r\n\r\n /* Transports bindings\r\n * 1) key is the dataType\r\n * 2) the catchall symbol \"*\" can be used\r\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\r\n */\r\n transports = {},\r\n\r\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\r\n allTypes = \"*/\".concat(\"*\");\r\n\r\n// #8138, IE may throw an exception when accessing\r\n// a field from window.location if document.domain has been set\r\n try {\r\n ajaxLocation = location.href;\r\n } catch (e) {\r\n // Use the href attribute of an A element\r\n // since IE will modify it given document.location\r\n ajaxLocation = document.createElement(\"a\");\r\n ajaxLocation.href = \"\";\r\n ajaxLocation = ajaxLocation.href;\r\n }\r\n\r\n// Segment location into parts\r\n ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || [];\r\n\r\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\r\n function addToPrefiltersOrTransports(structure) {\r\n\r\n // dataTypeExpression is optional and defaults to \"*\"\r\n return function (dataTypeExpression, func) {\r\n\r\n if (typeof dataTypeExpression !== \"string\") {\r\n func = dataTypeExpression;\r\n dataTypeExpression = \"*\";\r\n }\r\n\r\n var dataType,\r\n i = 0,\r\n dataTypes = dataTypeExpression.toLowerCase().match(rnotwhite) || [];\r\n\r\n if (jQuery.isFunction(func)) {\r\n // For each dataType in the dataTypeExpression\r\n while ((dataType = dataTypes[i++])) {\r\n // Prepend if requested\r\n if (dataType.charAt(0) === \"+\") {\r\n dataType = dataType.slice(1) || \"*\";\r\n (structure[dataType] = structure[dataType] || []).unshift(func);\r\n\r\n // Otherwise append\r\n } else {\r\n (structure[dataType] = structure[dataType] || []).push(func);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n// Base inspection function for prefilters and transports\r\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\r\n\r\n var inspected = {},\r\n seekingTransport = ( structure === transports );\r\n\r\n function inspect(dataType) {\r\n var selected;\r\n inspected[dataType] = true;\r\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\r\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\r\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\r\n options.dataTypes.unshift(dataTypeOrTransport);\r\n inspect(dataTypeOrTransport);\r\n return false;\r\n } else if (seekingTransport) {\r\n return !( selected = dataTypeOrTransport );\r\n }\r\n });\r\n return selected;\r\n }\r\n\r\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\r\n }\r\n\r\n// A special extend for ajax options\r\n// that takes \"flat\" options (not to be deep extended)\r\n// Fixes #9887\r\n function ajaxExtend(target, src) {\r\n var deep, key,\r\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\r\n\r\n for (key in src) {\r\n if (src[key] !== undefined) {\r\n ( flatOptions[key] ? target : ( deep || (deep = {}) ) )[key] = src[key];\r\n }\r\n }\r\n if (deep) {\r\n jQuery.extend(true, target, deep);\r\n }\r\n\r\n return target;\r\n }\r\n\r\n /* Handles responses to an ajax request:\r\n * - finds the right dataType (mediates between content-type and expected dataType)\r\n * - returns the corresponding response\r\n */\r\n function ajaxHandleResponses(s, jqXHR, responses) {\r\n var firstDataType, ct, finalDataType, type,\r\n contents = s.contents,\r\n dataTypes = s.dataTypes;\r\n\r\n // Remove auto dataType and get content-type in the process\r\n while (dataTypes[0] === \"*\") {\r\n dataTypes.shift();\r\n if (ct === undefined) {\r\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\r\n }\r\n }\r\n\r\n // Check if we're dealing with a known content-type\r\n if (ct) {\r\n for (type in contents) {\r\n if (contents[type] && contents[type].test(ct)) {\r\n dataTypes.unshift(type);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Check to see if we have a response for the expected dataType\r\n if (dataTypes[0] in responses) {\r\n finalDataType = dataTypes[0];\r\n } else {\r\n // Try convertible dataTypes\r\n for (type in responses) {\r\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\r\n finalDataType = type;\r\n break;\r\n }\r\n if (!firstDataType) {\r\n firstDataType = type;\r\n }\r\n }\r\n // Or just use first one\r\n finalDataType = finalDataType || firstDataType;\r\n }\r\n\r\n // If we found a dataType\r\n // We add the dataType to the list if needed\r\n // and return the corresponding response\r\n if (finalDataType) {\r\n if (finalDataType !== dataTypes[0]) {\r\n dataTypes.unshift(finalDataType);\r\n }\r\n return responses[finalDataType];\r\n }\r\n }\r\n\r\n /* Chain conversions given the request and the original response\r\n * Also sets the responseXXX fields on the jqXHR instance\r\n */\r\n function ajaxConvert(s, response, jqXHR, isSuccess) {\r\n var conv2, current, conv, tmp, prev,\r\n converters = {},\r\n // Work with a copy of dataTypes in case we need to modify it for conversion\r\n dataTypes = s.dataTypes.slice();\r\n\r\n // Create converters map with lowercased keys\r\n if (dataTypes[1]) {\r\n for (conv in s.converters) {\r\n converters[conv.toLowerCase()] = s.converters[conv];\r\n }\r\n }\r\n\r\n current = dataTypes.shift();\r\n\r\n // Convert to each sequential dataType\r\n while (current) {\r\n\r\n if (s.responseFields[current]) {\r\n jqXHR[s.responseFields[current]] = response;\r\n }\r\n\r\n // Apply the dataFilter if provided\r\n if (!prev && isSuccess && s.dataFilter) {\r\n response = s.dataFilter(response, s.dataType);\r\n }\r\n\r\n prev = current;\r\n current = dataTypes.shift();\r\n\r\n if (current) {\r\n\r\n // There's only work to do if current dataType is non-auto\r\n if (current === \"*\") {\r\n\r\n current = prev;\r\n\r\n // Convert response if prev dataType is non-auto and differs from current\r\n } else if (prev !== \"*\" && prev !== current) {\r\n\r\n // Seek a direct converter\r\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\r\n\r\n // If none found, seek a pair\r\n if (!conv) {\r\n for (conv2 in converters) {\r\n\r\n // If conv2 outputs current\r\n tmp = conv2.split(\" \");\r\n if (tmp[1] === current) {\r\n\r\n // If prev can be converted to accepted input\r\n conv = converters[prev + \" \" + tmp[0]] ||\r\n converters[\"* \" + tmp[0]];\r\n if (conv) {\r\n // Condense equivalence converters\r\n if (conv === true) {\r\n conv = converters[conv2];\r\n\r\n // Otherwise, insert the intermediate dataType\r\n } else if (converters[conv2] !== true) {\r\n current = tmp[0];\r\n dataTypes.unshift(tmp[1]);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Apply converter (if not an equivalence)\r\n if (conv !== true) {\r\n\r\n // Unless errors are allowed to bubble, catch and return them\r\n if (conv && s[\"throws\"]) {\r\n response = conv(response);\r\n } else {\r\n try {\r\n response = conv(response);\r\n } catch (e) {\r\n return {\r\n state: \"parsererror\",\r\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\r\n };\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {state: \"success\", data: response};\r\n }\r\n\r\n jQuery.extend({\r\n\r\n // Counter for holding the number of active queries\r\n active: 0,\r\n\r\n // Last-Modified header cache for next request\r\n lastModified: {},\r\n etag: {},\r\n\r\n ajaxSettings: {\r\n url: ajaxLocation,\r\n type: \"GET\",\r\n isLocal: rlocalProtocol.test(ajaxLocParts[1]),\r\n global: true,\r\n processData: true,\r\n async: true,\r\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n /*\r\n timeout: 0,\r\n data: null,\r\n dataType: null,\r\n username: null,\r\n password: null,\r\n cache: null,\r\n throws: false,\r\n traditional: false,\r\n headers: {},\r\n */\r\n\r\n accepts: {\r\n \"*\": allTypes,\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\"\r\n },\r\n\r\n contents: {\r\n xml: /xml/,\r\n html: /html/,\r\n json: /json/\r\n },\r\n\r\n responseFields: {\r\n xml: \"responseXML\",\r\n text: \"responseText\",\r\n json: \"responseJSON\"\r\n },\r\n\r\n // Data converters\r\n // Keys separate source (or catchall \"*\") and destination types with a single space\r\n converters: {\r\n\r\n // Convert anything to text\r\n \"* text\": String,\r\n\r\n // Text to html (true = no transformation)\r\n \"text html\": true,\r\n\r\n // Evaluate text as a json expression\r\n \"text json\": jQuery.parseJSON,\r\n\r\n // Parse text as xml\r\n \"text xml\": jQuery.parseXML\r\n },\r\n\r\n // For options that shouldn't be deep extended:\r\n // you can add your own custom options here if\r\n // and when you create one that shouldn't be\r\n // deep extended (see ajaxExtend)\r\n flatOptions: {\r\n url: true,\r\n context: true\r\n }\r\n },\r\n\r\n // Creates a full fledged settings object into target\r\n // with both ajaxSettings and settings fields.\r\n // If target is omitted, writes into ajaxSettings.\r\n ajaxSetup: function (target, settings) {\r\n return settings ?\r\n\r\n // Building a settings object\r\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\r\n\r\n // Extending ajaxSettings\r\n ajaxExtend(jQuery.ajaxSettings, target);\r\n },\r\n\r\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\r\n ajaxTransport: addToPrefiltersOrTransports(transports),\r\n\r\n // Main method\r\n ajax: function (url, options) {\r\n\r\n // If url is an object, simulate pre-1.5 signature\r\n if (typeof url === \"object\") {\r\n options = url;\r\n url = undefined;\r\n }\r\n\r\n // Force options to be an object\r\n options = options || {};\r\n\r\n var // Cross-domain detection vars\r\n parts,\r\n // Loop variable\r\n i,\r\n // URL without anti-cache param\r\n cacheURL,\r\n // Response headers as string\r\n responseHeadersString,\r\n // timeout handle\r\n timeoutTimer,\r\n\r\n // To know if global events are to be dispatched\r\n fireGlobals,\r\n\r\n transport,\r\n // Response headers\r\n responseHeaders,\r\n // Create the final options object\r\n s = jQuery.ajaxSetup({}, options),\r\n // Callbacks context\r\n callbackContext = s.context || s,\r\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\r\n globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\r\n jQuery(callbackContext) :\r\n jQuery.event,\r\n // Deferreds\r\n deferred = jQuery.Deferred(),\r\n completeDeferred = jQuery.Callbacks(\"once memory\"),\r\n // Status-dependent callbacks\r\n statusCode = s.statusCode || {},\r\n // Headers (they are sent all at once)\r\n requestHeaders = {},\r\n requestHeadersNames = {},\r\n // The jqXHR state\r\n state = 0,\r\n // Default abort message\r\n strAbort = \"canceled\",\r\n // Fake xhr\r\n jqXHR = {\r\n readyState: 0,\r\n\r\n // Builds headers hashtable if needed\r\n getResponseHeader: function (key) {\r\n var match;\r\n if (state === 2) {\r\n if (!responseHeaders) {\r\n responseHeaders = {};\r\n while ((match = rheaders.exec(responseHeadersString))) {\r\n responseHeaders[match[1].toLowerCase()] = match[2];\r\n }\r\n }\r\n match = responseHeaders[key.toLowerCase()];\r\n }\r\n return match == null ? null : match;\r\n },\r\n\r\n // Raw string\r\n getAllResponseHeaders: function () {\r\n return state === 2 ? responseHeadersString : null;\r\n },\r\n\r\n // Caches the header\r\n setRequestHeader: function (name, value) {\r\n var lname = name.toLowerCase();\r\n if (!state) {\r\n name = requestHeadersNames[lname] = requestHeadersNames[lname] || name;\r\n requestHeaders[name] = value;\r\n }\r\n return this;\r\n },\r\n\r\n // Overrides response content-type header\r\n overrideMimeType: function (type) {\r\n if (!state) {\r\n s.mimeType = type;\r\n }\r\n return this;\r\n },\r\n\r\n // Status-dependent callbacks\r\n statusCode: function (map) {\r\n var code;\r\n if (map) {\r\n if (state < 2) {\r\n for (code in map) {\r\n // Lazy-add the new callback in a way that preserves old ones\r\n statusCode[code] = [statusCode[code], map[code]];\r\n }\r\n } else {\r\n // Execute the appropriate callbacks\r\n jqXHR.always(map[jqXHR.status]);\r\n }\r\n }\r\n return this;\r\n },\r\n\r\n // Cancel the request\r\n abort: function (statusText) {\r\n var finalText = statusText || strAbort;\r\n if (transport) {\r\n transport.abort(finalText);\r\n }\r\n done(0, finalText);\r\n return this;\r\n }\r\n };\r\n\r\n // Attach deferreds\r\n deferred.promise(jqXHR).complete = completeDeferred.add;\r\n jqXHR.success = jqXHR.done;\r\n jqXHR.error = jqXHR.fail;\r\n\r\n // Remove hash character (#7531: and string promotion)\r\n // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)\r\n // Handle falsy url in the settings object (#10093: consistency with old signature)\r\n // We also use the url parameter if available\r\n s.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace(rhash, \"\").replace(rprotocol, ajaxLocParts[1] + \"//\");\r\n\r\n // Alias method option to type as per ticket #12004\r\n s.type = options.method || options.type || s.method || s.type;\r\n\r\n // Extract dataTypes list\r\n s.dataTypes = jQuery.trim(s.dataType || \"*\").toLowerCase().match(rnotwhite) || [\"\"];\r\n\r\n // A cross-domain request is in order when we have a protocol:host:port mismatch\r\n if (s.crossDomain == null) {\r\n parts = rurl.exec(s.url.toLowerCase());\r\n s.crossDomain = !!( parts &&\r\n ( parts[1] !== ajaxLocParts[1] || parts[2] !== ajaxLocParts[2] ||\r\n ( parts[3] || ( parts[1] === \"http:\" ? \"80\" : \"443\" ) ) !==\r\n ( ajaxLocParts[3] || ( ajaxLocParts[1] === \"http:\" ? \"80\" : \"443\" ) ) )\r\n );\r\n }\r\n\r\n // Convert data if not already a string\r\n if (s.data && s.processData && typeof s.data !== \"string\") {\r\n s.data = jQuery.param(s.data, s.traditional);\r\n }\r\n\r\n // Apply prefilters\r\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\r\n\r\n // If request was aborted inside a prefilter, stop there\r\n if (state === 2) {\r\n return jqXHR;\r\n }\r\n\r\n // We can fire global events as of now if asked to\r\n fireGlobals = s.global;\r\n\r\n // Watch for a new set of requests\r\n if (fireGlobals && jQuery.active++ === 0) {\r\n jQuery.event.trigger(\"ajaxStart\");\r\n }\r\n\r\n // Uppercase the type\r\n s.type = s.type.toUpperCase();\r\n\r\n // Determine if request has content\r\n s.hasContent = !rnoContent.test(s.type);\r\n\r\n // Save the URL in case we're toying with the If-Modified-Since\r\n // and/or If-None-Match header later on\r\n cacheURL = s.url;\r\n\r\n // More options handling for requests with no content\r\n if (!s.hasContent) {\r\n\r\n // If data is available, append data to url\r\n if (s.data) {\r\n cacheURL = ( s.url += ( rquery.test(cacheURL) ? \"&\" : \"?\" ) + s.data );\r\n // #9682: remove data so that it's not used in an eventual retry\r\n delete s.data;\r\n }\r\n\r\n // Add anti-cache in url if needed\r\n if (s.cache === false) {\r\n s.url = rts.test(cacheURL) ?\r\n\r\n // If there is already a '_' parameter, set its value\r\n cacheURL.replace(rts, \"$1_=\" + nonce++) :\r\n\r\n // Otherwise add one to the end\r\n cacheURL + ( rquery.test(cacheURL) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\r\n }\r\n }\r\n\r\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n if (s.ifModified) {\r\n if (jQuery.lastModified[cacheURL]) {\r\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\r\n }\r\n if (jQuery.etag[cacheURL]) {\r\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\r\n }\r\n }\r\n\r\n // Set the correct header, if data is being sent\r\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\r\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\r\n }\r\n\r\n // Set the Accepts header for the server, depending on the dataType\r\n // jqXHR.setRequestHeader(\r\n // \"Accept\",\r\n // s.dataTypes[0] && s.accepts[s.dataTypes[0]] ?\r\n // s.accepts[s.dataTypes[0]] + ( s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\r\n // s.accepts[\"*\"]\r\n // );\r\n\r\n // Check for headers option\r\n for (i in s.headers) {\r\n jqXHR.setRequestHeader(i, s.headers[i]);\r\n }\r\n\r\n // Allow custom headers/mimetypes and early abort\r\n if (s.beforeSend && ( s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2 )) {\r\n // Abort if not done already and return\r\n return jqXHR.abort();\r\n }\r\n\r\n // aborting is no longer a cancellation\r\n strAbort = \"abort\";\r\n\r\n // Install callbacks on deferreds\r\n for (i in {success: 1, error: 1, complete: 1}) {\r\n jqXHR[i](s[i]);\r\n }\r\n\r\n // Get transport\r\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\r\n\r\n // If no transport, we auto-abort\r\n if (!transport) {\r\n done(-1, \"No Transport\");\r\n } else {\r\n jqXHR.readyState = 1;\r\n\r\n // Send global event\r\n if (fireGlobals) {\r\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\r\n }\r\n // Timeout\r\n if (s.async && s.timeout > 0) {\r\n timeoutTimer = setTimeout(function () {\r\n jqXHR.abort(\"timeout\");\r\n }, s.timeout);\r\n }\r\n\r\n try {\r\n state = 1;\r\n transport.send(requestHeaders, done);\r\n } catch (e) {\r\n // Propagate exception as error if not done\r\n if (state < 2) {\r\n done(-1, e);\r\n // Simply rethrow otherwise\r\n } else {\r\n throw e;\r\n }\r\n }\r\n }\r\n\r\n // Callback for when everything is done\r\n function done(status, nativeStatusText, responses, headers) {\r\n var isSuccess, success, error, response, modified,\r\n statusText = nativeStatusText;\r\n\r\n // Called once\r\n if (state === 2) {\r\n return;\r\n }\r\n\r\n // State is \"done\" now\r\n state = 2;\r\n\r\n // Clear timeout if it exists\r\n if (timeoutTimer) {\r\n clearTimeout(timeoutTimer);\r\n }\r\n\r\n // Dereference transport for early garbage collection\r\n // (no matter how long the jqXHR object will be used)\r\n transport = undefined;\r\n\r\n // Cache response headers\r\n responseHeadersString = headers || \"\";\r\n\r\n // Set readyState\r\n jqXHR.readyState = status > 0 ? 4 : 0;\r\n\r\n // Determine if successful\r\n isSuccess = status >= 200 && status < 300 || status === 304;\r\n\r\n // Get response data\r\n if (responses) {\r\n response = ajaxHandleResponses(s, jqXHR, responses);\r\n }\r\n\r\n // Convert no matter what (that way responseXXX fields are always set)\r\n response = ajaxConvert(s, response, jqXHR, isSuccess);\r\n\r\n // If successful, handle type chaining\r\n if (isSuccess) {\r\n\r\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n if (s.ifModified) {\r\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\r\n if (modified) {\r\n jQuery.lastModified[cacheURL] = modified;\r\n }\r\n modified = jqXHR.getResponseHeader(\"etag\");\r\n if (modified) {\r\n jQuery.etag[cacheURL] = modified;\r\n }\r\n }\r\n\r\n // if no content\r\n if (status === 204 || s.type === \"HEAD\") {\r\n statusText = \"nocontent\";\r\n\r\n // if not modified\r\n } else if (status === 304) {\r\n statusText = \"notmodified\";\r\n\r\n // If we have data, let's convert it\r\n } else {\r\n statusText = response.state;\r\n success = response.data;\r\n error = response.error;\r\n isSuccess = !error;\r\n }\r\n } else {\r\n // We extract error from statusText\r\n // then normalize statusText and status for non-aborts\r\n error = statusText;\r\n if (status || !statusText) {\r\n statusText = \"error\";\r\n if (status < 0) {\r\n status = 0;\r\n }\r\n }\r\n }\r\n\r\n // Set data for the fake xhr object\r\n jqXHR.status = status;\r\n jqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\r\n\r\n // Success/Error\r\n if (isSuccess) {\r\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\r\n } else {\r\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\r\n }\r\n\r\n // Status-dependent callbacks\r\n jqXHR.statusCode(statusCode);\r\n statusCode = undefined;\r\n\r\n if (fireGlobals) {\r\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\r\n [jqXHR, s, isSuccess ? success : error]);\r\n }\r\n\r\n // Complete\r\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\r\n\r\n if (fireGlobals) {\r\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\r\n // Handle the global AJAX counter\r\n if (!( --jQuery.active )) {\r\n jQuery.event.trigger(\"ajaxStop\");\r\n }\r\n }\r\n }\r\n\r\n return jqXHR;\r\n },\r\n\r\n getJSON: function (url, data, callback) {\r\n return jQuery.get(url, data, callback, \"json\");\r\n },\r\n\r\n getScript: function (url, callback) {\r\n return jQuery.get(url, undefined, callback, \"script\");\r\n }\r\n });\r\n\r\n jQuery.each([\"get\", \"post\"], function (i, method) {\r\n jQuery[method] = function (url, data, callback, type) {\r\n // shift arguments if data argument was omitted\r\n if (jQuery.isFunction(data)) {\r\n type = type || callback;\r\n callback = data;\r\n data = undefined;\r\n }\r\n\r\n return jQuery.ajax({\r\n url: url,\r\n type: method,\r\n dataType: type,\r\n data: data,\r\n success: callback\r\n });\r\n };\r\n });\r\n\r\n// Attach a bunch of functions for handling common AJAX events\r\n jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (i, type) {\r\n jQuery.fn[type] = function (fn) {\r\n return this.on(type, fn);\r\n };\r\n });\r\n\r\n\r\n jQuery._evalUrl = function (url) {\r\n return jQuery.ajax({\r\n url: url,\r\n type: \"GET\",\r\n dataType: \"script\",\r\n async: false,\r\n global: false,\r\n \"throws\": true\r\n });\r\n };\r\n\r\n\r\n var r20 = /%20/g,\r\n rbracket = /\\[\\]$/,\r\n rCRLF = /\\r?\\n/g,\r\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\r\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\r\n\r\n function buildParams(prefix, obj, traditional, add) {\r\n var name;\r\n\r\n if (jQuery.isArray(obj)) {\r\n // Serialize array item.\r\n jQuery.each(obj, function (i, v) {\r\n if (traditional || rbracket.test(prefix)) {\r\n // Treat each array item as a scalar.\r\n add(prefix, v);\r\n\r\n } else {\r\n // Item is non-scalar (array or object), encode its numeric index.\r\n buildParams(prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add);\r\n }\r\n });\r\n\r\n } else if (!traditional && jQuery.type(obj) === \"object\") {\r\n // Serialize object item.\r\n for (name in obj) {\r\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\r\n }\r\n\r\n } else {\r\n // Serialize scalar item.\r\n add(prefix, obj);\r\n }\r\n }\r\n\r\n// Serialize an array of form elements or a set of\r\n// key/values into a query string\r\n jQuery.param = function (a, traditional) {\r\n var prefix,\r\n s = [],\r\n add = function (key, value) {\r\n // If value is a function, invoke it and return its value\r\n value = jQuery.isFunction(value) ? value() : ( value == null ? \"\" : value );\r\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\r\n };\r\n\r\n // Set traditional to true for jQuery <= 1.3.2 behavior.\r\n if (traditional === undefined) {\r\n traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\r\n }\r\n\r\n // If an array was passed in, assume that it is an array of form elements.\r\n if (jQuery.isArray(a) || ( a.jquery && !jQuery.isPlainObject(a) )) {\r\n // Serialize the form elements\r\n jQuery.each(a, function () {\r\n add(this.name, this.value);\r\n });\r\n\r\n } else {\r\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\r\n // did it), otherwise encode params recursively.\r\n for (prefix in a) {\r\n buildParams(prefix, a[prefix], traditional, add);\r\n }\r\n }\r\n\r\n // Return the resulting serialization\r\n return s.join(\"&\").replace(r20, \"+\");\r\n };\r\n\r\n jQuery.fn.extend({\r\n serialize: function () {\r\n return jQuery.param(this.serializeArray());\r\n },\r\n serializeArray: function () {\r\n return this.map(function () {\r\n // Can add propHook for \"elements\" to filter or add form elements\r\n var elements = jQuery.prop(this, \"elements\");\r\n return elements ? jQuery.makeArray(elements) : this;\r\n })\r\n .filter(function () {\r\n var type = this.type;\r\n // Use .is(\":disabled\") so that fieldset[disabled] works\r\n return this.name && !jQuery(this).is(\":disabled\") &&\r\n rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) &&\r\n ( this.checked || !rcheckableType.test(type) );\r\n })\r\n .map(function (i, elem) {\r\n var val = jQuery(this).val();\r\n\r\n return val == null ?\r\n null :\r\n jQuery.isArray(val) ?\r\n jQuery.map(val, function (val) {\r\n return {name: elem.name, value: val.replace(rCRLF, \"\\r\\n\")};\r\n }) :\r\n {name: elem.name, value: val.replace(rCRLF, \"\\r\\n\")};\r\n }).get();\r\n }\r\n });\r\n\r\n\r\n// Create the request object\r\n// (This is still attached to ajaxSettings for backward compatibility)\r\n jQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?\r\n // Support: IE6+\r\n function () {\r\n\r\n // XHR cannot access local files, always use ActiveX for that case\r\n return !this.isLocal &&\r\n\r\n // Support: IE7-8\r\n // oldIE XHR does not support non-RFC2616 methods (#13240)\r\n // See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx\r\n // and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9\r\n // Although this check for six methods instead of eight\r\n // since IE also does not support \"trace\" and \"connect\"\r\n /^(get|post|head|put|delete|options)$/i.test(this.type) &&\r\n\r\n createStandardXHR() || createActiveXHR();\r\n } :\r\n // For all other browsers, use the standard XMLHttpRequest object\r\n createStandardXHR;\r\n\r\n var xhrId = 0,\r\n xhrCallbacks = {},\r\n xhrSupported = jQuery.ajaxSettings.xhr();\r\n\r\n// Support: IE<10\r\n// Open requests must be manually aborted on unload (#5280)\r\n if (window.ActiveXObject) {\r\n jQuery(window).on(\"unload\", function () {\r\n for (var key in xhrCallbacks) {\r\n xhrCallbacks[key](undefined, true);\r\n }\r\n });\r\n }\r\n\r\n// Determine support properties\r\n support.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\r\n xhrSupported = support.ajax = !!xhrSupported;\r\n\r\n// Create transport if the browser can provide an xhr\r\n if (xhrSupported) {\r\n\r\n jQuery.ajaxTransport(function (options) {\r\n // Cross domain only allowed if supported through XMLHttpRequest\r\n if (!options.crossDomain || support.cors) {\r\n\r\n var callback;\r\n\r\n return {\r\n send: function (headers, complete) {\r\n var i,\r\n xhr = options.xhr(),\r\n id = ++xhrId;\r\n\r\n // Open the socket\r\n xhr.open(options.type, options.url, options.async, options.username, options.password);\r\n\r\n // Apply custom fields if provided\r\n if (options.xhrFields) {\r\n for (i in options.xhrFields) {\r\n xhr[i] = options.xhrFields[i];\r\n }\r\n }\r\n\r\n // Override mime type if needed\r\n if (options.mimeType && xhr.overrideMimeType) {\r\n xhr.overrideMimeType(options.mimeType);\r\n }\r\n\r\n // X-Requested-With header\r\n // For cross-domain requests, seeing as conditions for a preflight are\r\n // akin to a jigsaw puzzle, we simply never set it to be sure.\r\n // (it can always be set on a per-request basis or even using ajaxSetup)\r\n // For same-domain requests, won't change header if already provided.\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n }\r\n\r\n // Set headers\r\n for (i in headers) {\r\n // Support: IE<9\r\n // IE's ActiveXObject throws a 'Type Mismatch' exception when setting\r\n // request header to a null-value.\r\n //\r\n // To keep consistent with other XHR implementations, cast the value\r\n // to string and ignore `undefined`.\r\n if (headers[i] !== undefined) {\r\n xhr.setRequestHeader(i, headers[i] + \"\");\r\n }\r\n }\r\n\r\n if (xhr.upload && options.progress) {\r\n xhr.upload.onprogress = options.progress;\r\n }\r\n\r\n // Do send the request\r\n // This may raise an exception which is actually\r\n // handled in jQuery.ajax (so no try/catch here)\r\n xhr.send(( options.hasContent && (options.body || options.data)) || null);\r\n\r\n // Listener\r\n callback = function (_, isAbort) {\r\n var status, statusText, responses;\r\n\r\n // Was never called and is aborted or complete\r\n if (callback && ( isAbort || xhr.readyState === 4 )) {\r\n // Clean up\r\n delete xhrCallbacks[id];\r\n callback = undefined;\r\n xhr.onreadystatechange = jQuery.noop;\r\n\r\n // Abort manually if needed\r\n if (isAbort) {\r\n if (xhr.readyState !== 4) {\r\n xhr.abort();\r\n }\r\n } else {\r\n responses = {};\r\n status = xhr.status;\r\n\r\n // Support: IE<10\r\n // Accessing binary-data responseText throws an exception\r\n // (#11426)\r\n if (typeof xhr.responseText === \"string\") {\r\n responses.text = xhr.responseText;\r\n }\r\n\r\n // Firefox throws an exception when accessing\r\n // statusText for faulty cross-domain requests\r\n try {\r\n statusText = xhr.statusText;\r\n } catch (e) {\r\n // We normalize with Webkit giving an empty statusText\r\n statusText = \"\";\r\n }\r\n\r\n // Filter status for non standard behaviors\r\n\r\n // If the request is local and we have data: assume a success\r\n // (success with no data won't get notified, that's the best we\r\n // can do given current implementations)\r\n if (!status && options.isLocal && !options.crossDomain) {\r\n status = responses.text ? 200 : 404;\r\n // IE - #1450: sometimes returns 1223 when it should be 204\r\n } else if (status === 1223) {\r\n status = 204;\r\n }\r\n }\r\n }\r\n\r\n // Call complete if needed\r\n if (responses) {\r\n complete(status, statusText, responses, xhr.getAllResponseHeaders());\r\n }\r\n };\r\n\r\n if (!options.async) {\r\n // if we're in sync mode we fire the callback\r\n callback();\r\n } else if (xhr.readyState === 4) {\r\n // (IE6 & IE7) if it's in cache and has been\r\n // retrieved directly we need to fire the callback\r\n setTimeout(callback);\r\n } else {\r\n // Add to the list of active xhr callbacks\r\n xhr.onreadystatechange = xhrCallbacks[id] = callback;\r\n }\r\n },\r\n\r\n abort: function () {\r\n if (callback) {\r\n callback(undefined, true);\r\n }\r\n }\r\n };\r\n }\r\n });\r\n }\r\n\r\n// Functions to create xhrs\r\n function createStandardXHR() {\r\n try {\r\n return new window.XMLHttpRequest();\r\n } catch (e) {\r\n }\r\n }\r\n\r\n function createActiveXHR() {\r\n try {\r\n return new window.ActiveXObject(\"Microsoft.XMLHTTP\");\r\n } catch (e) {\r\n }\r\n }\r\n\r\n\r\n// Install script dataType\r\n jQuery.ajaxSetup({\r\n accepts: {\r\n script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\r\n },\r\n contents: {\r\n script: /(?:java|ecma)script/\r\n },\r\n converters: {\r\n \"text script\": function (text) {\r\n jQuery.globalEval(text);\r\n return text;\r\n }\r\n }\r\n });\r\n\r\n// Handle cache's special case and global\r\n jQuery.ajaxPrefilter(\"script\", function (s) {\r\n if (s.cache === undefined) {\r\n s.cache = false;\r\n }\r\n if (s.crossDomain) {\r\n s.type = \"GET\";\r\n s.global = false;\r\n }\r\n });\r\n\r\n// Bind script tag hack transport\r\n jQuery.ajaxTransport(\"script\", function (s) {\r\n\r\n // This transport only deals with cross domain requests\r\n if (s.crossDomain) {\r\n\r\n var script,\r\n head = document.head || jQuery(\"head\")[0] || document.documentElement;\r\n\r\n return {\r\n\r\n send: function (_, callback) {\r\n\r\n script = document.createElement(\"script\");\r\n\r\n script.async = true;\r\n\r\n if (s.scriptCharset) {\r\n script.charset = s.scriptCharset;\r\n }\r\n\r\n script.src = s.url;\r\n\r\n // Attach handlers for all browsers\r\n script.onload = script.onreadystatechange = function (_, isAbort) {\r\n\r\n if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {\r\n\r\n // Handle memory leak in IE\r\n script.onload = script.onreadystatechange = null;\r\n\r\n // Remove the script\r\n if (script.parentNode) {\r\n script.parentNode.removeChild(script);\r\n }\r\n\r\n // Dereference the script\r\n script = null;\r\n\r\n // Callback if not abort\r\n if (!isAbort) {\r\n callback(200, \"success\");\r\n }\r\n }\r\n };\r\n\r\n // Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending\r\n // Use native DOM manipulation to avoid our domManip AJAX trickery\r\n head.insertBefore(script, head.firstChild);\r\n },\r\n\r\n abort: function () {\r\n if (script) {\r\n script.onload(undefined, true);\r\n }\r\n }\r\n };\r\n }\r\n });\r\n\r\n\r\n var oldCallbacks = [],\r\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\r\n\r\n// Default jsonp settings\r\n jQuery.ajaxSetup({\r\n jsonp: \"callback\",\r\n jsonpCallback: function () {\r\n var callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\r\n this[callback] = true;\r\n return callback;\r\n }\r\n });\r\n\r\n// Detect, normalize options and install callbacks for jsonp requests\r\n jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\r\n\r\n var callbackName, overwritten, responseContainer,\r\n jsonProp = s.jsonp !== false && ( rjsonp.test(s.url) ?\r\n \"url\" :\r\n typeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test(s.data) && \"data\"\r\n );\r\n\r\n // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\r\n if (jsonProp || s.dataTypes[0] === \"jsonp\") {\r\n\r\n // Get callback name, remembering preexisting value associated with it\r\n callbackName = s.jsonpCallback = jQuery.isFunction(s.jsonpCallback) ?\r\n s.jsonpCallback() :\r\n s.jsonpCallback;\r\n\r\n // Insert callback into url or form data\r\n if (jsonProp) {\r\n s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\r\n } else if (s.jsonp !== false) {\r\n s.url += ( rquery.test(s.url) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\r\n }\r\n\r\n // Use data converter to retrieve json after script execution\r\n s.converters[\"script json\"] = function () {\r\n if (!responseContainer) {\r\n jQuery.error(callbackName + \" was not called\");\r\n }\r\n return responseContainer[0];\r\n };\r\n\r\n // force json dataType\r\n s.dataTypes[0] = \"json\";\r\n\r\n // Install callback\r\n overwritten = window[callbackName];\r\n window[callbackName] = function () {\r\n responseContainer = arguments;\r\n };\r\n\r\n // Clean-up function (fires after converters)\r\n jqXHR.always(function () {\r\n // Restore preexisting value\r\n window[callbackName] = overwritten;\r\n\r\n // Save back as free\r\n if (s[callbackName]) {\r\n // make sure that re-using the options doesn't screw things around\r\n s.jsonpCallback = originalSettings.jsonpCallback;\r\n\r\n // save the callback name for future use\r\n oldCallbacks.push(callbackName);\r\n }\r\n\r\n // Call if it was a function and we have a response\r\n if (responseContainer && jQuery.isFunction(overwritten)) {\r\n overwritten(responseContainer[0]);\r\n }\r\n\r\n responseContainer = overwritten = undefined;\r\n });\r\n\r\n // Delegate to script\r\n return \"script\";\r\n }\r\n });\r\n\r\n// data: string of html\r\n// context (optional): If specified, the fragment will be created in this context, defaults to document\r\n// keepScripts (optional): If true, will include scripts passed in the html string\r\n jQuery.parseHTML = function (data, context, keepScripts) {\r\n if (!data || typeof data !== \"string\") {\r\n return null;\r\n }\r\n if (typeof context === \"boolean\") {\r\n keepScripts = context;\r\n context = false;\r\n }\r\n context = context || document;\r\n\r\n var parsed = rsingleTag.exec(data),\r\n scripts = !keepScripts && [];\r\n\r\n // Single tag\r\n if (parsed) {\r\n return [context.createElement(parsed[1])];\r\n }\r\n\r\n parsed = jQuery.buildFragment([data], context, scripts);\r\n\r\n if (scripts && scripts.length) {\r\n jQuery(scripts).remove();\r\n }\r\n\r\n return jQuery.merge([], parsed.childNodes);\r\n };\r\n\r\n return jQuery;\r\n\r\n})();\r\n\r\nvar stringifyPrimitive = function(v) {\r\n switch (typeof v) {\r\n case 'string':\r\n return v;\r\n case 'boolean':\r\n return v ? 'true' : 'false';\r\n case 'number':\r\n return isFinite(v) ? v : '';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nvar queryStringify = function(obj, sep, eq, name) {\r\n sep = sep || '&';\r\n eq = eq || '=';\r\n if (obj === null) {\r\n obj = undefined;\r\n }\r\n if (typeof obj === 'object') {\r\n return Object.keys(obj).map(function(k) {\r\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\r\n if (Array.isArray(obj[k])) {\r\n return obj[k].map(function(v) {\r\n return ks + encodeURIComponent(stringifyPrimitive(v));\r\n }).join(sep);\r\n } else {\r\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\r\n }\r\n }).filter(Boolean).join(sep);\r\n\r\n }\r\n if (!name) return '';\r\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\r\n encodeURIComponent(stringifyPrimitive(obj));\r\n};\r\n\r\nvar request = function (options, callback) {\r\n\r\n options = $.extend(true, {headers: {}, qs: {}}, options);\r\n\r\n // method\r\n options.type = options.method;\r\n delete options.method;\r\n\r\n // progress\r\n if (options.onProgress) {\r\n options.progress = options.onProgress;\r\n delete options.onProgress;\r\n }\r\n\r\n // qs\r\n if (options.qs) {\r\n var qsStr = queryStringify(options.qs);\r\n if (qsStr) {\r\n options.url += (options.url.indexOf('?') === -1 ? '?' : '&') + qsStr;\r\n }\r\n delete options.qs;\r\n }\r\n\r\n // json\r\n if (options.json) {\r\n options.data = options.body;\r\n delete options.json;\r\n delete options.body;\r\n !options.headers && (options.headers = {});\r\n options.headers['Content-Type'] = 'application/json';\r\n }\r\n\r\n // body\r\n if (options.body) {\r\n if (!(options.body instanceof Blob || options.body.toString() === '[object File]' || options.body.toString() === '[object Blob]')) {\r\n options.data = options.body;\r\n delete options.body;\r\n }\r\n }\r\n\r\n // headers\r\n if (options.headers) {\r\n var headers = options.headers;\r\n delete options.headers;\r\n options.beforeSend = function (xhr) {\r\n for (var key in headers) {\r\n if (headers.hasOwnProperty(key) &&\r\n key.toLowerCase() !== 'content-length' &&\r\n key.toLowerCase() !== 'user-agent' &&\r\n key.toLowerCase() !== 'origin' &&\r\n key.toLowerCase() !== 'host') {\r\n xhr.setRequestHeader(key, headers[key]);\r\n }\r\n }\r\n };\r\n }\r\n\r\n var getResponse = function (xhr) {\r\n var headers = {};\r\n xhr.getAllResponseHeaders().trim().split('\\n').forEach(function (item) {\r\n if (item) {\r\n var index = item.indexOf(':');\r\n var key = item.substr(0, index).trim().toLowerCase();\r\n var val = item.substr(index + 1).trim();\r\n headers[key] = val;\r\n }\r\n });\r\n return {\r\n statusCode: xhr.status,\r\n statusMessage: xhr.statusText,\r\n headers: headers\r\n };\r\n };\r\n\r\n // callback\r\n options.success = function (data, state, xhr) {\r\n callback(null, getResponse(xhr), data);\r\n };\r\n options.error = function (xhr) {\r\n if (xhr.responseText) {\r\n callback(null, getResponse(xhr), xhr.responseText);\r\n } else {\r\n callback(xhr.statusText, getResponse(xhr), xhr.responseText);\r\n }\r\n };\r\n\r\n options.dataType = 'text';\r\n\r\n // send\r\n return $.ajax(options);\r\n\r\n};\r\n\r\nmodule.exports = request;\r\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","\"use strict\";\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VodReporter = exports.VodReportEvent = void 0;\nvar uploader_1 = require(\"./uploader\");\nvar pkg = require(\"../package.json\");\nvar util_1 = require(\"./util\");\nvar VodReportEvent;\n(function (VodReportEvent) {\n VodReportEvent[\"report_apply\"] = \"report_apply\";\n VodReportEvent[\"report_cos_upload\"] = \"report_cos_upload\";\n VodReportEvent[\"report_commit\"] = \"report_commit\";\n VodReportEvent[\"report_done\"] = \"report_done\";\n})(VodReportEvent = exports.VodReportEvent || (exports.VodReportEvent = {}));\nvar ReqType;\n(function (ReqType) {\n ReqType[ReqType[\"apply\"] = 10001] = \"apply\";\n ReqType[ReqType[\"cos_upload\"] = 20001] = \"cos_upload\";\n ReqType[ReqType[\"commit\"] = 10002] = \"commit\";\n ReqType[ReqType[\"done\"] = 40001] = \"done\";\n})(ReqType || (ReqType = {}));\nvar VodReporter = /** @class */ (function () {\n function VodReporter(uploader, options) {\n // only partial data when created\n this.baseReportData = {\n version: pkg.version,\n platform: 3000,\n device: navigator.userAgent\n };\n this.reportUrl = \"https://vodreport.qcloud.com/ugcupload_new\";\n this.uploader = uploader;\n this.options = options;\n this.init();\n }\n VodReporter.prototype.init = function () {\n this.uploader.on(VodReportEvent.report_apply, this.onApply.bind(this));\n this.uploader.on(VodReportEvent.report_cos_upload, this.onCosUpload.bind(this));\n this.uploader.on(VodReportEvent.report_commit, this.onCommit.bind(this));\n this.uploader.on(VodReportEvent.report_done, this.onDone.bind(this));\n };\n // ApplyUploadUGC\n VodReporter.prototype.onApply = function (reportObj) {\n try {\n var uploader = this.uploader;\n if (!uploader.videoFile) {\n return;\n }\n Object.assign(this.baseReportData, {\n appId: uploader.appId,\n fileSize: uploader.videoFile.size,\n fileName: uploader.videoFile.name,\n fileType: uploader.videoFile.type,\n vodSessionKey: uploader.vodSessionKey,\n reqKey: uploader.reqKey,\n reportId: uploader.reportId\n });\n var customReportData = {\n reqType: ReqType.apply,\n errCode: 0,\n vodErrCode: 0,\n errMsg: \"\",\n reqTimeCost: Number(new Date()) - Number(reportObj.requestStartTime),\n reqTime: Number(reportObj.requestStartTime)\n };\n if (reportObj.err) {\n customReportData.errCode = 1;\n customReportData.vodErrCode = reportObj.err.code;\n customReportData.errMsg = reportObj.err.message;\n }\n if (reportObj.data) {\n this.baseReportData.cosRegion = reportObj.data.storageRegionV5;\n }\n this.report(customReportData);\n }\n catch (e) {\n console.error(\"onApply\", e);\n if (util_1.default.isTest) {\n throw e;\n }\n }\n };\n // upload to cos\n VodReporter.prototype.onCosUpload = function (reportObj) {\n try {\n var customReportData = {\n reqType: ReqType.cos_upload,\n errCode: 0,\n cosErrCode: \"\",\n errMsg: \"\",\n reqTimeCost: Number(new Date()) - Number(reportObj.requestStartTime),\n reqTime: Number(reportObj.requestStartTime)\n };\n if (reportObj.err) {\n customReportData.errCode = 1;\n customReportData.cosErrCode = reportObj.err.error\n ? reportObj.err.error.Code\n : reportObj.err;\n if (reportObj.err && reportObj.err.error === \"error\") {\n customReportData.cosErrCode = \"cors error\";\n }\n customReportData.errMsg = JSON.stringify(reportObj.err);\n }\n this.report(customReportData);\n }\n catch (e) {\n console.error(\"onCosUpload\", e);\n if (util_1.default.isTest) {\n throw e;\n }\n }\n };\n // CommitUploadUGC\n VodReporter.prototype.onCommit = function (reportObj) {\n try {\n var customReportData = {\n reqType: ReqType.commit,\n errCode: 0,\n vodErrCode: 0,\n errMsg: \"\",\n reqTimeCost: Number(new Date()) - Number(reportObj.requestStartTime),\n reqTime: Number(reportObj.requestStartTime)\n };\n if (reportObj.err) {\n customReportData.errCode = 1;\n customReportData.vodErrCode = reportObj.err.code;\n customReportData.errMsg = reportObj.err.message;\n }\n if (reportObj.data) {\n this.baseReportData.fileId = reportObj.data.fileId;\n }\n this.report(customReportData);\n }\n catch (e) {\n console.error(\"onCommit\", e);\n if (util_1.default.isTest) {\n throw e;\n }\n }\n };\n VodReporter.prototype.onDone = function (reportObj) {\n try {\n var customReportData = {\n reqType: ReqType.done,\n errCode: reportObj.err && reportObj.err.code,\n reqTimeCost: Number(new Date()) - Number(reportObj.requestStartTime),\n reqTime: Number(reportObj.requestStartTime)\n };\n this.report(customReportData);\n }\n catch (e) {\n console.error(\"onDone\", e);\n if (util_1.default.isTest) {\n throw e;\n }\n }\n };\n VodReporter.prototype.report = function (reportData) {\n reportData = __assign(__assign({}, this.baseReportData), reportData);\n this.send(reportData);\n };\n VodReporter.prototype.send = function (reportData) {\n if (util_1.default.isDev || util_1.default.isTest) {\n console.log(\"send reportData\", reportData);\n return;\n }\n uploader_1.vodAxios.post(this.reportUrl, reportData);\n };\n return VodReporter;\n}());\nexports.VodReporter = VodReporter;\n//# sourceMappingURL=vod_reporter.js.map","/*\n * [js-sha1]{@link https://github.com/emn178/js-sha1}\n *\n * @version 0.6.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function() {\n 'use strict';\n\n var root = typeof window === 'object' ? window : {};\n var NODE_JS = !root.JS_SHA1_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n }\n var COMMON_JS = !root.JS_SHA1_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n var createOutputMethod = function (outputType) {\n return function (message) {\n return new Sha1(true).update(message)[outputType]();\n };\n };\n\n var createMethod = function () {\n var method = createOutputMethod('hex');\n if (NODE_JS) {\n method = nodeWrap(method);\n }\n method.create = function () {\n return new Sha1();\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type);\n }\n return method;\n };\n\n var nodeWrap = function (method) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash('sha1').update(message, 'utf8').digest('hex');\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (message.length === undefined) {\n return method(message);\n }\n return crypto.createHash('sha1').update(new Buffer(message)).digest('hex');\n };\n return nodeMethod;\n };\n\n function Sha1(sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n }\n\n Sha1.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString = typeof(message) !== 'string';\n if (notString && message.constructor === root.ArrayBuffer) {\n message = new Uint8Array(message);\n }\n var code, index = 0, i, length = message.length || 0, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if(notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha1.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha1.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4;\n var f, j, t, blocks = this.blocks;\n\n for(j = 16; j < 80; ++j) {\n t = blocks[j - 3] ^ blocks[j - 8] ^ blocks[j - 14] ^ blocks[j - 16];\n blocks[j] = (t << 1) | (t >>> 31);\n }\n\n for(j = 0; j < 20; j += 5) {\n f = (b & c) | ((~b) & d);\n t = (a << 5) | (a >>> 27);\n e = t + f + e + 1518500249 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = (a & b) | ((~a) & c);\n t = (e << 5) | (e >>> 27);\n d = t + f + d + 1518500249 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = (e & a) | ((~e) & b);\n t = (d << 5) | (d >>> 27);\n c = t + f + c + 1518500249 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = (d & e) | ((~d) & a);\n t = (c << 5) | (c >>> 27);\n b = t + f + b + 1518500249 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = (c & d) | ((~c) & e);\n t = (b << 5) | (b >>> 27);\n a = t + f + a + 1518500249 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 40; j += 5) {\n f = b ^ c ^ d;\n t = (a << 5) | (a >>> 27);\n e = t + f + e + 1859775393 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = a ^ b ^ c;\n t = (e << 5) | (e >>> 27);\n d = t + f + d + 1859775393 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = e ^ a ^ b;\n t = (d << 5) | (d >>> 27);\n c = t + f + c + 1859775393 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = d ^ e ^ a;\n t = (c << 5) | (c >>> 27);\n b = t + f + b + 1859775393 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = c ^ d ^ e;\n t = (b << 5) | (b >>> 27);\n a = t + f + a + 1859775393 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 60; j += 5) {\n f = (b & c) | (b & d) | (c & d);\n t = (a << 5) | (a >>> 27);\n e = t + f + e - 1894007588 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = (a & b) | (a & c) | (b & c);\n t = (e << 5) | (e >>> 27);\n d = t + f + d - 1894007588 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = (e & a) | (e & b) | (a & b);\n t = (d << 5) | (d >>> 27);\n c = t + f + c - 1894007588 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = (d & e) | (d & a) | (e & a);\n t = (c << 5) | (c >>> 27);\n b = t + f + b - 1894007588 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = (c & d) | (c & e) | (d & e);\n t = (b << 5) | (b >>> 27);\n a = t + f + a - 1894007588 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n for(; j < 80; j += 5) {\n f = b ^ c ^ d;\n t = (a << 5) | (a >>> 27);\n e = t + f + e - 899497514 + blocks[j] << 0;\n b = (b << 30) | (b >>> 2);\n\n f = a ^ b ^ c;\n t = (e << 5) | (e >>> 27);\n d = t + f + d - 899497514 + blocks[j + 1] << 0;\n a = (a << 30) | (a >>> 2);\n\n f = e ^ a ^ b;\n t = (d << 5) | (d >>> 27);\n c = t + f + c - 899497514 + blocks[j + 2] << 0;\n e = (e << 30) | (e >>> 2);\n\n f = d ^ e ^ a;\n t = (c << 5) | (c >>> 27);\n b = t + f + b - 899497514 + blocks[j + 3] << 0;\n d = (d << 30) | (d >>> 2);\n\n f = c ^ d ^ e;\n t = (b << 5) | (b >>> 27);\n a = t + f + a - 899497514 + blocks[j + 4] << 0;\n c = (c << 30) | (c >>> 2);\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n };\n\n Sha1.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;\n\n return HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F];\n };\n\n Sha1.prototype.toString = Sha1.prototype.hex;\n\n Sha1.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4;\n\n return [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF\n ];\n };\n\n Sha1.prototype.array = Sha1.prototype.digest;\n\n Sha1.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(20);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n return buffer;\n };\n\n var exports = createMethod();\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha1 = exports;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","/**\r\n * http://www.myersdaily.org/joseph/javascript/md5-text.html\r\n * http://pajhome.org.uk/crypt/md5\r\n * https://github.com/wbond/md5-js\r\n */\r\nfunction md5cycle(x, k) {\r\n var a = x[0], b = x[1], c = x[2], d = x[3];\r\n\r\n a = ff(a, b, c, d, k[0], 7, -680876936);\r\n d = ff(d, a, b, c, k[1], 12, -389564586);\r\n c = ff(c, d, a, b, k[2], 17, 606105819);\r\n b = ff(b, c, d, a, k[3], 22, -1044525330);\r\n a = ff(a, b, c, d, k[4], 7, -176418897);\r\n d = ff(d, a, b, c, k[5], 12, 1200080426);\r\n c = ff(c, d, a, b, k[6], 17, -1473231341);\r\n b = ff(b, c, d, a, k[7], 22, -45705983);\r\n a = ff(a, b, c, d, k[8], 7, 1770035416);\r\n d = ff(d, a, b, c, k[9], 12, -1958414417);\r\n c = ff(c, d, a, b, k[10], 17, -42063);\r\n b = ff(b, c, d, a, k[11], 22, -1990404162);\r\n a = ff(a, b, c, d, k[12], 7, 1804603682);\r\n d = ff(d, a, b, c, k[13], 12, -40341101);\r\n c = ff(c, d, a, b, k[14], 17, -1502002290);\r\n b = ff(b, c, d, a, k[15], 22, 1236535329);\r\n\r\n a = gg(a, b, c, d, k[1], 5, -165796510);\r\n d = gg(d, a, b, c, k[6], 9, -1069501632);\r\n c = gg(c, d, a, b, k[11], 14, 643717713);\r\n b = gg(b, c, d, a, k[0], 20, -373897302);\r\n a = gg(a, b, c, d, k[5], 5, -701558691);\r\n d = gg(d, a, b, c, k[10], 9, 38016083);\r\n c = gg(c, d, a, b, k[15], 14, -660478335);\r\n b = gg(b, c, d, a, k[4], 20, -405537848);\r\n a = gg(a, b, c, d, k[9], 5, 568446438);\r\n d = gg(d, a, b, c, k[14], 9, -1019803690);\r\n c = gg(c, d, a, b, k[3], 14, -187363961);\r\n b = gg(b, c, d, a, k[8], 20, 1163531501);\r\n a = gg(a, b, c, d, k[13], 5, -1444681467);\r\n d = gg(d, a, b, c, k[2], 9, -51403784);\r\n c = gg(c, d, a, b, k[7], 14, 1735328473);\r\n b = gg(b, c, d, a, k[12], 20, -1926607734);\r\n\r\n a = hh(a, b, c, d, k[5], 4, -378558);\r\n d = hh(d, a, b, c, k[8], 11, -2022574463);\r\n c = hh(c, d, a, b, k[11], 16, 1839030562);\r\n b = hh(b, c, d, a, k[14], 23, -35309556);\r\n a = hh(a, b, c, d, k[1], 4, -1530992060);\r\n d = hh(d, a, b, c, k[4], 11, 1272893353);\r\n c = hh(c, d, a, b, k[7], 16, -155497632);\r\n b = hh(b, c, d, a, k[10], 23, -1094730640);\r\n a = hh(a, b, c, d, k[13], 4, 681279174);\r\n d = hh(d, a, b, c, k[0], 11, -358537222);\r\n c = hh(c, d, a, b, k[3], 16, -722521979);\r\n b = hh(b, c, d, a, k[6], 23, 76029189);\r\n a = hh(a, b, c, d, k[9], 4, -640364487);\r\n d = hh(d, a, b, c, k[12], 11, -421815835);\r\n c = hh(c, d, a, b, k[15], 16, 530742520);\r\n b = hh(b, c, d, a, k[2], 23, -995338651);\r\n\r\n a = ii(a, b, c, d, k[0], 6, -198630844);\r\n d = ii(d, a, b, c, k[7], 10, 1126891415);\r\n c = ii(c, d, a, b, k[14], 15, -1416354905);\r\n b = ii(b, c, d, a, k[5], 21, -57434055);\r\n a = ii(a, b, c, d, k[12], 6, 1700485571);\r\n d = ii(d, a, b, c, k[3], 10, -1894986606);\r\n c = ii(c, d, a, b, k[10], 15, -1051523);\r\n b = ii(b, c, d, a, k[1], 21, -2054922799);\r\n a = ii(a, b, c, d, k[8], 6, 1873313359);\r\n d = ii(d, a, b, c, k[15], 10, -30611744);\r\n c = ii(c, d, a, b, k[6], 15, -1560198380);\r\n b = ii(b, c, d, a, k[13], 21, 1309151649);\r\n a = ii(a, b, c, d, k[4], 6, -145523070);\r\n d = ii(d, a, b, c, k[11], 10, -1120210379);\r\n c = ii(c, d, a, b, k[2], 15, 718787259);\r\n b = ii(b, c, d, a, k[9], 21, -343485551);\r\n\r\n x[0] = add32(a, x[0]);\r\n x[1] = add32(b, x[1]);\r\n x[2] = add32(c, x[2]);\r\n x[3] = add32(d, x[3]);\r\n}\r\n\r\nfunction cmn(q, a, b, x, s, t) {\r\n a = add32(add32(a, q), add32(x, t));\r\n return add32((a << s) | (a >>> (32 - s)), b);\r\n}\r\n\r\nfunction ff(a, b, c, d, x, s, t) {\r\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\r\n}\r\n\r\nfunction gg(a, b, c, d, x, s, t) {\r\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\r\n}\r\n\r\nfunction hh(a, b, c, d, x, s, t) {\r\n return cmn(b ^ c ^ d, a, b, x, s, t);\r\n}\r\n\r\nfunction ii(a, b, c, d, x, s, t) {\r\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\r\n}\r\n\r\nfunction md5blk(s) { /* I figured global was faster. */\r\n var md5blks = [], i; /* Andy King said do it this way. */\r\n for (i = 0; i < 64; i += 4) {\r\n md5blks[i >> 2] = s.charCodeAt(i) +\r\n (s.charCodeAt(i + 1) << 8) +\r\n (s.charCodeAt(i + 2) << 16) +\r\n (s.charCodeAt(i + 3) << 24);\r\n }\r\n return md5blks;\r\n}\r\n\r\nvar hex_chr = '0123456789abcdef'.split('');\r\n\r\nfunction rhex(n) {\r\n var s = '', j = 0;\r\n for (; j < 4; j++)\r\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] +\r\n hex_chr[(n >> (j * 8)) & 0x0F];\r\n return s;\r\n}\r\n\r\nfunction hex(x) {\r\n for (var i = 0; i < x.length; i++)\r\n x[i] = rhex(x[i]);\r\n return x.join('');\r\n}\r\n\r\nvar add32 = function (a, b) {\r\n return (a + b) & 0xFFFFFFFF;\r\n}\r\n\r\nfunction getCtx() {\r\n var ctx = {};\r\n ctx.state = [1732584193, -271733879, -1732584194, 271733878];\r\n ctx.tail = '';\r\n ctx.size = 0;\r\n ctx.update = function (s, isBinStr) {\r\n if (!isBinStr) s = unescape(encodeURIComponent(s));\r\n ctx.size += s.length;\r\n s = ctx.tail + s;\r\n var i, state = ctx.state;\r\n for (i = 64; i <= s.length; i += 64) {\r\n md5cycle(state, md5blk(s.substring(i - 64, i)));\r\n }\r\n ctx.tail = s.substring(i - 64);\r\n return ctx;\r\n };\r\n ctx.digest = function (encode) {\r\n var i,\r\n n = ctx.size,\r\n state = ctx.state,\r\n s = ctx.tail,\r\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\r\n for (i = 0; i < s.length; i++)\r\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\r\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\r\n if (i > 55) {\r\n md5cycle(state, tail);\r\n for (i = 0; i < 16; i++) tail[i] = 0;\r\n }\r\n tail[14] = n * 8;\r\n md5cycle(state, tail);\r\n return hex(state);\r\n };\r\n return ctx;\r\n}\r\n\r\nvar md5 = function (s, isBinStr) {\r\n return getCtx().update(s, isBinStr).digest('hex');\r\n}\r\n\r\nif (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {\r\n add32 = function (x, y) {\r\n var lsw = (x & 0xFFFF) + (y & 0xFFFF),\r\n msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r\n return (msw << 16) | (lsw & 0xFFFF);\r\n }\r\n}\r\n\r\nmd5.getCtx = getCtx;\r\nmodule.exports = md5;\r\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/index.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!./publish.css?vue&type=style&index=0&id=7cbd8a78&scoped=true&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/index.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!./publish.css?vue&type=style&index=0&id=7cbd8a78&scoped=true&lang=css&\"","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","var COS = require('./src/cos');\r\nmodule.exports = COS;","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/*\r\n CryptoJS v3.1.2\r\n code.google.com/p/crypto-js\r\n (c) 2009-2013 by Jeff Mott. All rights reserved.\r\n code.google.com/p/crypto-js/wiki/License\r\n */\r\nvar CryptoJS=CryptoJS||function(g,l){var e={},d=e.lib={},m=function(){},k=d.Base={extend:function(a){m.prototype=this;var c=new m;a&&c.mixIn(a);c.hasOwnProperty(\"init\")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty(\"toString\")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},\r\n p=d.WordArray=k.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||n).stringify(this)},concat:function(a){var c=this.words,q=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b>>2]|=(q[b>>>2]>>>24-8*(b%4)&255)<<24-8*((f+b)%4);else if(65535>>2]=q[b>>>2];else c.push.apply(c,q);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<\r\n 32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=k.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b>>2]>>>24-8*(f%4)&255;b.push((d>>>4).toString(16));b.push((d&15).toString(16))}return b.join(\"\")},parse:function(a){for(var c=a.length,b=[],f=0;f>>3]|=parseInt(a.substr(f,\r\n 2),16)<<24-4*(f%8);return new p.init(b,c/2)}},j=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f>>2]>>>24-8*(f%4)&255));return b.join(\"\")},parse:function(a){for(var c=a.length,b=[],f=0;f>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new p.init(b,c)}},h=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(c){throw Error(\"Malformed UTF-8 data\");}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},\r\n r=d.BufferedBlockAlgorithm=k.extend({reset:function(){this._data=new p.init;this._nDataBytes=0},_append:function(a){\"string\"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,b=c.words,f=c.sigBytes,d=this.blockSize,e=f/(4*d),e=a?g.ceil(e):g.max((e|0)-this._minBufferSize,0);a=e*d;f=g.min(4*a,f);if(a){for(var k=0;ka;a++){if(16>a)m[a]=d[e+a]|0;else{var c=m[a-3]^m[a-8]^m[a-14]^m[a-16];m[a]=c<<1|c>>>31}c=(n<<5|n>>>27)+l+m[a];c=20>a?c+((j&h|~j&g)+1518500249):40>a?c+((j^h^g)+1859775393):60>a?c+((j&h|j&g|h&g)-1894007588):c+((j^h^\r\ng)-899497514);l=g;g=h;h=j<<30|j>>>2;j=n;n=c}b[0]=b[0]+n|0;b[1]=b[1]+j|0;b[2]=b[2]+h|0;b[3]=b[3]+g|0;b[4]=b[4]+l|0},_doFinalize:function(){var d=this._data,e=d.words,b=8*this._nDataBytes,g=8*d.sigBytes;e[g>>>5]|=128<<24-g%32;e[(g+64>>>9<<4)+14]=Math.floor(b/4294967296);e[(g+64>>>9<<4)+15]=b;d.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=d.clone.call(this);e._hash=this._hash.clone();return e}});g.SHA1=d._createHelper(l);g.HmacSHA1=d._createHmacHelper(l)})();\r\n(function(){var g=CryptoJS,l=g.enc.Utf8;g.algo.HMAC=g.lib.Base.extend({init:function(e,d){e=this._hasher=new e.init;\"string\"==typeof d&&(d=l.parse(d));var g=e.blockSize,k=4*g;d.sigBytes>k&&(d=e.finalize(d));d.clamp();for(var p=this._oKey=d.clone(),b=this._iKey=d.clone(),n=p.words,j=b.words,h=0;h>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\r\n var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\r\n var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\r\n\r\n var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\r\n\r\n for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\r\n base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\r\n }\r\n }\r\n\r\n // Add padding\r\n var paddingChar = map.charAt(64);\r\n if (paddingChar) {\r\n while (base64Chars.length % 4) {\r\n base64Chars.push(paddingChar);\r\n }\r\n }\r\n\r\n return base64Chars.join('');\r\n },\r\n\r\n /**\r\n * Converts a Base64 string to a word array.\r\n *\r\n * @param {string} base64Str The Base64 string.\r\n *\r\n * @return {WordArray} The word array.\r\n *\r\n * @static\r\n *\r\n * @example\r\n *\r\n * var wordArray = CryptoJS.enc.Base64.parse(base64String);\r\n */\r\n parse: function (base64Str) {\r\n // Shortcuts\r\n var base64StrLength = base64Str.length;\r\n var map = this._map;\r\n\r\n // Ignore padding\r\n var paddingChar = map.charAt(64);\r\n if (paddingChar) {\r\n var paddingIndex = base64Str.indexOf(paddingChar);\r\n if (paddingIndex != -1) {\r\n base64StrLength = paddingIndex;\r\n }\r\n }\r\n\r\n // Convert\r\n var words = [];\r\n var nBytes = 0;\r\n for (var i = 0; i < base64StrLength; i++) {\r\n if (i % 4) {\r\n var bits1 = map.indexOf(base64Str.charAt(i - 1)) << ((i % 4) * 2);\r\n var bits2 = map.indexOf(base64Str.charAt(i)) >>> (6 - (i % 4) * 2);\r\n words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\r\n nBytes++;\r\n }\r\n }\r\n\r\n return WordArray.create(words, nBytes);\r\n },\r\n\r\n _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\r\n };\r\n}());\r\n\r\nif(typeof module === 'object'){\r\n module.exports = CryptoJS;\r\n}else{\r\n window.CryptoJS = CryptoJS;\r\n}\r\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UploaderEvent = exports.vodAxios = void 0;\nvar sha1 = require(\"js-sha1\");\nvar COS = require(\"cos-js-sdk-v5\");\nvar events_1 = require(\"events\");\nvar axios_1 = require(\"axios\");\nvar util_1 = require(\"./util\");\nvar vod_reporter_1 = require(\"./vod_reporter\");\nvar uuidv4 = require(\"uuid/v4\");\nexports.vodAxios = axios_1.default.create();\nexports.vodAxios.interceptors.response.use(function (response) {\n return response;\n}, function (error) {\n if (isNaN(error.code)) {\n error.code = 500;\n }\n return Promise.reject(error);\n});\nvar UploaderEvent;\n(function (UploaderEvent) {\n UploaderEvent[\"video_progress\"] = \"video_progress\";\n UploaderEvent[\"media_progress\"] = \"media_progress\";\n UploaderEvent[\"video_upload\"] = \"video_upload\";\n UploaderEvent[\"media_upload\"] = \"media_upload\";\n UploaderEvent[\"cover_progress\"] = \"cover_progress\";\n UploaderEvent[\"cover_upload\"] = \"cover_upload\";\n})(UploaderEvent = exports.UploaderEvent || (exports.UploaderEvent = {}));\nvar Uploader = /** @class */ (function (_super) {\n __extends(Uploader, _super);\n function Uploader(params) {\n var _this = _super.call(this) || this;\n _this.sessionName = \"\";\n _this.vodSessionKey = \"\";\n _this.appId = 0;\n _this.reqKey = uuidv4();\n _this.reportId = \"\";\n // resume from break point\n _this.enableResume = true;\n // apply 请求的超时时间\n _this.applyRequestTimeout = 5000;\n _this.applyRequestRetryCount = 3;\n // commit 请求的超时时间\n _this.commitRequestTimeout = 5000;\n _this.commitRequestRetryCount = 3;\n // 重试请求的等待时间\n _this.retryDelay = 1000;\n _this.validateInitParams(params);\n _this.videoFile = params.mediaFile || params.videoFile;\n _this.getSignature = params.getSignature;\n _this.enableResume = params.enableResume;\n _this.videoName = params.mediaName || params.videoName;\n _this.coverFile = params.coverFile;\n _this.fileId = params.fileId;\n _this.applyRequestTimeout =\n params.applyRequestTimeout || _this.applyRequestTimeout;\n _this.commitRequestTimeout =\n params.commitRequestTimeout || _this.commitRequestTimeout;\n _this.retryDelay = params.retryDelay || _this.retryDelay;\n // custom report metrics\n _this.appId = params.appId || _this.appId;\n _this.reportId = params.reportId || _this.reportId;\n _this.cosAuthTime = 0;\n _this.genFileInfo();\n return _this;\n }\n // set storage\n Uploader.prototype.setStorage = function (name, value) {\n if (!name) {\n return;\n }\n var cname = \"webugc_\" + sha1(name);\n try {\n localStorage.setItem(cname, value);\n }\n catch (e) { }\n };\n // get storage\n Uploader.prototype.getStorage = function (name) {\n if (!name) {\n return;\n }\n var cname = \"webugc_\" + sha1(name);\n var result = null;\n try {\n result = localStorage.getItem(cname);\n }\n catch (e) { }\n return result;\n };\n // delete storage\n Uploader.prototype.delStorage = function (name) {\n if (!name) {\n return;\n }\n var cname = \"webugc_\" + sha1(name);\n try {\n localStorage.removeItem(cname);\n }\n catch (e) { }\n };\n // validate init params\n Uploader.prototype.validateInitParams = function (params) {\n if (!util_1.default.isFunction(params.getSignature)) {\n throw new Error(\"getSignature must be a function\");\n }\n if (params.videoFile && !util_1.default.isFile(params.videoFile)) {\n throw new Error(\"videoFile must be a File\");\n }\n };\n Uploader.prototype.genFileInfo = function () {\n // video file info\n var videoFile = this.videoFile;\n if (videoFile) {\n var lastDotIndex = videoFile.name.lastIndexOf(\".\");\n var videoName = \"\";\n // if specified, use it.\n if (this.videoName) {\n if (!util_1.default.isString(this.videoName)) {\n throw new Error(\"mediaName must be a string\");\n }\n else if (/[:*?<>\\\"\\\\/|]/g.test(this.videoName)) {\n throw new Error('Cant use these chars in filename: \\\\ / : * ? \" < > |');\n }\n else {\n videoName = this.videoName;\n }\n }\n else {\n // else use the meta info of file\n videoName = videoFile.name.substring(0, lastDotIndex);\n }\n this.videoInfo = {\n name: videoName,\n type: videoFile.name.substring(lastDotIndex + 1).toLowerCase(),\n size: videoFile.size\n };\n this.sessionName += videoFile.name + \"_\" + videoFile.size + \";\";\n }\n // cover file info\n var coverFile = this.coverFile;\n if (coverFile) {\n var coverName = coverFile.name;\n var coverLastDotIndex = coverName.lastIndexOf(\".\");\n this.coverInfo = {\n name: coverName.substring(0, coverLastDotIndex),\n type: coverName.substring(coverLastDotIndex + 1).toLowerCase(),\n size: coverFile.size\n };\n this.sessionName += coverFile.name + \"_\" + coverFile.size + \";\";\n }\n };\n Uploader.prototype.applyUploadUGC = function (retryCount) {\n if (retryCount === void 0) { retryCount = 0; }\n return __awaiter(this, void 0, void 0, function () {\n function whenError(err) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (err.code === 500) {\n Uploader.host = Uploader.host === util_1.HOST.MAIN ? util_1.HOST.BACKUP : util_1.HOST.MAIN;\n }\n self.emit(vod_reporter_1.VodReportEvent.report_apply, {\n err: err,\n requestStartTime: requestStartTime\n });\n self.delStorage(self.sessionName);\n if (self.applyRequestRetryCount == retryCount) {\n if (err) {\n throw err;\n }\n throw new Error(\"apply upload failed\");\n }\n return [4 /*yield*/, util_1.default.delay(self.retryDelay)];\n case 1:\n _a.sent();\n return [2 /*return*/, self.applyUploadUGC(retryCount + 1)];\n }\n });\n });\n }\n var self, signature, sendParams, videoInfo, coverInfo, vodSessionKey, requestStartTime, response, e_1, applyResult, applyData, vodSessionKey_1, err;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n self = this;\n return [4 /*yield*/, this.getSignature()];\n case 1:\n signature = _a.sent();\n videoInfo = this.videoInfo;\n coverInfo = this.coverInfo;\n vodSessionKey = this.vodSessionKey ||\n (this.enableResume && this.getStorage(this.sessionName));\n // resume from break point\n if (vodSessionKey) {\n sendParams = {\n signature: signature,\n vodSessionKey: vodSessionKey\n };\n }\n else if (videoInfo) {\n sendParams = {\n signature: signature,\n videoName: videoInfo.name,\n videoType: videoInfo.type,\n videoSize: videoInfo.size\n };\n if (coverInfo) {\n // upload video together with cover\n sendParams.coverName = coverInfo.name;\n sendParams.coverType = coverInfo.type;\n sendParams.coverSize = coverInfo.size;\n }\n }\n else if (this.fileId && coverInfo) {\n // alter cover\n sendParams = {\n signature: signature,\n fileId: this.fileId,\n coverName: coverInfo.name,\n coverType: coverInfo.type,\n coverSize: coverInfo.size\n };\n }\n else {\n throw \"Wrong params, please check and try again\";\n }\n requestStartTime = new Date();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, exports.vodAxios.post(\"https://\" + Uploader.host + \"/v3/index.php?Action=ApplyUploadUGC\", sendParams, {\n timeout: this.applyRequestTimeout,\n withCredentials: false\n })];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n e_1 = _a.sent();\n return [2 /*return*/, whenError(e_1)];\n case 5:\n applyResult = response.data;\n // all err code https://user-images.githubusercontent.com/1147375/51222454-bf6ef280-1978-11e9-8e33-1b0fdb2fe200.png\n if (applyResult.code == 0) {\n applyData = applyResult.data;\n vodSessionKey_1 = applyData.vodSessionKey;\n this.setStorage(this.sessionName, vodSessionKey_1);\n this.vodSessionKey = vodSessionKey_1;\n this.appId = applyData.appId;\n this.emit(vod_reporter_1.VodReportEvent.report_apply, {\n data: applyData,\n requestStartTime: requestStartTime\n });\n return [2 /*return*/, applyData];\n }\n else {\n err = new Error(applyResult.message);\n err.code = applyResult.code;\n return [2 /*return*/, whenError(err)];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n Uploader.prototype.uploadToCos = function (applyData) {\n return __awaiter(this, void 0, void 0, function () {\n var self, cosParam, cos, uploadCosParams, cosVideoParam, cosCoverParam, requestStartTime, uploadPromises;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n self = this;\n cosParam = {\n bucket: applyData.storageBucket + \"-\" + applyData.storageAppId,\n region: applyData.storageRegionV5\n };\n cos = new COS({\n getAuthorization: function (options, callback) {\n return __awaiter(this, void 0, void 0, function () {\n var currentTimeStamp, safeExpireTime;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n currentTimeStamp = util_1.default.getUnix();\n safeExpireTime = (applyData.tempCertificate.expiredTime - applyData.timestamp) * 0.9;\n if (!(self.cosAuthTime === 0)) return [3 /*break*/, 1];\n self.cosAuthTime = currentTimeStamp;\n return [3 /*break*/, 3];\n case 1:\n if (!(self.cosAuthTime &&\n currentTimeStamp - self.cosAuthTime >= safeExpireTime)) return [3 /*break*/, 3];\n return [4 /*yield*/, self.applyUploadUGC()];\n case 2:\n applyData = _a.sent();\n self.cosAuthTime = util_1.default.getUnix();\n _a.label = 3;\n case 3:\n callback({\n TmpSecretId: applyData.tempCertificate.secretId,\n TmpSecretKey: applyData.tempCertificate.secretKey,\n XCosSecurityToken: applyData.tempCertificate.token,\n StartTime: applyData.timestamp,\n ExpiredTime: applyData.tempCertificate.expiredTime\n });\n return [2 /*return*/];\n }\n });\n });\n }\n });\n this.cos = cos;\n uploadCosParams = [];\n if (this.videoFile) {\n cosVideoParam = __assign(__assign({}, cosParam), { file: this.videoFile, key: applyData.video.storagePath, onProgress: function (data) {\n self.emit(UploaderEvent.video_progress, data);\n self.emit(UploaderEvent.media_progress, data);\n }, onUpload: function (data) {\n self.emit(UploaderEvent.video_upload, data);\n self.emit(UploaderEvent.media_upload, data);\n }, onTaskReady: function (taskId) {\n self.taskId = taskId;\n } });\n uploadCosParams.push(cosVideoParam);\n }\n if (this.coverFile) {\n cosCoverParam = __assign(__assign({}, cosParam), { file: this.coverFile, key: applyData.cover.storagePath, onProgress: function (data) {\n self.emit(UploaderEvent.cover_progress, data);\n }, onUpload: function (data) {\n self.emit(UploaderEvent.cover_upload, data);\n }, onTaskReady: util_1.default.noop });\n uploadCosParams.push(cosCoverParam);\n }\n requestStartTime = new Date();\n uploadPromises = uploadCosParams.map(function (uploadCosParam) {\n return new Promise(function (resolve, reject) {\n cos.sliceUploadFile({\n Bucket: uploadCosParam.bucket,\n Region: uploadCosParam.region,\n Key: uploadCosParam.key,\n Body: uploadCosParam.file,\n onTaskReady: uploadCosParam.onTaskReady,\n onProgress: uploadCosParam.onProgress\n }, function (err, data) {\n // only report video file\n if (uploadCosParam.file === self.videoFile) {\n self.emit(vod_reporter_1.VodReportEvent.report_cos_upload, {\n err: err,\n requestStartTime: requestStartTime\n });\n }\n if (!err) {\n uploadCosParam.onUpload(data);\n return resolve();\n }\n self.delStorage(self.sessionName);\n if (JSON.stringify(err) === '{\"error\":\"error\",\"headers\":{}}') {\n return reject(new Error(\"cors error\"));\n }\n reject(err);\n });\n });\n });\n return [4 /*yield*/, Promise.all(uploadPromises)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n Uploader.prototype.commitUploadUGC = function (retryCount) {\n if (retryCount === void 0) { retryCount = 0; }\n return __awaiter(this, void 0, void 0, function () {\n function whenError(err) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (err.code === 500) {\n Uploader.host = Uploader.host === util_1.HOST.MAIN ? util_1.HOST.BACKUP : util_1.HOST.MAIN;\n }\n self.emit(vod_reporter_1.VodReportEvent.report_commit, {\n err: err,\n requestStartTime: requestStartTime\n });\n if (self.commitRequestRetryCount == retryCount) {\n if (err) {\n throw err;\n }\n throw new Error(\"commit upload failed\");\n }\n return [4 /*yield*/, util_1.default.delay(self.retryDelay)];\n case 1:\n _a.sent();\n return [2 /*return*/, self.commitUploadUGC(retryCount + 1)];\n }\n });\n });\n }\n var self, signature, vodSessionKey, requestStartTime, response, e_2, commitResult, err;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n self = this;\n return [4 /*yield*/, this.getSignature()];\n case 1:\n signature = _a.sent();\n this.delStorage(this.sessionName);\n vodSessionKey = this.vodSessionKey;\n requestStartTime = new Date();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, exports.vodAxios.post(\"https://\" + Uploader.host + \"/v3/index.php?Action=CommitUploadUGC\", {\n signature: signature,\n vodSessionKey: vodSessionKey\n }, {\n timeout: this.commitRequestTimeout,\n withCredentials: false\n })];\n case 3:\n response = _a.sent();\n return [3 /*break*/, 5];\n case 4:\n e_2 = _a.sent();\n return [2 /*return*/, whenError(e_2)];\n case 5:\n commitResult = response.data;\n if (commitResult.code == 0) {\n this.emit(vod_reporter_1.VodReportEvent.report_commit, {\n data: commitResult.data,\n requestStartTime: requestStartTime\n });\n return [2 /*return*/, commitResult.data];\n }\n else {\n err = new Error(commitResult.message);\n err.code = commitResult.code;\n return [2 /*return*/, whenError(err)];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n Uploader.prototype.start = function () {\n var _this = this;\n var requestStartTime = new Date();\n this.donePromise = this._start()\n .then(function (doneResult) {\n _this.emit(vod_reporter_1.VodReportEvent.report_done, {\n err: { code: 0 },\n requestStartTime: requestStartTime\n });\n return doneResult;\n })\n .catch(function (err) {\n _this.emit(vod_reporter_1.VodReportEvent.report_done, {\n err: {\n code: (err && err.code) || util_1.default.CLIENT_ERROR_CODE.UPLOAD_FAIL\n },\n requestStartTime: requestStartTime\n });\n throw err;\n });\n };\n Uploader.prototype._start = function () {\n return __awaiter(this, void 0, void 0, function () {\n var applyData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.applyUploadUGC()];\n case 1:\n applyData = _a.sent();\n return [4 /*yield*/, this.uploadToCos(applyData)];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.commitUploadUGC()];\n case 3: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n Uploader.prototype.done = function () {\n return this.donePromise;\n };\n Uploader.prototype.cancel = function () {\n this.cos.cancelTask(this.taskId);\n };\n // domain\n Uploader.host = util_1.HOST.MAIN;\n return Uploader;\n}(events_1.EventEmitter));\nexports.default = Uploader;\n//# sourceMappingURL=uploader.js.map","var util = require('./util');\r\n\r\n// 按照文件特征值,缓存 UploadId\r\nvar cacheKey = 'cos_sdk_upload_cache';\r\nvar expires = 30 * 24 * 3600;\r\nvar cache;\r\nvar timer;\r\n\r\nvar init = function () {\r\n if (cache) return;\r\n cache = JSON.parse(localStorage.getItem(cacheKey) || '[]') || [];\r\n // 清理太老旧的数据\r\n var changed = false;\r\n var now = Math.round(Date.now() / 1000);\r\n for (var i = cache.length - 1; i >= 0; i--) {\r\n var mtime = cache[i][2];\r\n if (!mtime || mtime + expires < now) {\r\n cache.splice(i, 1);\r\n changed = true;\r\n }\r\n }\r\n changed && localStorage.setItem(cacheKey, JSON.stringify(cache));\r\n};\r\n\r\n// 把缓存存到本地\r\nvar save = function () {\r\n if (timer) return;\r\n timer = setTimeout(function () {\r\n localStorage.setItem(cacheKey, JSON.stringify(cache));\r\n timer = null;\r\n }, 400);\r\n};\r\n\r\nvar mod = {\r\n using: {},\r\n // 标记 UploadId 正在使用\r\n setUsing: function (uuid) {\r\n mod.using[uuid] = true;\r\n },\r\n // 标记 UploadId 已经没在使用\r\n removeUsing: function (uuid) {\r\n delete mod.using[uuid];\r\n },\r\n // 用上传参数生成哈希值\r\n getFileId: function (file, ChunkSize, Bucket, Key) {\r\n if (file.name && file.size && file.lastModifiedDate && ChunkSize) {\r\n return util.md5([file.name, file.size, file.lastModifiedDate, ChunkSize, Bucket, Key].join('::'));\r\n } else {\r\n return null;\r\n }\r\n },\r\n // 获取文件对应的 UploadId 列表\r\n getUploadIdList: function (uuid) {\r\n if (!uuid) return null;\r\n init();\r\n var list = [];\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i][0] === uuid)\r\n list.push(cache[i][1]);\r\n }\r\n return list.length ? list : null;\r\n },\r\n // 缓存 UploadId\r\n saveUploadId: function (uuid, UploadId, limit) {\r\n init();\r\n if (!uuid) return;\r\n // 清理没用的 UploadId\r\n for (var i = cache.length - 1; i >= 0; i--) {\r\n var item = cache[i];\r\n if (item[0] === uuid && item[1] === UploadId) {\r\n cache.splice(i, 1);\r\n }\r\n }\r\n cache.unshift([uuid, UploadId, Math.round(Date.now() / 1000)]);\r\n if (cache.length > limit) cache.splice(limit);\r\n save();\r\n },\r\n // UploadId 已用完,移除掉\r\n removeUploadId: function (UploadId) {\r\n init();\r\n delete mod.using[UploadId];\r\n for (var i = cache.length - 1; i >= 0; i--) {\r\n if (cache[i][1] === UploadId) cache.splice(i, 1)\r\n }\r\n save();\r\n },\r\n};\r\n\r\nmodule.exports = mod;\r\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","/* Copyright 2015 William Summers, MetaTribal LLC\r\n * adapted from https://developer.mozilla.org/en-US/docs/JXON\r\n *\r\n * Licensed under the MIT License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * https://opensource.org/licenses/MIT\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * @author William Summers\r\n * https://github.com/metatribal/xmlToJSON\r\n */\r\nvar DOMParser = require('xmldom').DOMParser;\r\n\r\nvar xmlToJSON = (function () {\r\n\r\n this.version = \"1.3.5\";\r\n\r\n var options = { // set up the default options\r\n mergeCDATA: true, // extract cdata and merge with text\r\n normalize: true, // collapse multiple spaces to single space\r\n stripElemPrefix: true, // for elements of same name in diff namespaces, you can enable namespaces and access the nskey property\r\n };\r\n\r\n var prefixMatch = new RegExp(/(?!xmlns)^.*:/);\r\n var trimMatch = new RegExp(/^\\s+|\\s+$/g);\r\n\r\n this.grokType = function (sValue) {\r\n if (/^\\s*$/.test(sValue)) {\r\n return null;\r\n }\r\n if (/^(?:true|false)$/i.test(sValue)) {\r\n return sValue.toLowerCase() === \"true\";\r\n }\r\n if (isFinite(sValue)) {\r\n return parseFloat(sValue);\r\n }\r\n return sValue;\r\n };\r\n\r\n this.parseString = function (xmlString, opt) {\r\n if (xmlString) {\r\n var xml = this.stringToXML(xmlString);\r\n if (xml.getElementsByTagName('parsererror').length) {\r\n return null;\r\n } else {\r\n return this.parseXML(xml, opt);\r\n }\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n this.parseXML = function (oXMLParent, opt) {\r\n\r\n // initialize options\r\n for (var key in opt) {\r\n options[key] = opt[key];\r\n }\r\n\r\n var vResult = {},\r\n nLength = 0,\r\n sCollectedTxt = \"\";\r\n\r\n // iterate over the children\r\n var childNum = oXMLParent.childNodes.length;\r\n if (childNum) {\r\n for (var oNode, sProp, vContent, nItem = 0; nItem < oXMLParent.childNodes.length; nItem++) {\r\n oNode = oXMLParent.childNodes.item(nItem);\r\n\r\n if (oNode.nodeType === 4) {\r\n if (options.mergeCDATA) {\r\n sCollectedTxt += oNode.nodeValue;\r\n }\r\n } /* nodeType is \"CDATASection\" (4) */\r\n else if (oNode.nodeType === 3) {\r\n sCollectedTxt += oNode.nodeValue;\r\n } /* nodeType is \"Text\" (3) */\r\n else if (oNode.nodeType === 1) { /* nodeType is \"Element\" (1) */\r\n\r\n if (nLength === 0) {\r\n vResult = {};\r\n }\r\n\r\n // using nodeName to support browser (IE) implementation with no 'localName' property\r\n if (options.stripElemPrefix) {\r\n sProp = oNode.nodeName.replace(prefixMatch, '');\r\n } else {\r\n sProp = oNode.nodeName;\r\n }\r\n\r\n vContent = xmlToJSON.parseXML(oNode);\r\n\r\n if (vResult.hasOwnProperty(sProp)) {\r\n if (vResult[sProp].constructor !== Array) {\r\n vResult[sProp] = [vResult[sProp]];\r\n }\r\n vResult[sProp].push(vContent);\r\n\r\n } else {\r\n vResult[sProp] = vContent;\r\n nLength++;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!Object.keys(vResult).length) {\r\n // vResult = sCollectedTxt.replace(trimMatch, '') || ''; // by carsonxu 修复 getBucket返回的 Key 是 \" /\" 这种场景\r\n vResult = sCollectedTxt || '';\r\n }\r\n\r\n return vResult;\r\n };\r\n\r\n // Convert xmlDocument to a string\r\n // Returns null on failure\r\n this.xmlToString = function (xmlDoc) {\r\n try {\r\n var xmlString = xmlDoc.xml ? xmlDoc.xml : (new XMLSerializer()).serializeToString(xmlDoc);\r\n return xmlString;\r\n } catch (err) {\r\n return null;\r\n }\r\n };\r\n\r\n // Convert a string to XML Node Structure\r\n // Returns null on failure\r\n this.stringToXML = function (xmlString) {\r\n try {\r\n var xmlDoc = null;\r\n\r\n if (window.DOMParser) {\r\n\r\n var parser = new DOMParser();\r\n xmlDoc = parser.parseFromString(xmlString, \"text/xml\");\r\n\r\n return xmlDoc;\r\n } else {\r\n xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\r\n xmlDoc.async = false;\r\n xmlDoc.loadXML(xmlString);\r\n\r\n return xmlDoc;\r\n }\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n return this;\r\n\r\n}).call({});\r\n\r\nvar xml2json = function (xmlString) {\r\n return xmlToJSON.parseString(xmlString);\r\n};\r\n\r\nmodule.exports = xml2json;\r\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","'use strict';\r\n\r\nvar util = require('./util');\r\nvar event = require('./event');\r\nvar task = require('./task');\r\nvar base = require('./base');\r\nvar advance = require('./advance');\r\n\r\nvar defaultOptions = {\r\n AppId: '', // AppId 已废弃,请拼接到 Bucket 后传入,例如:test-1250000000\r\n SecretId: '',\r\n SecretKey: '',\r\n XCosSecurityToken: '', // 使用临时密钥需要注意自行刷新 Token\r\n ChunkRetryTimes: 2,\r\n FileParallelLimit: 3,\r\n ChunkParallelLimit: 3,\r\n ChunkSize: 1024 * 1024,\r\n SliceSize: 1024 * 1024,\r\n CopyChunkParallelLimit: 20,\r\n CopyChunkSize: 1024 * 1024 * 10,\r\n CopySliceSize: 1024 * 1024 * 10,\r\n MaxPartNumber: 10000,\r\n ProgressInterval: 1000,\r\n UploadQueueSize: 10000,\r\n Domain: '',\r\n ServiceDomain: '',\r\n Protocol: '',\r\n CompatibilityMode: false,\r\n ForcePathStyle: false,\r\n UseRawKey: false,\r\n Timeout: 0, // 单位毫秒,0 代表不设置超时时间\r\n CorrectClockSkew: true,\r\n SystemClockOffset: 0, // 单位毫秒,ms\r\n UploadCheckContentMd5: false,\r\n UploadAddMetaMd5: false,\r\n UploadIdCacheLimit: 50,\r\n};\r\n\r\n// 对外暴露的类\r\nvar COS = function (options) {\r\n this.options = util.extend(util.clone(defaultOptions), options || {});\r\n this.options.FileParallelLimit = Math.max(1, this.options.FileParallelLimit);\r\n this.options.ChunkParallelLimit = Math.max(1, this.options.ChunkParallelLimit);\r\n this.options.ChunkRetryTimes = Math.max(0, this.options.ChunkRetryTimes);\r\n this.options.ChunkSize = Math.max(1024 * 1024, this.options.ChunkSize);\r\n this.options.CopyChunkParallelLimit = Math.max(1, this.options.CopyChunkParallelLimit);\r\n this.options.CopyChunkSize = Math.max(1024 * 1024, this.options.CopyChunkSize);\r\n this.options.CopySliceSize = Math.max(0, this.options.CopySliceSize);\r\n this.options.MaxPartNumber = Math.max(1024, Math.min(10000, this.options.MaxPartNumber));\r\n this.options.Timeout = Math.max(0, this.options.Timeout);\r\n if (this.options.AppId) {\r\n console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g: \"test-1250000000\").');\r\n }\r\n event.init(this);\r\n task.init(this);\r\n};\r\n\r\nbase.init(COS, task);\r\nadvance.init(COS, task);\r\n\r\nCOS.getAuthorization = util.getAuth;\r\nCOS.version = '0.5.27';\r\n\r\nmodule.exports = COS;\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HOST = void 0;\nfunction isFile(v) {\n return Object.prototype.toString.call(v) == \"[object File]\";\n}\nfunction isFunction(v) {\n return typeof v === \"function\";\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nfunction noop() { }\nfunction delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(function () {\n resolve();\n }, ms);\n });\n}\nfunction getUnix() {\n return Math.floor(Date.now() / 1000);\n}\nvar CLIENT_ERROR_CODE;\n(function (CLIENT_ERROR_CODE) {\n CLIENT_ERROR_CODE[CLIENT_ERROR_CODE[\"UPLOAD_FAIL\"] = 1] = \"UPLOAD_FAIL\";\n})(CLIENT_ERROR_CODE || (CLIENT_ERROR_CODE = {}));\nvar HOST;\n(function (HOST) {\n HOST[\"MAIN\"] = \"vod2.qcloud.com\";\n HOST[\"BACKUP\"] = \"vod2.dnsv1.com\";\n})(HOST = exports.HOST || (exports.HOST = {}));\nexports.default = {\n isFile: isFile,\n isFunction: isFunction,\n isString: isString,\n noop: noop,\n delay: delay,\n getUnix: getUnix,\n isTest: process.env.NODE_ENV === \"test\",\n isDev: process.env.NODE_ENV === \"development\",\n CLIENT_ERROR_CODE: CLIENT_ERROR_CODE\n};\n//# sourceMappingURL=util.js.map","'use strict';\r\n\r\nvar md5 = require('../lib/md5');\r\nvar CryptoJS = require('../lib/crypto');\r\nvar xml2json = require('../lib/xml2json');\r\nvar json2xml = require('../lib/json2xml');\r\n\r\nfunction camSafeUrlEncode(str) {\r\n return encodeURIComponent(str)\r\n .replace(/!/g, '%21')\r\n .replace(/'/g, '%27')\r\n .replace(/\\(/g, '%28')\r\n .replace(/\\)/g, '%29')\r\n .replace(/\\*/g, '%2A');\r\n}\r\n\r\n//测试用的key后面可以去掉\r\nvar getAuth = function (opt) {\r\n opt = opt || {};\r\n\r\n var SecretId = opt.SecretId;\r\n var SecretKey = opt.SecretKey;\r\n var KeyTime = opt.KeyTime;\r\n var method = (opt.method || opt.Method || 'get').toLowerCase();\r\n var queryParams = clone(opt.Query || opt.params || {});\r\n var headers = clone(opt.Headers || opt.headers || {});\r\n\r\n var Key = opt.Key || '';\r\n var pathname;\r\n if (opt.UseRawKey) {\r\n pathname = opt.Pathname || opt.pathname || '/' + Key;\r\n } else {\r\n pathname = opt.Pathname || opt.pathname || Key;\r\n pathname.indexOf('/') !== 0 && (pathname = '/' + pathname);\r\n }\r\n\r\n if (!SecretId) return console.error('missing param SecretId');\r\n if (!SecretKey) return console.error('missing param SecretKey');\r\n\r\n var getObjectKeys = function (obj) {\r\n var list = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n list.push(key);\r\n }\r\n }\r\n return list.sort(function (a, b) {\r\n a = a.toLowerCase();\r\n b = b.toLowerCase();\r\n return a === b ? 0 : (a > b ? 1 : -1);\r\n });\r\n };\r\n\r\n var obj2str = function (obj) {\r\n var i, key, val;\r\n var list = [];\r\n var keyList = getObjectKeys(obj);\r\n for (i = 0; i < keyList.length; i++) {\r\n key = keyList[i];\r\n val = (obj[key] === undefined || obj[key] === null) ? '' : ('' + obj[key]);\r\n key = key.toLowerCase();\r\n key = camSafeUrlEncode(key);\r\n val = camSafeUrlEncode(val) || '';\r\n list.push(key + '=' + val)\r\n }\r\n return list.join('&');\r\n };\r\n\r\n // 签名有效起止时间\r\n var now = Math.round(getSkewTime(opt.SystemClockOffset) / 1000) - 1;\r\n var exp = now;\r\n\r\n var Expires = opt.Expires || opt.expires;\r\n if (Expires === undefined) {\r\n exp += 900; // 签名过期时间为当前 + 900s\r\n } else {\r\n exp += (Expires * 1) || 0;\r\n }\r\n\r\n // 要用到的 Authorization 参数列表\r\n var qSignAlgorithm = 'sha1';\r\n var qAk = SecretId;\r\n var qSignTime = KeyTime || now + ';' + exp;\r\n var qKeyTime = KeyTime || now + ';' + exp;\r\n var qHeaderList = getObjectKeys(headers).join(';').toLowerCase();\r\n var qUrlParamList = getObjectKeys(queryParams).join(';').toLowerCase();\r\n\r\n // 签名算法说明文档:https://www.qcloud.com/document/product/436/7778\r\n // 步骤一:计算 SignKey\r\n var signKey = CryptoJS.HmacSHA1(qKeyTime, SecretKey).toString();\r\n\r\n // 步骤二:构成 FormatString\r\n var formatString = [method, pathname, obj2str(queryParams), obj2str(headers), ''].join('\\n');\r\n\r\n // 步骤三:计算 StringToSign\r\n var stringToSign = ['sha1', qSignTime, CryptoJS.SHA1(formatString).toString(), ''].join('\\n');\r\n\r\n // 步骤四:计算 Signature\r\n var qSignature = CryptoJS.HmacSHA1(stringToSign, signKey).toString();\r\n\r\n // 步骤五:构造 Authorization\r\n var authorization = [\r\n 'q-sign-algorithm=' + qSignAlgorithm,\r\n 'q-ak=' + qAk,\r\n 'q-sign-time=' + qSignTime,\r\n 'q-key-time=' + qKeyTime,\r\n 'q-header-list=' + qHeaderList,\r\n 'q-url-param-list=' + qUrlParamList,\r\n 'q-signature=' + qSignature\r\n ].join('&');\r\n\r\n return authorization;\r\n\r\n};\r\n\r\nvar noop = function () {\r\n\r\n};\r\n\r\n// 清除对象里值为的 undefined 或 null 的属性\r\nvar clearKey = function (obj) {\r\n var retObj = {};\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key) && obj[key] !== undefined && obj[key] !== null) {\r\n retObj[key] = obj[key];\r\n }\r\n }\r\n return retObj;\r\n};\r\n\r\nvar readAsBinaryString = function (blob, callback) {\r\n var readFun;\r\n var fr = new FileReader();\r\n if (FileReader.prototype.readAsBinaryString) {\r\n readFun = FileReader.prototype.readAsBinaryString;\r\n fr.onload = function () {\r\n callback(this.result);\r\n };\r\n } else if (FileReader.prototype.readAsArrayBuffer) { // 在 ie11 添加 readAsBinaryString 兼容\r\n readFun = function (fileData) {\r\n var binary = \"\";\r\n var pt = this;\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n var bytes = new Uint8Array(reader.result);\r\n var length = bytes.byteLength;\r\n for (var i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i]);\r\n }\r\n callback(binary);\r\n };\r\n reader.readAsArrayBuffer(fileData);\r\n };\r\n } else {\r\n console.error('FileReader not support readAsBinaryString');\r\n }\r\n readFun.call(fr, blob);\r\n};\r\n\r\nvar fileSliceNeedCopy = (function () {\r\n var compareVersion = function(a, b) {\r\n a = a.split('.');\r\n b = b.split('.');\r\n for (var i = 0; i < b.length; i++) {\r\n if (a[i] !== b[i]) {\r\n return parseInt(a[i]) > parseInt(b[i]) ? 1 : -1;\r\n }\r\n }\r\n return 0;\r\n };\r\n var check = function (ua) {\r\n var ChromeVersion = (ua.match(/Chrome\\/([.\\d]+)/) || [])[1];\r\n var QBCoreVersion = (ua.match(/QBCore\\/([.\\d]+)/) || [])[1];\r\n var QQBrowserVersion = (ua.match(/QQBrowser\\/([.\\d]+)/) || [])[1];\r\n var need = ChromeVersion && compareVersion(ChromeVersion, '53.0.2785.116') < 0\r\n && QBCoreVersion && compareVersion(QBCoreVersion, '3.53.991.400') < 0\r\n && QQBrowserVersion && compareVersion(QQBrowserVersion, '9.0.2524.400') <= 0 || false;\r\n return need;\r\n };\r\n return check(navigator && navigator.userAgent);\r\n})();\r\n\r\n// 获取文件分片\r\nvar fileSlice = function (file, start, end, isUseToUpload, callback) {\r\n var blob;\r\n if (file.slice) {\r\n blob = file.slice(start, end);\r\n } else if (file.mozSlice) {\r\n blob = file.mozSlice(start, end);\r\n } else if (file.webkitSlice) {\r\n blob = file.webkitSlice(start, end);\r\n }\r\n if (isUseToUpload && fileSliceNeedCopy) {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n blob = null;\r\n callback(new Blob([reader.result]));\r\n };\r\n reader.readAsArrayBuffer(blob);\r\n } else {\r\n callback(blob);\r\n }\r\n};\r\n\r\n// 获取文件内容的 MD5\r\nvar getBodyMd5 = function (UploadCheckContentMd5, Body, callback, onProgress) {\r\n callback = callback || noop;\r\n if (UploadCheckContentMd5) {\r\n if (typeof Body === 'string') {\r\n callback(util.md5(Body, true));\r\n } else if (Blob && Body instanceof Blob) {\r\n util.getFileMd5(Body, function (err, md5) {\r\n callback(md5);\r\n }, onProgress);\r\n } else {\r\n callback();\r\n }\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\n// 获取文件 md5 值\r\nvar md5ChunkSize = 1024 * 1024;\r\nvar getFileMd5 = function (blob, callback, onProgress) {\r\n var size = blob.size;\r\n var loaded = 0;\r\n var md5ctx = md5.getCtx();\r\n var next = function (start) {\r\n if (start >= size) {\r\n var hash = md5ctx.digest('hex');\r\n callback(null, hash);\r\n return;\r\n }\r\n var end = Math.min(size, start + md5ChunkSize);\r\n util.fileSlice(blob, start, end, false, function (chunk) {\r\n readAsBinaryString(chunk, function (content) {\r\n chunk = null;\r\n md5ctx = md5ctx.update(content, true);\r\n loaded += content.length;\r\n content = null;\r\n if (onProgress) onProgress({loaded: loaded, total: size, percent: Math.round(loaded / size * 10000) / 10000});\r\n next(start + md5ChunkSize);\r\n });\r\n });\r\n };\r\n next(0);\r\n};\r\n\r\nfunction clone(obj) {\r\n return map(obj, function (v) {\r\n return typeof v === 'object' ? clone(v) : v;\r\n });\r\n}\r\n\r\nfunction extend(target, source) {\r\n each(source, function (val, key) {\r\n target[key] = source[key];\r\n });\r\n return target;\r\n}\r\n\r\nfunction isArray(arr) {\r\n return arr instanceof Array;\r\n}\r\n\r\nfunction isInArray(arr, item) {\r\n var flag = false;\r\n for (var i = 0; i < arr.length; i++) {\r\n if (item === arr[i]) {\r\n flag = true;\r\n break;\r\n }\r\n }\r\n return flag;\r\n}\r\n\r\nfunction makeArray(arr) {\r\n return isArray(arr) ? arr : [arr];\r\n}\r\n\r\nfunction each(obj, fn) {\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n fn(obj[i], i);\r\n }\r\n }\r\n}\r\n\r\nfunction map(obj, fn) {\r\n var o = isArray(obj) ? [] : {};\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n o[i] = fn(obj[i], i);\r\n }\r\n }\r\n return o;\r\n}\r\n\r\nfunction filter(obj, fn) {\r\n var iaArr = isArray(obj);\r\n var o = iaArr ? [] : {};\r\n for (var i in obj) {\r\n if (obj.hasOwnProperty(i)) {\r\n if (fn(obj[i], i)) {\r\n if (iaArr) {\r\n o.push(obj[i]);\r\n } else {\r\n o[i] = obj[i];\r\n }\r\n }\r\n }\r\n }\r\n return o;\r\n}\r\n\r\nvar binaryBase64 = function (str) {\r\n var i, len, char, res = '';\r\n for (i = 0, len = str.length / 2; i < len; i++) {\r\n char = parseInt(str[i * 2] + str[i * 2 + 1], 16);\r\n res += String.fromCharCode(char);\r\n }\r\n return btoa(res);\r\n};\r\nvar uuid = function () {\r\n var S4 = function () {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return (S4() + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + \"-\" + S4() + S4() + S4());\r\n};\r\n\r\nvar hasMissingParams = function (apiName, params) {\r\n var Bucket = params.Bucket;\r\n var Region = params.Region;\r\n var Key = params.Key;\r\n if (apiName.indexOf('Bucket') > -1 || apiName === 'deleteMultipleObject' || apiName === 'multipartList' || apiName === 'listObjectVersions') {\r\n if (!Bucket) return 'Bucket';\r\n if (!Region) return 'Region';\r\n } else if (apiName.indexOf('Object') > -1 || apiName.indexOf('multipart') > -1 || apiName === 'sliceUploadFile' || apiName === 'abortUploadTask') {\r\n if (!Bucket) return 'Bucket';\r\n if (!Region) return 'Region';\r\n if (!Key) return 'Key';\r\n }\r\n return false;\r\n};\r\n\r\nvar formatParams = function (apiName, params) {\r\n\r\n // 复制参数对象\r\n params = extend({}, params);\r\n\r\n // 统一处理 Headers\r\n if (apiName !== 'getAuth' && apiName !== 'getV4Auth' && apiName !== 'getObjectUrl') {\r\n var Headers = params.Headers || {};\r\n if (params && typeof params === 'object') {\r\n (function () {\r\n for (var key in params) {\r\n if (params.hasOwnProperty(key) && key.indexOf('x-cos-') > -1) {\r\n Headers[key] = params[key];\r\n }\r\n }\r\n })();\r\n\r\n var headerMap = {\r\n // params headers\r\n 'x-cos-mfa': 'MFA',\r\n 'Content-MD5': 'ContentMD5',\r\n 'Content-Length': 'ContentLength',\r\n 'Content-Type': 'ContentType',\r\n 'Expect': 'Expect',\r\n 'Expires': 'Expires',\r\n 'Cache-Control': 'CacheControl',\r\n 'Content-Disposition': 'ContentDisposition',\r\n 'Content-Encoding': 'ContentEncoding',\r\n 'Range': 'Range',\r\n 'If-Modified-Since': 'IfModifiedSince',\r\n 'If-Unmodified-Since': 'IfUnmodifiedSince',\r\n 'If-Match': 'IfMatch',\r\n 'If-None-Match': 'IfNoneMatch',\r\n 'x-cos-copy-source': 'CopySource',\r\n 'x-cos-copy-source-Range': 'CopySourceRange',\r\n 'x-cos-metadata-directive': 'MetadataDirective',\r\n 'x-cos-copy-source-If-Modified-Since': 'CopySourceIfModifiedSince',\r\n 'x-cos-copy-source-If-Unmodified-Since': 'CopySourceIfUnmodifiedSince',\r\n 'x-cos-copy-source-If-Match': 'CopySourceIfMatch',\r\n 'x-cos-copy-source-If-None-Match': 'CopySourceIfNoneMatch',\r\n 'x-cos-acl': 'ACL',\r\n 'x-cos-grant-read': 'GrantRead',\r\n 'x-cos-grant-write': 'GrantWrite',\r\n 'x-cos-grant-full-control': 'GrantFullControl',\r\n 'x-cos-grant-read-acp': 'GrantReadAcp',\r\n 'x-cos-grant-write-acp': 'GrantWriteAcp',\r\n 'x-cos-storage-class': 'StorageClass',\r\n // SSE-C\r\n 'x-cos-server-side-encryption-customer-algorithm': 'SSECustomerAlgorithm',\r\n 'x-cos-server-side-encryption-customer-key': 'SSECustomerKey',\r\n 'x-cos-server-side-encryption-customer-key-MD5': 'SSECustomerKeyMD5',\r\n // SSE-COS、SSE-KMS\r\n 'x-cos-server-side-encryption': 'ServerSideEncryption',\r\n 'x-cos-server-side-encryption-cos-kms-key-id': 'SSEKMSKeyId',\r\n 'x-cos-server-side-encryption-context': 'SSEContext',\r\n };\r\n util.each(headerMap, function (paramKey, headerKey) {\r\n if (params[paramKey] !== undefined) {\r\n Headers[headerKey] = params[paramKey];\r\n }\r\n });\r\n\r\n params.Headers = clearKey(Headers);\r\n }\r\n }\r\n\r\n return params;\r\n};\r\n\r\nvar apiWrapper = function (apiName, apiFn) {\r\n return function (params, callback) {\r\n\r\n // 处理参数\r\n if (typeof params === 'function') {\r\n callback = params;\r\n params = {};\r\n }\r\n\r\n // 整理参数格式\r\n params = formatParams(apiName, params);\r\n\r\n // 代理回调函数\r\n var formatResult = function (result) {\r\n if (result && result.headers) {\r\n result.headers['x-cos-version-id'] && (result.VersionId = result.headers['x-cos-version-id']);\r\n result.headers['x-cos-delete-marker'] && (result.DeleteMarker = result.headers['x-cos-delete-marker']);\r\n }\r\n return result;\r\n };\r\n var _callback = function (err, data) {\r\n callback && callback(formatResult(err), formatResult(data));\r\n };\r\n\r\n if (apiName !== 'getService' && apiName !== 'abortUploadTask') {\r\n // 判断参数是否完整\r\n var missingResult;\r\n if (missingResult = hasMissingParams(apiName, params)) {\r\n _callback({error: 'missing param ' + missingResult});\r\n return;\r\n }\r\n // 判断 region 格式\r\n if (params.Region) {\r\n if (params.Region.indexOf('cos.') > -1) {\r\n _callback({error: 'param Region should not be start with \"cos.\"'});\r\n return;\r\n } else if (!/^([a-z\\d-]+)$/.test(params.Region)) {\r\n _callback({error: 'Region format error.'});\r\n return;\r\n }\r\n // 判断 region 格式\r\n if (!this.options.CompatibilityMode && params.Region.indexOf('-') === -1 && params.Region !== 'yfb' && params.Region !== 'default') {\r\n console.warn('warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224');\r\n }\r\n }\r\n // 兼容不带 AppId 的 Bucket\r\n if (params.Bucket) {\r\n if (!/^([a-z\\d-]+)-(\\d+)$/.test(params.Bucket)) {\r\n if (params.AppId) {\r\n params.Bucket = params.Bucket + '-' + params.AppId;\r\n } else if (this.options.AppId) {\r\n params.Bucket = params.Bucket + '-' + this.options.AppId;\r\n } else {\r\n _callback({error: 'Bucket should format as \"test-1250000000\".'});\r\n return;\r\n }\r\n }\r\n if (params.AppId) {\r\n console.warn('warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:\"test-1250000000\" ).');\r\n delete params.AppId;\r\n }\r\n }\r\n // 如果 Key 是 / 开头,强制去掉第一个 /\r\n if (!this.options.UseRawKey && params.Key && params.Key.substr(0, 1) === '/') {\r\n params.Key = params.Key.substr(1);\r\n }\r\n }\r\n var res = apiFn.call(this, params, _callback);\r\n if (apiName === 'getAuth' || apiName === 'getObjectUrl') {\r\n return res;\r\n }\r\n }\r\n};\r\n\r\nvar throttleOnProgress = function (total, onProgress) {\r\n var self = this;\r\n var size0 = 0;\r\n var size1 = 0;\r\n var time0 = Date.now();\r\n var time1;\r\n var timer;\r\n\r\n function update() {\r\n timer = 0;\r\n if (onProgress && (typeof onProgress === 'function')) {\r\n time1 = Date.now();\r\n var speed = Math.max(0, Math.round((size1 - size0) / ((time1 - time0) / 1000) * 100) / 100);\r\n var percent;\r\n if (size1 === 0 && total === 0) {\r\n percent = 1;\r\n } else {\r\n percent = Math.round(size1 / total * 100) / 100 || 0;\r\n }\r\n time0 = time1;\r\n size0 = size1;\r\n try {\r\n onProgress({loaded: size1, total: total, speed: speed, percent: percent});\r\n } catch (e) {\r\n }\r\n }\r\n }\r\n\r\n return function (info, immediately) {\r\n if (info) {\r\n size1 = info.loaded;\r\n total = info.total;\r\n }\r\n if (immediately) {\r\n clearTimeout(timer);\r\n update();\r\n } else {\r\n if (timer) return;\r\n timer = setTimeout(update, self.options.ProgressInterval);\r\n }\r\n };\r\n};\r\n\r\nvar getFileSize = function (api, params, callback) {\r\n var size;\r\n if (typeof params.Body === 'string') {\r\n params.Body = new Blob([params.Body], {type: 'text/plain'});\r\n }\r\n if ((params.Body && (params.Body instanceof Blob || params.Body.toString() === '[object File]' || params.Body.toString() === '[object Blob]'))) {\r\n size = params.Body.size;\r\n } else {\r\n callback({error: 'params body format error, Only allow File|Blob|String.'});\r\n return;\r\n }\r\n params.ContentLength = size;\r\n callback(null, size);\r\n};\r\n\r\n// 获取调正的时间戳\r\nvar getSkewTime = function (offset) {\r\n return Date.now() + (offset || 0);\r\n};\r\n\r\nvar util = {\r\n noop: noop,\r\n formatParams: formatParams,\r\n apiWrapper: apiWrapper,\r\n xml2json: xml2json,\r\n json2xml: json2xml,\r\n md5: md5,\r\n clearKey: clearKey,\r\n fileSlice: fileSlice,\r\n getBodyMd5: getBodyMd5,\r\n getFileMd5: getFileMd5,\r\n binaryBase64: binaryBase64,\r\n extend: extend,\r\n isArray: isArray,\r\n isInArray: isInArray,\r\n makeArray: makeArray,\r\n each: each,\r\n map: map,\r\n filter: filter,\r\n clone: clone,\r\n uuid: uuid,\r\n camSafeUrlEncode: camSafeUrlEncode,\r\n throttleOnProgress: throttleOnProgress,\r\n getFileSize: getFileSize,\r\n getSkewTime: getSkewTime,\r\n getAuth: getAuth,\r\n isBrowser: true,\r\n};\r\n\r\nmodule.exports = util;\r\n","var session = require('./session');\r\nvar util = require('./util');\r\n\r\nvar originApiMap = {};\r\nvar transferToTaskMethod = function (apiMap, apiName) {\r\n originApiMap[apiName] = apiMap[apiName];\r\n apiMap[apiName] = function (params, callback) {\r\n if (params.SkipTask) {\r\n originApiMap[apiName].call(this, params, callback);\r\n } else {\r\n this._addTask(apiName, params, callback);\r\n }\r\n };\r\n};\r\n\r\nvar initTask = function (cos) {\r\n\r\n var queue = [];\r\n var tasks = {};\r\n var uploadingFileCount = 0;\r\n var nextUploadIndex = 0;\r\n\r\n // 接口返回简略的任务信息\r\n var formatTask = function (task) {\r\n var t = {\r\n id: task.id,\r\n Bucket: task.Bucket,\r\n Region: task.Region,\r\n Key: task.Key,\r\n FilePath: task.FilePath,\r\n state: task.state,\r\n loaded: task.loaded,\r\n size: task.size,\r\n speed: task.speed,\r\n percent: task.percent,\r\n hashPercent: task.hashPercent,\r\n error: task.error,\r\n };\r\n if (task.FilePath) t.FilePath = task.FilePath;\r\n if (task._custom) t._custom = task._custom;\r\n return t;\r\n };\r\n\r\n var emitListUpdate = (function () {\r\n var timer;\r\n var emit = function () {\r\n timer = 0;\r\n cos.emit('task-list-update', {list: util.map(queue, formatTask)});\r\n cos.emit('list-update', {list: util.map(queue, formatTask)});\r\n };\r\n return function () {\r\n if (!timer) timer = setTimeout(emit);\r\n }\r\n })();\r\n\r\n var clearQueue = function () {\r\n if (queue.length <= cos.options.UploadQueueSize) return;\r\n for (var i = 0;\r\n i < nextUploadIndex && // 小于当前操作的 index 才清理\r\n i < queue.length && // 大于队列才清理\r\n queue.length > cos.options.UploadQueueSize // 如果还太多,才继续清理\r\n ;) {\r\n var isActive = queue[i].state === 'waiting' || queue[i].state === 'checking' || queue[i].state === 'uploading';\r\n if (!queue[i] || !isActive) {\r\n tasks[queue[i].id] && (delete tasks[queue[i].id]);\r\n queue.splice(i, 1);\r\n nextUploadIndex--;\r\n } else {\r\n i++;\r\n }\r\n }\r\n emitListUpdate();\r\n };\r\n\r\n var startNextTask = function () {\r\n // 检查是否允许增加执行进程\r\n if (uploadingFileCount >= cos.options.FileParallelLimit) return;\r\n // 跳过不可执行的任务\r\n while (queue[nextUploadIndex] && queue[nextUploadIndex].state !== 'waiting') nextUploadIndex++;\r\n // 检查是否已遍历结束\r\n if (nextUploadIndex >= queue.length) return;\r\n // 上传该遍历到的任务\r\n var task = queue[nextUploadIndex];\r\n nextUploadIndex++;\r\n uploadingFileCount++;\r\n task.state = 'checking';\r\n task.params.onTaskStart && task.params.onTaskStart(formatTask(task));\r\n !task.params.UploadData && (task.params.UploadData = {});\r\n var apiParams = util.formatParams(task.api, task.params);\r\n originApiMap[task.api].call(cos, apiParams, function (err, data) {\r\n if (!cos._isRunningTask(task.id)) return;\r\n if (task.state === 'checking' || task.state === 'uploading') {\r\n task.state = err ? 'error' : 'success';\r\n err && (task.error = err);\r\n uploadingFileCount--;\r\n emitListUpdate();\r\n startNextTask();\r\n task.callback && task.callback(err, data);\r\n if (task.state === 'success') {\r\n if (task.params) {\r\n delete task.params.UploadData;\r\n delete task.params.Body;\r\n delete task.params;\r\n }\r\n delete task.callback;\r\n }\r\n }\r\n clearQueue();\r\n });\r\n emitListUpdate();\r\n // 异步执行下一个任务\r\n setTimeout(startNextTask);\r\n };\r\n\r\n var killTask = function (id, switchToState) {\r\n var task = tasks[id];\r\n if (!task) return;\r\n var waiting = task && task.state === 'waiting';\r\n var running = task && (task.state === 'checking' || task.state === 'uploading');\r\n if (switchToState === 'canceled' && task.state !== 'canceled' ||\r\n switchToState === 'paused' && waiting ||\r\n switchToState === 'paused' && running) {\r\n if (switchToState === 'paused' && task.params.Body && typeof task.params.Body.pipe === 'function') {\r\n console.error('stream not support pause');\r\n return;\r\n }\r\n task.state = switchToState;\r\n cos.emit('inner-kill-task', {TaskId: id, toState: switchToState});\r\n try {\r\n var UploadId = task && task.params && task.params.UploadData.UploadId\r\n } catch(e) {}\r\n if (switchToState === 'canceled' && UploadId) session.removeUsing(UploadId)\r\n emitListUpdate();\r\n if (running) {\r\n uploadingFileCount--;\r\n startNextTask();\r\n }\r\n if (switchToState === 'canceled') {\r\n if (task.params) {\r\n delete task.params.UploadData;\r\n delete task.params.Body;\r\n delete task.params;\r\n }\r\n delete task.callback;\r\n }\r\n }\r\n clearQueue();\r\n };\r\n\r\n cos._addTasks = function (taskList) {\r\n util.each(taskList, function (task) {\r\n cos._addTask(task.api, task.params, task.callback, true);\r\n });\r\n emitListUpdate();\r\n };\r\n\r\n var isTaskReadyWarning = true;\r\n cos._addTask = function (api, params, callback, ignoreAddEvent) {\r\n\r\n // 复制参数对象\r\n params = util.formatParams(api, params);\r\n\r\n // 生成 id\r\n var id = util.uuid();\r\n params.TaskId = id;\r\n params.onTaskReady && params.onTaskReady(id);\r\n if (params.TaskReady) {\r\n params.TaskReady(id);\r\n isTaskReadyWarning && console.warn('warning: Param \"TaskReady\" has been deprecated. Please use \"onTaskReady\" instead.');\r\n isTaskReadyWarning = false;\r\n }\r\n\r\n var task = {\r\n // env\r\n params: params,\r\n callback: callback,\r\n api: api,\r\n index: queue.length,\r\n // task\r\n id: id,\r\n Bucket: params.Bucket,\r\n Region: params.Region,\r\n Key: params.Key,\r\n FilePath: params.FilePath || '',\r\n state: 'waiting',\r\n loaded: 0,\r\n size: 0,\r\n speed: 0,\r\n percent: 0,\r\n hashPercent: 0,\r\n error: null,\r\n _custom: params._custom,\r\n };\r\n var onHashProgress = params.onHashProgress;\r\n params.onHashProgress = function (info) {\r\n if (!cos._isRunningTask(task.id)) return;\r\n task.hashPercent = info.percent;\r\n onHashProgress && onHashProgress(info);\r\n emitListUpdate();\r\n };\r\n var onProgress = params.onProgress;\r\n params.onProgress = function (info) {\r\n if (!cos._isRunningTask(task.id)) return;\r\n task.state === 'checking' && (task.state = 'uploading');\r\n task.loaded = info.loaded;\r\n task.speed = info.speed;\r\n task.percent = info.percent;\r\n onProgress && onProgress(info);\r\n emitListUpdate();\r\n };\r\n\r\n // 异步获取 filesize\r\n util.getFileSize(api, params, function (err, size) {\r\n // 开始处理上传\r\n if (err) { // 如果获取大小出错,不加入队列\r\n callback(err);\r\n return;\r\n }\r\n // 获取完文件大小再把任务加入队列\r\n tasks[id] = task;\r\n queue.push(task);\r\n task.size = size;\r\n !ignoreAddEvent && emitListUpdate();\r\n startNextTask();\r\n clearQueue();\r\n });\r\n return id;\r\n };\r\n cos._isRunningTask = function (id) {\r\n var task = tasks[id];\r\n return !!(task && (task.state === 'checking' || task.state === 'uploading'));\r\n };\r\n cos.getTaskList = function () {\r\n return util.map(queue, formatTask);\r\n };\r\n cos.cancelTask = function (id) {\r\n killTask(id, 'canceled');\r\n };\r\n cos.pauseTask = function (id) {\r\n killTask(id, 'paused');\r\n };\r\n cos.restartTask = function (id) {\r\n var task = tasks[id];\r\n if (task && (task.state === 'paused' || task.state === 'error')) {\r\n task.state = 'waiting';\r\n emitListUpdate();\r\n nextUploadIndex = Math.min(nextUploadIndex, task.index);\r\n startNextTask();\r\n }\r\n };\r\n cos.isUploadRunning = function () {\r\n return uploadingFileCount || nextUploadIndex < queue.length;\r\n };\r\n\r\n};\r\n\r\nmodule.exports.transferToTaskMethod = transferToTaskMethod;\r\nmodule.exports.init = initTask;\r\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","//copyright Ryan Day 2010 , Joscha Feth 2013 [MIT Licensed]\r\n\r\nvar element_start_char =\r\n \"a-zA-Z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FFF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\r\nvar element_non_start_char = \"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F\\u2040\";\r\nvar element_replace = new RegExp(\"^([^\" + element_start_char + \"])|^((x|X)(m|M)(l|L))|([^\" + element_start_char + element_non_start_char + \"])\", \"g\");\r\nvar not_safe_in_xml = /[^\\x09\\x0A\\x0D\\x20-\\xFF\\x85\\xA0-\\uD7FF\\uE000-\\uFDCF\\uFDE0-\\uFFFD]/gm;\r\n\r\nvar objKeys = function (obj) {\r\n var l = [];\r\n if (obj instanceof Object) {\r\n for (var k in obj) {\r\n if (obj.hasOwnProperty(k)) {\r\n l.push(k);\r\n }\r\n }\r\n }\r\n return l;\r\n};\r\nvar process_to_xml = function (node_data, options) {\r\n\r\n var makeNode = function (name, content, attributes, level, hasSubNodes) {\r\n var indent_value = options.indent !== undefined ? options.indent : \"\\t\";\r\n var indent = options.prettyPrint ? '\\n' + new Array(level).join(indent_value) : '';\r\n if (options.removeIllegalNameCharacters) {\r\n name = name.replace(element_replace, '_');\r\n }\r\n\r\n var node = [indent, '<', name, (attributes || '')];\r\n if (content && content.length > 0) {\r\n node.push('>')\r\n node.push(content);\r\n hasSubNodes && node.push(indent);\r\n node.push('');\r\n } else {\r\n node.push('/>');\r\n }\r\n return node.join('');\r\n };\r\n\r\n return (function fn(node_data, node_descriptor, level) {\r\n var type = typeof node_data;\r\n if ((Array.isArray) ? Array.isArray(node_data) : node_data instanceof Array) {\r\n type = 'array';\r\n } else if (node_data instanceof Date) {\r\n type = 'date';\r\n }\r\n\r\n switch (type) {\r\n //if value is an array create child nodes from values\r\n case 'array':\r\n var ret = [];\r\n node_data.map(function (v) {\r\n ret.push(fn(v, 1, level + 1));\r\n //entries that are values of an array are the only ones that can be special node descriptors\r\n });\r\n options.prettyPrint && ret.push('\\n');\r\n return ret.join('');\r\n break;\r\n\r\n case 'date':\r\n // cast dates to ISO 8601 date (soap likes it)\r\n return node_data.toJSON ? node_data.toJSON() : node_data + '';\r\n break;\r\n\r\n case 'object':\r\n var nodes = [];\r\n for (var name in node_data) {\r\n if (node_data.hasOwnProperty(name)) {\r\n if (node_data[name] instanceof Array) {\r\n for (var j = 0; j < node_data[name].length; j++) {\r\n if (node_data[name].hasOwnProperty(j)) {\r\n nodes.push(makeNode(name, fn(node_data[name][j], 0, level + 1), null, level + 1, objKeys(node_data[name][j]).length));\r\n }\r\n }\r\n } else {\r\n nodes.push(makeNode(name, fn(node_data[name], 0, level + 1), null, level + 1));\r\n }\r\n }\r\n }\r\n options.prettyPrint && nodes.length > 0 && nodes.push('\\n');\r\n return nodes.join('');\r\n break;\r\n\r\n case 'function':\r\n return node_data();\r\n break;\r\n\r\n default:\r\n return options.escape ? esc(node_data) : '' + node_data;\r\n }\r\n\r\n }(node_data, 0, 0))\r\n};\r\n\r\n\r\nvar xml_header = function (standalone) {\r\n var ret = ['');\r\n\r\n return ret.join('');\r\n};\r\n\r\nfunction esc(str) {\r\n return ('' + str).replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/'/g, ''')\r\n .replace(/\"/g, '"')\r\n .replace(not_safe_in_xml, '');\r\n}\r\n\r\nmodule.exports = function (obj, options) {\r\n if (!options) {\r\n options = {\r\n xmlHeader: {\r\n standalone: true\r\n },\r\n prettyPrint: true,\r\n indent: \" \",\r\n escape: true,\r\n };\r\n }\r\n\r\n if (typeof obj == 'string') {\r\n try {\r\n obj = JSON.parse(obj.toString());\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n var xmlheader = '';\r\n var docType = '';\r\n if (options) {\r\n if (typeof options == 'object') {\r\n // our config is an object\r\n\r\n if (options.xmlHeader) {\r\n // the user wants an xml header\r\n xmlheader = xml_header(!!options.xmlHeader.standalone);\r\n }\r\n\r\n if (typeof options.docType != 'undefined') {\r\n docType = ''\r\n }\r\n } else {\r\n // our config is a boolean value, so just add xml header\r\n xmlheader = xml_header();\r\n }\r\n }\r\n options = options || {}\r\n\r\n var ret = [\r\n xmlheader,\r\n (options.prettyPrint && docType ? '\\n' : ''),\r\n docType,\r\n process_to_xml(obj, options)\r\n ];\r\n return ret.join('').replace(/\\n{2,}/g, '\\n').replace(/\\s+$/g, '');\r\n};","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"video-box\"},[(_vm.uploadviedoSrcFull)?_c('div',{staticClass:\"hasVideo\"},[_c('video',{attrs:{\"id\":\"myVideo\",\"webkit-playsinline\":\"true\",\"x5-video-player-type\":\"h5-page\",\"x5-video-player-fullscreen\":\"true\",\"playsinline\":\"\",\"controls\":\"true\",\"show-center-play-btn\":\"true\",\"src\":_vm.uploadviedoSrcFull}}),_c('div',{staticClass:\"delete\",on:{\"click\":_vm.deleteVideoClick}},[_c('img',{attrs:{\"src\":require(\"../../../static/images/icon/delete.png\")}})])]):_c('van-uploader',{attrs:{\"accept\":\"video/*\",\"before-read\":_vm.beforeRead,\"after-read\":_vm.afterRead}})],1),_c('div',{staticClass:\"textarea\"},[(_vm.topicShow || _vm.productShow)?_c('div',[_vm._v(_vm._s(_vm.textVal))]):_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.textVal),expression:\"textVal\"}],attrs:{\"rows\":\"6\",\"placeholder\":\"填写标题会有更多赞哦...\",\"maxlength\":\"100\"},domProps:{\"value\":(_vm.textVal)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.textVal=$event.target.value}}})]),_c('div',{staticClass:\"handle-box\"},[_c('div',{staticClass:\"hb_item\",on:{\"click\":function($event){$event.stopPropagation();return _vm.topicChange($event)}}},[_c('div',{staticClass:\"iconfont icon-huati1\"}),_c('div',[(_vm.topic.length == 0)?_c('div',[_vm._v(\"关联话题\")]):_c('div',{staticClass:\"hb_scroll special\"},_vm._l((_vm.topic),function(item,index){return _c('div',{key:index,staticClass:\"hbs_view\"},[_c('div',{staticClass:\"hbst_item\"},[_c('div',{staticClass:\"overFlowOne\"},[_vm._v(_vm._s(item.TopicName))]),_c('div',{staticClass:\"s_delete\",on:{\"click\":function($event){$event.stopPropagation();return _vm.topicDelete($event)}}},[_c('van-icon',{attrs:{\"name\":\"cross\",\"color\":\"#aaa\"}})],1)])])}),0)]),_c('div',{staticClass:\"iconfont icon-right\"})]),_c('div',{staticClass:\"hb_item\",on:{\"click\":function($event){$event.stopPropagation();return _vm.getUserLocation($event)}}},[_c('div',{staticClass:\"iconfont icon-dingwei\"}),_c('div',[(!_vm.location)?_c('div',[_vm._v(\"获取定位\")]):_c('div',{staticClass:\"hb_scroll\"},[_c('div',{staticClass:\"hbs_view\"},[_vm._v(_vm._s(_vm.location))])])]),_c('div',{staticClass:\"iconfont icon-right\"})]),(_vm.isStore == 1)?_c('div',{staticClass:\"hb_item\",on:{\"click\":function($event){$event.stopPropagation();return _vm.productChange($event)}}},[_c('div',{staticClass:\"iconfont icon-product\"}),_c('div',[(!_vm.product)?_c('div',[_vm._v(\"关联产品\")]):_c('div',{staticClass:\"hb_scroll\"},[_c('div',{staticClass:\"hbs_view\"},[_c('div',{staticClass:\"hbsp_item\"},[_c('div',{staticClass:\"overFlowOne\"},[_vm._v(_vm._s(_vm.product.GoodsName))]),_c('img',{attrs:{\"src\":_vm.product.Thumbnail}})])])])]),_c('div',{staticClass:\"iconfont icon-right\"})]):_vm._e()]),_c('div',{staticClass:\"submitBtn\",style:(_vm.disabled ? 'pointer-events: none;background: #dddddd;' : ''),on:{\"click\":function($event){$event.stopPropagation();return _vm.submitClick($event)}}},[_vm._v(\"\\n 发 布\\n \")]),_c('van-overlay',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.topicShow),expression:\"topicShow\"}],attrs:{\"z-index\":\"11\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClickHide($event)}}},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"wrapper-choice-box\",on:{\"click\":function($event){$event.stopPropagation();return _vm.controlTap($event)}}},[_c('div',{staticClass:\"wcb_top\"},[_c('div',[_vm._v(\"关联话题\")]),_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.topicComplete($event)}}},[_vm._v(\"完成\")])]),_c('div',{staticClass:\"wcb_search\"},[_c('van-search',{attrs:{\"shape\":\"round\",\"background\":\"transparent\",\"placeholder\":\"话题关键词\",\"maxlength\":\"100\"},on:{\"search\":_vm.topicSearchConfirm},model:{value:(_vm.topicValue),callback:function ($$v) {_vm.topicValue=$$v},expression:\"topicValue\"}}),_c('div',{staticClass:\"searchBtn\",on:{\"click\":function($event){$event.stopPropagation();return _vm.topicSearchConfirm($event)}}},[_vm._v(\"搜索\")])],1),_c('div',{staticClass:\"wcb_already\"},[_vm._v(\"\\n 还可以关联 \"+_vm._s(3 - _vm.topic.length)+\" 个话题\\n \")]),_c('div',{staticClass:\"wcb_scroll\"},[_c('div',{staticClass:\"wcbs_wrap\"},_vm._l((_vm.topicList),function(item,index){return _c('div',{key:index},[_c('div',{staticClass:\"wcbst_item overFlowOne\",class:item.selected ? 'active' : '',on:{\"click\":function($event){$event.stopPropagation();return _vm.topicChoice(index)}}},[_vm._v(\"\\n \"+_vm._s(item.TopicName)+\"\\n \")])])}),0)])])])]),_c('van-overlay',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.productShow),expression:\"productShow\"}],attrs:{\"z-index\":\"11\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onClickHide($event)}}},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"wrapper-choice-box\",on:{\"click\":_vm.controlTap}},[_c('div',{staticClass:\"wcb_top\"},[_c('div',[_vm._v(\"关联展厅产品\")]),_c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.productComplete($event)}}},[_vm._v(\"完成\")])]),_c('div',{staticClass:\"wcb_search\"},[_c('van-search',{attrs:{\"shape\":\"round\",\"background\":\"transparent\",\"placeholder\":\"产品关键词\",\"maxlength\":\"100\"},on:{\"search\":_vm.productSearchConfirm},model:{value:(_vm.productValue),callback:function ($$v) {_vm.productValue=$$v},expression:\"productValue\"}}),_c('div',{staticClass:\"searchBtn\",on:{\"click\":function($event){$event.stopPropagation();return _vm.productSearchConfirm($event)}}},[_vm._v(\"搜索\")])],1),_c('div',{staticClass:\"wcb_already\"},[_vm._v(\"只可以关联 1 个产品\")]),_c('div',{staticClass:\"wcb_scroll\"},[_c('div',{staticClass:\"wcbs_wrap wcbsp\"},_vm._l((_vm.productList),function(item,index){return _c('div',{key:index},[_c('div',{staticClass:\"wcbsp_item \",class:item.GoodsId == _vm.product.GoodsId ? 'active' : '',on:{\"click\":function($event){$event.stopPropagation();return _vm.productChoice(index)}}},[_c('img',{attrs:{\"src\":item.Thumbnail}}),_c('div',{staticClass:\"overFlowTwo\"},[_vm._v(_vm._s(item.GoodsName))])])])}),0)])])])]),_c('div',{staticStyle:{\"width\":\"0px\",\"height\":\"0px\"},attrs:{\"id\":\"output\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\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!./publishVideo.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!./publishVideo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./publishVideo.vue?vue&type=template&id=7cbd8a78&scoped=true&\"\nimport script from \"./publishVideo.vue?vue&type=script&lang=js&\"\nexport * from \"./publishVideo.vue?vue&type=script&lang=js&\"\nimport style0 from \"../../../static/css/publish.css?vue&type=style&index=0&id=7cbd8a78&scoped=true&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 \"7cbd8a78\",\n null\n \n)\n\nexport default component.exports","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n"],"sourceRoot":""}