diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/ActionUtilities.ts | 10 | ||||
| -rw-r--r-- | src/server/ApiManagers/UtilManager.ts | 1 | ||||
| -rw-r--r-- | src/server/DashUploadUtils.ts | 27 | ||||
| -rw-r--r-- | src/server/GarbageCollector.ts | 6 | ||||
| -rw-r--r-- | src/server/MemoryDatabase.ts | 4 | ||||
| -rw-r--r-- | src/server/Message.ts | 2 | ||||
| -rw-r--r-- | src/server/ProcessFactory.ts | 6 | ||||
| -rw-r--r-- | src/server/Recommender.ts | 133 | ||||
| -rw-r--r-- | src/server/RouteManager.ts | 8 | ||||
| -rw-r--r-- | src/server/Search.ts | 2 | ||||
| -rw-r--r-- | src/server/database.ts | 8 | ||||
| -rw-r--r-- | src/server/downsize.ts | 2 | ||||
| -rw-r--r-- | src/server/index.ts | 33 | ||||
| -rw-r--r-- | src/server/server_Initialization.ts | 38 | ||||
| -rw-r--r-- | src/server/websocket.ts | 31 | 
15 files changed, 89 insertions, 222 deletions
| diff --git a/src/server/ActionUtilities.ts b/src/server/ActionUtilities.ts index 60f66c878..fd9bc0c83 100644 --- a/src/server/ActionUtilities.ts +++ b/src/server/ActionUtilities.ts @@ -1,11 +1,11 @@ -import { readFile, writeFile, exists, mkdir, unlink, createWriteStream } from 'fs'; -import { ExecOptions } from 'shelljs';  import { exec } from 'child_process'; -import * as path from 'path'; -import * as rimraf from "rimraf"; -import { yellow, Color } from 'colors'; +import { Color, yellow } from 'colors'; +import { createWriteStream, exists, mkdir, readFile, unlink, writeFile } from 'fs';  import * as nodemailer from "nodemailer";  import { MailOptions } from "nodemailer/lib/json-transport"; +import * as path from 'path'; +import * as rimraf from "rimraf"; +import { ExecOptions } from 'shelljs';  import Mail = require('nodemailer/lib/mailer');  const projectRoot = path.resolve(__dirname, "../../"); diff --git a/src/server/ApiManagers/UtilManager.ts b/src/server/ApiManagers/UtilManager.ts index e2cd88726..e657866ce 100644 --- a/src/server/ApiManagers/UtilManager.ts +++ b/src/server/ApiManagers/UtilManager.ts @@ -6,7 +6,6 @@ import { exec } from 'child_process';  // const recommender = new Recommender();  // recommender.testModel(); -import executeImport from "../../scraping/buxton/final/BuxtonImporter";  export default class UtilManager extends ApiManager { diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index 2bf4c1956..890fb6f6d 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -1,23 +1,22 @@ -import { unlinkSync, createWriteStream, readFileSync, rename, writeFile, existsSync } from 'fs'; -import { Utils } from '../Utils'; -import * as path from 'path'; -import * as sharp from 'sharp'; -import request = require('request-promise'); +import { red } from 'colors';  import { ExifImage } from 'exif'; -import { Opt } from '../fields/Doc'; -import { AcceptibleMedia, Upload } from './SharedMediaTypes'; -import { filesDirectory, publicDirectory } from '.';  import { File } from 'formidable'; +import { createWriteStream, existsSync, readFileSync, rename, unlinkSync, writeFile } from 'fs'; +import * as path from 'path';  import { basename } from "path"; -import { createIfNotExists } from './ActionUtilities'; +import * as sharp from 'sharp'; +import { Stream } from 'stream'; +import { filesDirectory, publicDirectory } from '.'; +import { Opt } from '../fields/Doc';  import { ParsedPDF } from "../server/PdfTypes"; +import { Utils } from '../Utils'; +import { createIfNotExists } from './ActionUtilities'; +import { clientPathToFile, Directory, pathToDirectory, serverPathToFile } from './ApiManagers/UploadManager'; +import { resolvedServerUrl } from "./server_Initialization"; +import { AcceptibleMedia, Upload } from './SharedMediaTypes'; +import request = require('request-promise');  const parse = require('pdf-parse'); -import { Directory, serverPathToFile, clientPathToFile, pathToDirectory } from './ApiManagers/UploadManager'; -import { red } from 'colors'; -import { Stream } from 'stream'; -import { resolvedPorts } from './server_Initialization';  const requestImageSize = require("../client/util/request-image-size"); -import { resolvedServerUrl } from "./server_Initialization";  export enum SizeSuffix {      Small = "_s", diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts index 24745cbb4..a9a3b0481 100644 --- a/src/server/GarbageCollector.ts +++ b/src/server/GarbageCollector.ts @@ -1,9 +1,9 @@ -import { Database } from './database'; - -import * as path from 'path';  import * as fs from 'fs'; +import * as path from 'path'; +import { Database } from './database';  import { Search } from './Search'; +  function addDoc(doc: any, ids: string[], files: { [name: string]: string[] }) {      for (const key in doc) {          if (!doc.hasOwnProperty(key)) { diff --git a/src/server/MemoryDatabase.ts b/src/server/MemoryDatabase.ts index 1f1d702d9..d2d8bb3b3 100644 --- a/src/server/MemoryDatabase.ts +++ b/src/server/MemoryDatabase.ts @@ -1,6 +1,6 @@ -import { IDatabase, DocumentsCollection } from './IDatabase'; -import { Transferable } from './Message';  import * as mongodb from 'mongodb'; +import { DocumentsCollection, IDatabase } from './IDatabase'; +import { Transferable } from './Message';  export class MemoryDatabase implements IDatabase { diff --git a/src/server/Message.ts b/src/server/Message.ts index ff0381fd3..59b24cd82 100644 --- a/src/server/Message.ts +++ b/src/server/Message.ts @@ -1,6 +1,6 @@ -import { Utils } from "../Utils";  import { Point } from "../pen-gestures/ndollar";  import { AnalysisResult, ImportResults } from "../scraping/buxton/final/BuxtonImporter"; +import { Utils } from "../Utils";  export class Message<T> {      private _name: string; diff --git a/src/server/ProcessFactory.ts b/src/server/ProcessFactory.ts index acb8b3a99..63682368f 100644 --- a/src/server/ProcessFactory.ts +++ b/src/server/ProcessFactory.ts @@ -1,8 +1,8 @@ -import { existsSync, mkdirSync } from "fs"; -import { pathFromRoot, fileDescriptorFromStream } from './ActionUtilities'; -import rimraf = require("rimraf");  import { ChildProcess, spawn, StdioOptions } from "child_process"; +import { existsSync, mkdirSync } from "fs";  import { Stream } from "stream"; +import { fileDescriptorFromStream, pathFromRoot } from './ActionUtilities'; +import rimraf = require("rimraf");  export namespace ProcessFactory { diff --git a/src/server/Recommender.ts b/src/server/Recommender.ts deleted file mode 100644 index 935ec3871..000000000 --- a/src/server/Recommender.ts +++ /dev/null @@ -1,133 +0,0 @@ -// //import { Doc } from "../fields/Doc"; -// //import { StrCast } from "../fields/Types"; -// //import { List } from "../fields/List"; -// //import { CognitiveServices } from "../client/cognitive_services/CognitiveServices"; - -// // var w2v = require('word2vec'); -// var assert = require('assert'); -// var arxivapi = require('arxiv-api-node'); -// import requestPromise = require("request-promise"); -// import * as use from '@tensorflow-models/universal-sentence-encoder'; -// import { Tensor } from "@tensorflow/tfjs-core/dist/tensor"; -// require('@tensorflow/tfjs-node'); - -// //http://gnuwin32.sourceforge.net/packages/make.htm - -// export class Recommender { - -//     private _model: any; -//     static Instance: Recommender; -//     private dimension: number = 0; -//     private choice: string = ""; // Tensorflow or Word2Vec - -//     constructor() { -//         Recommender.Instance = this; -//     } - -//     /*** -//      * Loads pre-trained model from TF -//      */ - -//     public async loadTFModel() { -//         let self = this; -//         return new Promise(res => { -//             use.load().then(model => { -//                 self.choice = "TF"; -//                 self._model = model; -//                 self.dimension = 512; -//                 res(model); -//             }); -//         } - -//         ); -//     } - -//     /*** -//      * Loads pre-trained model from word2vec -//      */ - -//     // private loadModel(): Promise<any> { -//     //     let self = this; -//     //     return new Promise(res => { -//     //         w2v.loadModel("./node_modules/word2vec/examples/fixtures/vectors.txt", function (err: any, model: any) { -//     //             self.choice = "WV"; -//     //             self._model = model; -//     //             self.dimension = model.size; -//     //             res(model); -//     //         }); -//     //     }); -//     // } - -//     /*** -//      * Testing -//      */ - -//     public async testModel() { -//         if (!this._model) { -//             await this.loadTFModel(); -//         } -//         if (this._model) { -//             if (this.choice === "WV") { -//                 let similarity = this._model.similarity('father', 'mother'); -//             } -//             else if (this.choice === "TF") { -//                 const model = this._model as use.UniversalSentenceEncoder; -//                 // Embed an array of sentences. -//                 const sentences = [ -//                     'Hello.', -//                     'How are you?' -//                 ]; -//                 const embeddings = await this.vectorize(sentences); -//                 if (embeddings) embeddings.print(true /*verbose*/); -//                 // model.embed(sentences).then(embeddings => { -//                 //     // `embeddings` is a 2D tensor consisting of the 512-dimensional embeddings for each sentence. -//                 //     // So in this example `embeddings` has the shape [2, 512]. -//                 //     embeddings.print(true /* verbose */); -//                 // }); -//             } -//         } -//         else { -//             console.log("model not found :("); -//         } -//     } - -//     /*** -//      * Uses model to convert words to vectors -//      */ - -//     public async vectorize(text: string[]): Promise<Tensor | undefined> { -//         if (!this._model) { -//             await this.loadTFModel(); -//         } -//         if (this._model) { -//             if (this.choice === "WV") { -//                 let word_vecs = this._model.getVectors(text); -//                 return word_vecs; -//             } -//             else if (this.choice === "TF") { -//                 const model = this._model as use.UniversalSentenceEncoder; -//                 return new Promise<Tensor>(res => { -//                     model.embed(text).then(embeddings => { -//                         res(embeddings); -//                     }); -//                 }); - -//             } -//         } -//     } - -//     // public async trainModel() { -//     //     w2v.word2vec("./node_modules/word2vec/examples/eng_news-typical_2016_1M-sentences.txt", './node_modules/word2vec/examples/my_phrases.txt', { -//     //         cbow: 1, -//     //         size: 200, -//     //         window: 8, -//     //         negative: 25, -//     //         hs: 0, -//     //         sample: 1e-4, -//     //         threads: 20, -//     //         iter: 200, -//     //         minCount: 2 -//     //     }); -//     // } - -// } diff --git a/src/server/RouteManager.ts b/src/server/RouteManager.ts index 1a2340afc..78b75d6be 100644 --- a/src/server/RouteManager.ts +++ b/src/server/RouteManager.ts @@ -1,8 +1,8 @@ -import RouteSubscriber from "./RouteSubscriber"; -import { DashUserModel } from "./authentication/DashUserModel"; -import { Request, Response, Express } from 'express'; -import { cyan, red, green } from 'colors'; +import { cyan, green, red } from 'colors'; +import { Express, Request, Response } from 'express';  import { AdminPriviliges } from "."; +import { DashUserModel } from "./authentication/DashUserModel"; +import RouteSubscriber from "./RouteSubscriber";  export enum Method {      GET, diff --git a/src/server/Search.ts b/src/server/Search.ts index 21064e520..decd1f5b1 100644 --- a/src/server/Search.ts +++ b/src/server/Search.ts @@ -1,5 +1,5 @@ -import * as rp from 'request-promise';  import { red } from 'colors'; +import * as rp from 'request-promise';  const pathTo = (relative: string) => `http://localhost:8983/solr/dash/${relative}`; diff --git a/src/server/database.ts b/src/server/database.ts index 64c5b7e4b..41bf8b3da 100644 --- a/src/server/database.ts +++ b/src/server/database.ts @@ -1,11 +1,11 @@  import * as mongodb from 'mongodb'; -import { Transferable } from './Message'; +import * as mongoose from 'mongoose';  import { Opt } from '../fields/Doc'; -import { Utils, emptyFunction } from '../Utils'; +import { emptyFunction, Utils } from '../Utils';  import { GoogleApiServerUtils } from './apis/google/GoogleApiServerUtils'; -import { IDatabase, DocumentsCollection } from './IDatabase'; +import { DocumentsCollection, IDatabase } from './IDatabase';  import { MemoryDatabase } from './MemoryDatabase'; -import * as mongoose from 'mongoose'; +import { Transferable } from './Message';  import { Upload } from './SharedMediaTypes';  export namespace Database { diff --git a/src/server/downsize.ts b/src/server/downsize.ts index 5cd709fa3..382994e2d 100644 --- a/src/server/downsize.ts +++ b/src/server/downsize.ts @@ -1,5 +1,5 @@ -import * as sharp from 'sharp';  import * as fs from 'fs'; +import * as sharp from 'sharp';  const folder = "./src/server/public/files/";  const pngTypes = ["png", "PNG"]; diff --git a/src/server/index.ts b/src/server/index.ts index 5c313654c..40fc5222f 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -1,28 +1,29 @@  require('dotenv').config(); -import { GoogleApiServerUtils } from "./apis/google/GoogleApiServerUtils"; +import { yellow } from "colors";  import * as mobileDetect from 'mobile-detect';  import * as path from 'path'; -import { Database } from './database'; -import { DashUploadUtils } from './DashUploadUtils'; -import RouteSubscriber from './RouteSubscriber'; -import initializeServer, { resolvedPorts } from './server_Initialization'; -import RouteManager, { Method, _success, _permission_denied, _error, _invalid, PublicHandler } from './RouteManager';  import * as qs from 'query-string'; -import UtilManager from './ApiManagers/UtilManager'; -import { SearchManager } from './ApiManagers/SearchManager'; -import UserManager from './ApiManagers/UserManager'; -import DownloadManager from './ApiManagers/DownloadManager'; -import { GoogleCredentialsLoader, SSL } from './apis/google/CredentialsLoader'; -import DeleteManager from "./ApiManagers/DeleteManager"; -import PDFManager from "./ApiManagers/PDFManager"; -import UploadManager from "./ApiManagers/UploadManager";  import { log_execution } from "./ActionUtilities"; +import DeleteManager from "./ApiManagers/DeleteManager"; +import DownloadManager from './ApiManagers/DownloadManager';  import GeneralGoogleManager from "./ApiManagers/GeneralGoogleManager";  import GooglePhotosManager from "./ApiManagers/GooglePhotosManager"; -import { Logger } from "./ProcessFactory"; -import { yellow } from "colors"; +import HypothesisManager from "./ApiManagers/HypothesisManager"; +import PDFManager from "./ApiManagers/PDFManager"; +import { SearchManager } from './ApiManagers/SearchManager';  import SessionManager from "./ApiManagers/SessionManager"; +import UploadManager from "./ApiManagers/UploadManager"; +import UserManager from './ApiManagers/UserManager'; +import UtilManager from './ApiManagers/UtilManager'; +import { GoogleCredentialsLoader, SSL } from './apis/google/CredentialsLoader'; +import { GoogleApiServerUtils } from "./apis/google/GoogleApiServerUtils";  import { AppliedSessionAgent } from "./DashSession/Session/agents/applied_session_agent"; +import { DashUploadUtils } from './DashUploadUtils'; +import { Database } from './database'; +import { Logger } from "./ProcessFactory"; +import RouteManager, { Method, PublicHandler } from './RouteManager'; +import RouteSubscriber from './RouteSubscriber'; +import initializeServer, { resolvedPorts } from './server_Initialization';  export const AdminPriviliges: Map<string, boolean> = new Map();  export const onWindows = process.platform === "win32"; diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts index 744d4547b..e40f2b8e5 100644 --- a/src/server/server_Initialization.ts +++ b/src/server/server_Initialization.ts @@ -1,31 +1,31 @@ +import * as bodyParser from 'body-parser'; +import { blue, yellow } from 'colors'; +import * as cookieParser from 'cookie-parser'; +import * as cors from "cors";  import * as express from 'express'; -import * as expressValidator from 'express-validator';  import * as session from 'express-session'; +import * as expressValidator from 'express-validator'; +import * as fs from 'fs'; +import { Server as HttpServer } from "http"; +import { createServer, Server as HttpsServer } from "https";  import * as passport from 'passport'; -import * as bodyParser from 'body-parser'; -import * as cookieParser from 'cookie-parser'; -import expressFlash = require('express-flash'); -import flash = require('connect-flash'); -import { Database } from './database'; -import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLogin, postReset, postSignup } from './authentication/AuthenticationManager'; -const MongoStore = require('connect-mongo')(session); -import RouteManager from './RouteManager'; -import { WebSocket } from './websocket'; +import * as request from 'request';  import * as webpack from 'webpack'; -const config = require('../../webpack.config'); -const compiler = webpack(config);  import * as wdm from 'webpack-dev-middleware';  import * as whm from 'webpack-hot-middleware'; -import * as fs from 'fs'; -import * as request from 'request'; -import RouteSubscriber from './RouteSubscriber';  import { publicDirectory } from '.';  import { logPort } from './ActionUtilities'; -import { blue, yellow } from 'colors'; -import * as cors from "cors"; -import { createServer, Server as HttpsServer } from "https"; -import { Server as HttpServer } from "http";  import { SSL } from './apis/google/CredentialsLoader'; +import { getForgot, getLogin, getLogout, getReset, getSignup, postForgot, postLogin, postReset, postSignup } from './authentication/AuthenticationManager'; +import { Database } from './database'; +import RouteManager from './RouteManager'; +import RouteSubscriber from './RouteSubscriber'; +import { WebSocket } from './websocket'; +import expressFlash = require('express-flash'); +import flash = require('connect-flash'); +const MongoStore = require('connect-mongo')(session); +const config = require('../../webpack.config'); +const compiler = webpack(config);  /* RouteSetter is a wrapper around the server that prevents the server     from being exposed. */ diff --git a/src/server/websocket.ts b/src/server/websocket.ts index f63a35e43..d81450b32 100644 --- a/src/server/websocket.ts +++ b/src/server/websocket.ts @@ -1,21 +1,20 @@ -import * as fs from 'fs'; -import { logPort } from './ActionUtilities'; +import * as express from "express"; +import { blue, green } from "colors"; +import { createServer, Server } from "https"; +import { networkInterfaces } from "os"; +import * as sio from 'socket.io'; +import { Socket } from "socket.io"; +import executeImport from "../scraping/buxton/final/BuxtonImporter";  import { Utils } from "../Utils"; -import { MessageStore, Transferable, Types, Diff, YoutubeQueryInput, YoutubeQueryTypes, GestureContent, MobileInkOverlayContent, UpdateMobileInkOverlayPositionContent, MobileDocumentUploadContent, RoomMessage } from "./Message"; +import { logPort } from './ActionUtilities'; +import { timeMap } from "./ApiManagers/UserManager"; +import { GoogleCredentialsLoader, SSL } from "./apis/google/CredentialsLoader"; +import YoutubeApi from "./apis/youtube/youtubeApiSample";  import { Client } from "./Client"; -import { Socket } from "socket.io";  import { Database } from "./database"; -import { Search } from "./Search"; -import * as sio from 'socket.io'; -import YoutubeApi from "./apis/youtube/youtubeApiSample"; -import { GoogleCredentialsLoader, SSL } from "./apis/google/CredentialsLoader"; -import { timeMap } from "./ApiManagers/UserManager"; -import { green } from "colors"; -import { networkInterfaces } from "os"; -import executeImport from "../scraping/buxton/final/BuxtonImporter";  import { DocumentsCollection } from "./IDatabase"; -import { createServer, Server } from "https"; -import * as express from "express"; +import { Diff, GestureContent, MessageStore, MobileDocumentUploadContent, MobileInkOverlayContent, Transferable, Types, UpdateMobileInkOverlayPositionContent, YoutubeQueryInput, YoutubeQueryTypes } from "./Message"; +import { Search } from "./Search";  import { resolvedPorts } from './server_Initialization';  export namespace WebSocket { @@ -187,7 +186,7 @@ export namespace WebSocket {              + currentdate.getHours() + ":"              + currentdate.getMinutes() + ":"              + currentdate.getSeconds(); -        console.log(green(`user ${userEmail} has connected to the web socket at: ${datetime}`)); +        console.log(blue(`user ${userEmail} has connected to the web socket at: ${datetime}`));          socketMap.set(socket, userEmail);      } @@ -209,10 +208,12 @@ export namespace WebSocket {      }      function GetRefField([id, callback]: [string, (result?: Transferable) => void]) { +        process.stdout.write(`.`);          Database.Instance.getDocument(id, callback);      }      function GetRefFields([ids, callback]: [string[], (result?: Transferable[]) => void]) { +        process.stdout.write(`${ids.length}…`);          Database.Instance.getDocuments(ids, callback);      } | 
