gitextract_zxrdz1n_/ ├── .github/ │ └── workflows/ │ └── scala.yml ├── .gitignore ├── Dockerfile ├── Dockerfile_k8s ├── README.md ├── README_CN.md ├── README_JENKINS.md ├── VERSION ├── build.sbt ├── conf/ │ └── application.conf ├── docker-compose.yml ├── docs/ │ └── doc.md ├── kubernetes/ │ └── cookim.yaml ├── pom.xml ├── project/ │ ├── assembly.sbt │ ├── build.properties │ └── plugins.sbt ├── src/ │ └── main/ │ ├── resources/ │ │ └── mykeystore.jks │ └── scala/ │ └── com/ │ └── cookeem/ │ └── chat/ │ ├── CookIM.scala │ ├── common/ │ │ └── CommonUtils.scala │ ├── demo/ │ │ └── TestObj.scala │ ├── event/ │ │ └── ChatEventPackage.scala │ ├── jwt/ │ │ └── JwtOps.scala │ ├── mongo/ │ │ ├── MongoLogic.scala │ │ ├── MongoOps.scala │ │ └── package.scala │ ├── restful/ │ │ ├── Controller.scala │ │ ├── Route.scala │ │ └── RouteOps.scala │ └── websocket/ │ ├── ChatSession.scala │ ├── ChatSessionActor.scala │ ├── NotificationActor.scala │ ├── PushSession.scala │ ├── PushSessionActor.scala │ └── TraitPubSubActor.scala └── www/ ├── changeinfo.html ├── changepwd.html ├── chatlist.html ├── chatsession.html ├── css/ │ └── index.css ├── error.html ├── fonts/ │ ├── Material_Icon/ │ │ ├── MaterialIcons-Regular.ijmap │ │ ├── codepoints │ │ └── material-icons.css │ └── fonts.css ├── friends.html ├── images/ │ └── cookim.ai ├── index.html ├── js/ │ ├── changeinfo.js │ ├── changepwd.js │ ├── chatlist.js │ ├── chatsession.js │ ├── error.js │ ├── friends.js │ ├── index.js │ ├── login.js │ ├── logout.js │ ├── notifications.js │ └── register.js ├── jslib/ │ ├── MediaStreamRecorder/ │ │ └── MediaStreamRecorder.js │ ├── angular/ │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── angular-csp.css │ │ ├── angular.js │ │ ├── angular.min.js.gzip │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angular-animate/ │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── angular-animate.js │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angular-cookies/ │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── angular-cookies.js │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ ├── angular-route/ │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── angular-route.js │ │ ├── bower.json │ │ ├── index.js │ │ └── package.json │ └── jquery/ │ ├── AUTHORS.txt │ ├── LICENSE.txt │ ├── README.md │ ├── bower.json │ ├── dist/ │ │ ├── core.js │ │ ├── jquery.js │ │ └── jquery.slim.js │ ├── external/ │ │ └── sizzle/ │ │ ├── LICENSE.txt │ │ └── dist/ │ │ └── sizzle.js │ ├── package.json │ └── src/ │ ├── .eslintrc │ ├── ajax/ │ │ ├── jsonp.js │ │ ├── load.js │ │ ├── parseXML.js │ │ ├── script.js │ │ ├── var/ │ │ │ ├── location.js │ │ │ ├── nonce.js │ │ │ └── rquery.js │ │ └── xhr.js │ ├── ajax.js │ ├── attributes/ │ │ ├── attr.js │ │ ├── classes.js │ │ ├── prop.js │ │ ├── support.js │ │ └── val.js │ ├── attributes.js │ ├── callbacks.js │ ├── core/ │ │ ├── DOMEval.js │ │ ├── access.js │ │ ├── init.js │ │ ├── parseHTML.js │ │ ├── ready-no-deferred.js │ │ ├── ready.js │ │ ├── readyException.js │ │ ├── support.js │ │ └── var/ │ │ └── rsingleTag.js │ ├── core.js │ ├── css/ │ │ ├── addGetHookIf.js │ │ ├── adjustCSS.js │ │ ├── curCSS.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── showHide.js │ │ ├── support.js │ │ └── var/ │ │ ├── cssExpand.js │ │ ├── getStyles.js │ │ ├── isHiddenWithinTree.js │ │ ├── rmargin.js │ │ ├── rnumnonpx.js │ │ └── swap.js │ ├── css.js │ ├── data/ │ │ ├── Data.js │ │ └── var/ │ │ ├── acceptData.js │ │ ├── dataPriv.js │ │ └── dataUser.js │ ├── data.js │ ├── deferred/ │ │ └── exceptionHook.js │ ├── deferred.js │ ├── deprecated.js │ ├── dimensions.js │ ├── effects/ │ │ ├── Tween.js │ │ └── animatedSelector.js │ ├── effects.js │ ├── event/ │ │ ├── ajax.js │ │ ├── alias.js │ │ ├── focusin.js │ │ ├── support.js │ │ └── trigger.js │ ├── event.js │ ├── exports/ │ │ ├── amd.js │ │ └── global.js │ ├── jquery.js │ ├── manipulation/ │ │ ├── _evalUrl.js │ │ ├── buildFragment.js │ │ ├── getAll.js │ │ ├── setGlobalEval.js │ │ ├── support.js │ │ ├── var/ │ │ │ ├── rcheckableType.js │ │ │ ├── rscriptType.js │ │ │ └── rtagName.js │ │ └── wrapMap.js │ ├── manipulation.js │ ├── offset.js │ ├── queue/ │ │ └── delay.js │ ├── queue.js │ ├── selector-native.js │ ├── selector-sizzle.js │ ├── selector.js │ ├── serialize.js │ ├── traversing/ │ │ ├── findFilter.js │ │ └── var/ │ │ ├── dir.js │ │ ├── rneedsContext.js │ │ └── siblings.js │ ├── traversing.js │ ├── var/ │ │ ├── ObjectFunctionString.js │ │ ├── arr.js │ │ ├── class2type.js │ │ ├── concat.js │ │ ├── document.js │ │ ├── documentElement.js │ │ ├── fnToString.js │ │ ├── getProto.js │ │ ├── hasOwn.js │ │ ├── indexOf.js │ │ ├── pnum.js │ │ ├── push.js │ │ ├── rcssNum.js │ │ ├── rnotwhite.js │ │ ├── slice.js │ │ ├── support.js │ │ └── toString.js │ └── wrap.js ├── login.html ├── logout.html ├── notifications.html ├── register.html └── websocket.html