@resolveio/server-lib 20.7.28 → 20.7.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/collections.ts"],"names":["simpl_schema_1","require","pagination_model_1","resolveio_server_app_1","common_1","loadCollectionMethods","methodManager","methods","collectionListAll","function","Promise","resolve","ResolveIOServer","getMongoManager","collections","map","a","collectionName","sort","b","localeCompare","collectionListRB","filter","useRB","findOne","check","default","collection","type","String","query","Object","blackbox","Error","find","optional","sortQuery","findWithOptions","options","PaginationOptionsSchema","optionsQuery","fields","keys","length","limit","skip","insertDocument","document","id","objectIdHexString","insertOne","_a","sent","insertManyDocuments","documents","Array","documents.$","forEach","insertMany","updateDocument","f_document","replaceOne","_id","updateDocumentProps","doc_id","updateParams","updateParams.$","doc__v","Number","currDoc","modifiedDoc_1","deepCopy","data","prop","__v","console","log","Date","oldDoc","newCurrDocId","newCurrDocV","updatedDoc","getMongoMergeUpdatedDoc","updateDocumentOffline","oldDocV","updateDocumentPropsOffline","modifiedDoc_2","removeDocument","deleteOne","removeDocumentWithQuery","removeDocumentsWithQuery","deleteMany","exports"],"mappings":"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","file":"collections.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nimport { PaginationOptions, PaginationOptionsSchema } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find One Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).findOne(query);\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find With Options Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertOne(document);\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, documents: Object[]) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Many Documents Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertMany(documents);\n\t\t\t\t\treturn documents.map(a => a['_id']);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document);\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: f_document['_id']});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id}, null, true);\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = ResolveIOServer.getMongoManager().collection(collection + '.versions');\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document With Query Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne(query);\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Documents With Query Collections: Invalid Collection');\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteMany(query);\n\t\t\t}\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/collections.ts"],"names":["simpl_schema_1","require","pagination_model_1","resolveio_server_app_1","common_1","loadCollectionMethods","methodManager","methods","collectionListAll","function","Promise","resolve","ResolveIOServer","getMongoManager","collections","map","a","collectionName","sort","b","localeCompare","collectionListRB","filter","useRB","findOne","check","default","collection","type","String","query","Object","blackbox","Error","find","optional","sortQuery","findWithOptions","options","PaginationOptionsSchema","optionsQuery","fields","keys","length","limit","skip","insertDocument","document","id","objectIdHexString","insertOne","_a","sent","insertManyDocuments","documents","Array","documents.$","forEach","insertMany","updateDocument","f_document","replaceOne","_id","updateDocumentProps","doc_id","updateParams","updateParams.$","doc__v","Number","currDoc","modifiedDoc_1","deepCopy","data","prop","__v","console","log","Date","oldDoc","newCurrDocId","newCurrDocV","updatedDoc","getMongoMergeUpdatedDoc","updateDocumentOffline","oldDocV","updateDocumentPropsOffline","modifiedDoc_2","removeDocument","deleteOne","removeDocumentWithQuery","removeDocumentsWithQuery","deleteMany","exports"],"mappings":"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","file":"collections.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nimport { PaginationOptions, PaginationOptionsSchema } from '../models/pagination.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { deepCopy, getMongoMergeUpdatedDoc, objectIdHexString } from '../util/common';\n\nexport function loadCollectionMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tcollectionListAll: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\tcollectionListRB: {\n\t\t\tfunction: function() {\n\t\t\t\treturn Promise.resolve(ResolveIOServer.getMongoManager().collections().filter(a => a.useRB).map(a => a.collectionName).sort((a, b) => a.localeCompare(b)));\n\t\t\t}\n\t\t},\n\t\t// Query database for any collection and query\n\t\tfindOne: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find One Collection: Invalid collection');\n\t\t\t\t}\n\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).findOne(query);\n\t\t\t}\n\t\t},\n\t\tfind: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsort: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query = {}, sortQuery = {}) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, {sort: sortQuery});\n\t\t\t}\n\t\t},\n\t\tfindWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: PaginationOptionsSchema\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object, options: PaginationOptions) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Find With Options Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet optionsQuery = {};\n\n\t\t\t\t\tif (options.fields && Object.keys(options.fields).length) {\n\t\t\t\t\t\toptionsQuery['projection'] = options.fields;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.sort && Object.keys(options.sort).length) {\n\t\t\t\t\t\toptionsQuery['sort'] = options.sort;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.limit) {\n\t\t\t\t\t\toptionsQuery['limit'] = options.limit;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (options.skip) {\n\t\t\t\t\t\toptionsQuery['skip'] = options.skip;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).find(query, optionsQuery);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet id = objectIdHexString();\n\t\t\t\t\tdocument['_id'] = id;\n\t\t\t\t\tdocument['__v'] = 0;\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertOne(document);\n\t\t\t\t\treturn id;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Insert 1 document\n\t\t// @Inputs: collection, document\n\t\t// @Outputs: res = _id of new document, err = not inserted\n\t\tinsertManyDocuments: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocuments: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'documents.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, documents: Object[]) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Insert Many Documents Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdocuments.forEach(document => {\n\t\t\t\t\t\tdocument['_id'] = objectIdHexString();\n\t\t\t\t\t\tdocument['__v'] = 0;\n\t\t\t\t\t});\n\n\t\t\t\t\tawait ResolveIOServer.getMongoManager().collection(collection).insertMany(documents);\n\t\t\t\t\treturn documents.map(a => a['_id']);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Replaces 1 document with new document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (updated 1), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update\n\t\tupdateDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document);\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentProps: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v?: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (!doc__v || modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log(new Date(), 'invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error In Update Document Props Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdateDocumentOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tf_document: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, f_document: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: f_document['_id']});\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tif (currDoc.__v === f_document['__v']) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: f_document['_id']}, f_document, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, f_document['__v']);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\tlet oldDocV = f_document['__v'];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: newCurrDocId,\n\t\t\t\t\t\t\t\t\t\t__v: oldDocV\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(f_document, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + oldDocV);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Updates 1 document's props (from _id)\n\t\t// @Inputs: collection, document id, document version, update paramters ({prop: 'xxx', data: 'yyy})\n\t\t// @Outputs: res = 1 (updated 1), res = 0 (not updated), err = not updated/wrong version\n\t\t// Search for doc, check version, if found then try and update props\n\t\tupdateDocumentPropsOffline: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tupdateParams: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'updateParams.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tdoc__v: {\n\t\t\t\t\ttype: Number\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(collection: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet currDoc = await ResolveIOServer.getMongoManager().collection(collection).findOne({_id: doc_id}, null, true);\n\t\t\t\t\tif (currDoc) {\n\t\t\t\t\t\tlet modifiedDoc = deepCopy(currDoc);\n\n\t\t\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\t\t\tmodifiedDoc[data.prop] = data.data;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (modifiedDoc.__v === doc__v) {\n\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: modifiedDoc._id}, modifiedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconsole.log('OFFLINE - invalid version - ' + collection, currDoc.__v, doc__v);\n\n\t\t\t\t\t\t\tlet newCurrDocId = currDoc._id;\n\t\t\t\t\t\t\tlet newCurrDocV = currDoc.__v;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif (ResolveIOServer.getMongoManager().collection(collection + '.versions')) {\n\t\t\t\t\t\t\t\tlet oldDoc = await ResolveIOServer.getMongoManager().collection(collection + '.versions').findOne({\n\t\t\t\t\t\t\t\t\t_id: {\n\t\t\t\t\t\t\t\t\t\t_id: currDoc._id,\n\t\t\t\t\t\t\t\t\t\t__v: doc__v\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (oldDoc) {\n\t\t\t\t\t\t\t\t\tlet updatedDoc = getMongoMergeUpdatedDoc(modifiedDoc, currDoc, oldDoc);\n\t\t\t\t\t\t\t\t\tupdatedDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tupdatedDoc.__v = newCurrDocV;\n\t\t\t\t\t\t\t\t\tcurrDoc._id = newCurrDocId;\n\t\t\t\t\t\t\t\t\tcurrDoc.__v = newCurrDocV;\n\n\t\t\t\t\t\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).replaceOne({_id: newCurrDocId}, updatedDoc, {}, false, false, currDoc);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: OFFLINE - Invalid Version And Could Not Find History Props - DB: ' + newCurrDocV + ', Trying to update with :' + doc__v);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: Invalid Version And We Are NOT Using Versions On This Collection!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthrow new Error('Error in Update Document Props Offline Collections: No Document');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Removes 1 document (from _id)\n\t\t// @Inputs: collection, document id\n\t\t// @Outputs: res = 1 (deleted), res = 0 (not deleted), err = not deleted\n\t\t// Search for doc, if found then try and remove\n\t\tremoveDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, doc_id: string) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne({_id: doc_id});\n\t\t\t}\n\t\t},\n\t\tremoveDocumentWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Document With Query Collection: Invalid collection');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteOne(query);\n\t\t\t}\n\t\t},\n\t\tremoveDocumentsWithQuery: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(collection: string, query: Object) {\n\t\t\t\tif (!ResolveIOServer.getMongoManager().collection(collection)) {\n\t\t\t\t\tthrow new Error('Error in Remove Documents With Query Collections: Invalid Collection');\n\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\treturn ResolveIOServer.getMongoManager().collection(collection).deleteMany(query);\n\t\t\t}\n\t\t}\n\t});\n}"]}
@@ -11,4 +11,5 @@ export interface MethodAllModel {
11
11
  user: string;
12
12
  }, ...parameters: any[]) => Promise<any | any[]>;
13
13
  skipValidation?: boolean;
14
+ workerTaskWeight?: number;
14
15
  }
@@ -0,0 +1,27 @@
1
+ export interface ServerResponseModel {
2
+ messageId: number;
3
+ hasError: boolean;
4
+ data: any;
5
+ }
6
+ interface Task {
7
+ taskId: string;
8
+ messageId: number;
9
+ }
10
+ export interface TaskQueueItem extends Task {
11
+ method: string;
12
+ params: any[];
13
+ userContext: {
14
+ id_user?: string;
15
+ user?: string;
16
+ id_ws?: string;
17
+ };
18
+ }
19
+ export interface TaskPayload extends TaskQueueItem {
20
+ type: 'task';
21
+ }
22
+ export interface TaskResponse extends Task {
23
+ type: 'taskComplete';
24
+ error: boolean;
25
+ result: any;
26
+ }
27
+ export {};
@@ -1,2 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
2
- //# sourceMappingURL=server-response.model.js.map
2
+ //# sourceMappingURL=server-message.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-message.model.js","sources":["models/server-message.model.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"],"names":["Object","defineProperty","exports","value"],"mappings":"AAAA,aACAA,OAAOC,eAAeC,QAAS,aAAc,CAAEC,MAAO,CAAA,CAAK,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "20.7.28",
3
+ "version": "20.7.30",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "package": "./build_package.sh",
package/public_api.d.ts CHANGED
@@ -50,7 +50,7 @@ export * from './models/report-builder-library.model';
50
50
  export * from './models/report-builder-report.model';
51
51
  export * from './models/report-builder.model';
52
52
  export * from './models/select-data-label.model';
53
- export * from './models/server-response.model';
53
+ export * from './models/server-message.model';
54
54
  export * from './models/subscription.model';
55
55
  export * from './models/support-ticket.model';
56
56
  export * from './models/user-group.model';
package/public_api.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,o,t){void 0===t&&(t=o);var l=Object.getOwnPropertyDescriptor(r,o);l&&("get"in l?r.__esModule:!l.writable&&!l.configurable)||(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(e,t,l)}:function(e,r,o,t){e[t=void 0===t?o:t]=r[o]}),__exportStar=this&&this.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||__createBinding(r,e,o)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./collections/app-status.collection"),exports),__exportStar(require("./collections/counter.collection"),exports),__exportStar(require("./collections/cron-job-history.collection"),exports),__exportStar(require("./collections/cron-job.collection"),exports),__exportStar(require("./collections/email-history.collection"),exports),__exportStar(require("./collections/email-verified.collection"),exports),__exportStar(require("./collections/file.collection"),exports),__exportStar(require("./collections/flag-update.collection"),exports),__exportStar(require("./collections/flag.collection"),exports),__exportStar(require("./collections/log-method-latency.collection"),exports),__exportStar(require("./collections/log-subscription.collection"),exports),__exportStar(require("./collections/log.collection"),exports),__exportStar(require("./collections/logged-in-users.collection"),exports),__exportStar(require("./collections/monitor-cpu.collection"),exports),__exportStar(require("./collections/monitor-function.collection"),exports),__exportStar(require("./collections/monitor-memory.collection"),exports),__exportStar(require("./collections/monitor-mongo.collection"),exports),__exportStar(require("./collections/notification.collection"),exports),__exportStar(require("./collections/report-builder-library.collection"),exports),__exportStar(require("./collections/report-builder-report.collection"),exports),__exportStar(require("./collections/user-group.collection"),exports),__exportStar(require("./collections/user-guide.collection"),exports),__exportStar(require("./collections/user.collection"),exports),__exportStar(require("./managers/mongo.manager"),exports),__exportStar(require("./models/app-status.model"),exports),__exportStar(require("./models/billing-logged-in-users.model"),exports),__exportStar(require("./models/collection-document.model"),exports),__exportStar(require("./models/counter.model"),exports),__exportStar(require("./models/cron-job-history.model"),exports),__exportStar(require("./models/cron-job.model"),exports),__exportStar(require("./models/dialog.model"),exports),__exportStar(require("./models/email-history.model"),exports),__exportStar(require("./models/email-verified.model"),exports),__exportStar(require("./models/file.model"),exports),__exportStar(require("./models/flag-update.model"),exports),__exportStar(require("./models/flag.model"),exports),__exportStar(require("./models/log-method-latency.model"),exports),__exportStar(require("./models/log-subscription.model"),exports),__exportStar(require("./models/log.model"),exports),__exportStar(require("./models/logged-in-users.model"),exports),__exportStar(require("./models/method-response.model"),exports),__exportStar(require("./models/method.model"),exports),__exportStar(require("./models/monitor-cpu.model"),exports),__exportStar(require("./models/monitor-memory.model"),exports),__exportStar(require("./models/monitor-mongo.model"),exports),__exportStar(require("./models/notification.model"),exports),__exportStar(require("./models/pagination.model"),exports),__exportStar(require("./models/permission.model"),exports),__exportStar(require("./models/report-builder-library.model"),exports),__exportStar(require("./models/report-builder-report.model"),exports),__exportStar(require("./models/report-builder.model"),exports),__exportStar(require("./models/select-data-label.model"),exports),__exportStar(require("./models/server-response.model"),exports),__exportStar(require("./models/subscription.model"),exports),__exportStar(require("./models/support-ticket.model"),exports),__exportStar(require("./models/user-group.model"),exports),__exportStar(require("./models/user-guide.model"),exports),__exportStar(require("./models/user.model"),exports),__exportStar(require("./resolveio-server-app"),exports),__exportStar(require("./util/common"),exports);
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,o,t){void 0===t&&(t=o);var l=Object.getOwnPropertyDescriptor(r,o);l&&("get"in l?r.__esModule:!l.writable&&!l.configurable)||(l={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(e,t,l)}:function(e,r,o,t){e[t=void 0===t?o:t]=r[o]}),__exportStar=this&&this.__exportStar||function(e,r){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(r,o)||__createBinding(r,e,o)};Object.defineProperty(exports,"__esModule",{value:!0}),__exportStar(require("./collections/app-status.collection"),exports),__exportStar(require("./collections/counter.collection"),exports),__exportStar(require("./collections/cron-job-history.collection"),exports),__exportStar(require("./collections/cron-job.collection"),exports),__exportStar(require("./collections/email-history.collection"),exports),__exportStar(require("./collections/email-verified.collection"),exports),__exportStar(require("./collections/file.collection"),exports),__exportStar(require("./collections/flag-update.collection"),exports),__exportStar(require("./collections/flag.collection"),exports),__exportStar(require("./collections/log-method-latency.collection"),exports),__exportStar(require("./collections/log-subscription.collection"),exports),__exportStar(require("./collections/log.collection"),exports),__exportStar(require("./collections/logged-in-users.collection"),exports),__exportStar(require("./collections/monitor-cpu.collection"),exports),__exportStar(require("./collections/monitor-function.collection"),exports),__exportStar(require("./collections/monitor-memory.collection"),exports),__exportStar(require("./collections/monitor-mongo.collection"),exports),__exportStar(require("./collections/notification.collection"),exports),__exportStar(require("./collections/report-builder-library.collection"),exports),__exportStar(require("./collections/report-builder-report.collection"),exports),__exportStar(require("./collections/user-group.collection"),exports),__exportStar(require("./collections/user-guide.collection"),exports),__exportStar(require("./collections/user.collection"),exports),__exportStar(require("./managers/mongo.manager"),exports),__exportStar(require("./models/app-status.model"),exports),__exportStar(require("./models/billing-logged-in-users.model"),exports),__exportStar(require("./models/collection-document.model"),exports),__exportStar(require("./models/counter.model"),exports),__exportStar(require("./models/cron-job-history.model"),exports),__exportStar(require("./models/cron-job.model"),exports),__exportStar(require("./models/dialog.model"),exports),__exportStar(require("./models/email-history.model"),exports),__exportStar(require("./models/email-verified.model"),exports),__exportStar(require("./models/file.model"),exports),__exportStar(require("./models/flag-update.model"),exports),__exportStar(require("./models/flag.model"),exports),__exportStar(require("./models/log-method-latency.model"),exports),__exportStar(require("./models/log-subscription.model"),exports),__exportStar(require("./models/log.model"),exports),__exportStar(require("./models/logged-in-users.model"),exports),__exportStar(require("./models/method-response.model"),exports),__exportStar(require("./models/method.model"),exports),__exportStar(require("./models/monitor-cpu.model"),exports),__exportStar(require("./models/monitor-memory.model"),exports),__exportStar(require("./models/monitor-mongo.model"),exports),__exportStar(require("./models/notification.model"),exports),__exportStar(require("./models/pagination.model"),exports),__exportStar(require("./models/permission.model"),exports),__exportStar(require("./models/report-builder-library.model"),exports),__exportStar(require("./models/report-builder-report.model"),exports),__exportStar(require("./models/report-builder.model"),exports),__exportStar(require("./models/select-data-label.model"),exports),__exportStar(require("./models/server-message.model"),exports),__exportStar(require("./models/subscription.model"),exports),__exportStar(require("./models/support-ticket.model"),exports),__exportStar(require("./models/user-group.model"),exports),__exportStar(require("./models/user-guide.model"),exports),__exportStar(require("./models/user.model"),exports),__exportStar(require("./resolveio-server-app"),exports),__exportStar(require("./util/common"),exports);
2
2
  //# sourceMappingURL=public_api.js.map
package/public_api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/public_api.ts"],"names":["__exportStar","require","exports"],"mappings":"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","file":"public_api.js","sourcesContent":["export * from './collections/app-status.collection';\nexport * from './collections/counter.collection';\nexport * from './collections/cron-job-history.collection';\nexport * from './collections/cron-job.collection';\nexport * from './collections/email-history.collection';\nexport * from './collections/email-verified.collection';\nexport * from './collections/file.collection';\nexport * from './collections/flag-update.collection';\nexport * from './collections/flag.collection';\nexport * from './collections/log-method-latency.collection';\nexport * from './collections/log-subscription.collection';\nexport * from './collections/log.collection';\nexport * from './collections/logged-in-users.collection';\nexport * from './collections/monitor-cpu.collection';\nexport * from './collections/monitor-function.collection';\nexport * from './collections/monitor-memory.collection';\nexport * from './collections/monitor-mongo.collection';\nexport * from './collections/notification.collection';\nexport * from './collections/report-builder-library.collection';\nexport * from './collections/report-builder-report.collection';\nexport * from './collections/user-group.collection';\nexport * from './collections/user-guide.collection';\nexport * from './collections/user.collection';\nexport * from './managers/mongo.manager';\nexport * from './models/app-status.model';\nexport * from './models/billing-logged-in-users.model';\nexport * from './models/collection-document.model';\nexport * from './models/counter.model';\nexport * from './models/cron-job-history.model';\nexport * from './models/cron-job.model';\nexport * from './models/dialog.model';\nexport * from './models/email-history.model';\nexport * from './models/email-verified.model';\nexport * from './models/file.model';\nexport * from './models/flag-update.model';\nexport * from './models/flag.model';\nexport * from './models/log-method-latency.model';\nexport * from './models/log-subscription.model';\nexport * from './models/log.model';\nexport * from './models/logged-in-users.model';\nexport * from './models/method-response.model';\nexport * from './models/method.model';\nexport * from './models/monitor-cpu.model';\nexport * from './models/monitor-memory.model';\nexport * from './models/monitor-mongo.model';\nexport * from './models/notification.model';\nexport * from './models/pagination.model';\nexport * from './models/permission.model';\nexport * from './models/report-builder-library.model';\nexport * from './models/report-builder-report.model';\nexport * from './models/report-builder.model';\nexport * from './models/select-data-label.model';\nexport * from './models/server-response.model';\nexport * from './models/subscription.model';\nexport * from './models/support-ticket.model';\nexport * from './models/user-group.model';\nexport * from './models/user-guide.model';\nexport * from './models/user.model';\nexport * from './resolveio-server-app';\nexport * from './util/common';\n\n"]}
1
+ {"version":3,"sources":["../../src/public_api.ts"],"names":["__exportStar","require","exports"],"mappings":"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","file":"public_api.js","sourcesContent":["export * from './collections/app-status.collection';\nexport * from './collections/counter.collection';\nexport * from './collections/cron-job-history.collection';\nexport * from './collections/cron-job.collection';\nexport * from './collections/email-history.collection';\nexport * from './collections/email-verified.collection';\nexport * from './collections/file.collection';\nexport * from './collections/flag-update.collection';\nexport * from './collections/flag.collection';\nexport * from './collections/log-method-latency.collection';\nexport * from './collections/log-subscription.collection';\nexport * from './collections/log.collection';\nexport * from './collections/logged-in-users.collection';\nexport * from './collections/monitor-cpu.collection';\nexport * from './collections/monitor-function.collection';\nexport * from './collections/monitor-memory.collection';\nexport * from './collections/monitor-mongo.collection';\nexport * from './collections/notification.collection';\nexport * from './collections/report-builder-library.collection';\nexport * from './collections/report-builder-report.collection';\nexport * from './collections/user-group.collection';\nexport * from './collections/user-guide.collection';\nexport * from './collections/user.collection';\nexport * from './managers/mongo.manager';\nexport * from './models/app-status.model';\nexport * from './models/billing-logged-in-users.model';\nexport * from './models/collection-document.model';\nexport * from './models/counter.model';\nexport * from './models/cron-job-history.model';\nexport * from './models/cron-job.model';\nexport * from './models/dialog.model';\nexport * from './models/email-history.model';\nexport * from './models/email-verified.model';\nexport * from './models/file.model';\nexport * from './models/flag-update.model';\nexport * from './models/flag.model';\nexport * from './models/log-method-latency.model';\nexport * from './models/log-subscription.model';\nexport * from './models/log.model';\nexport * from './models/logged-in-users.model';\nexport * from './models/method-response.model';\nexport * from './models/method.model';\nexport * from './models/monitor-cpu.model';\nexport * from './models/monitor-memory.model';\nexport * from './models/monitor-mongo.model';\nexport * from './models/notification.model';\nexport * from './models/pagination.model';\nexport * from './models/permission.model';\nexport * from './models/report-builder-library.model';\nexport * from './models/report-builder-report.model';\nexport * from './models/report-builder.model';\nexport * from './models/select-data-label.model';\nexport * from './models/server-message.model';\nexport * from './models/subscription.model';\nexport * from './models/support-ticket.model';\nexport * from './models/user-group.model';\nexport * from './models/user-guide.model';\nexport * from './models/user.model';\nexport * from './resolveio-server-app';\nexport * from './util/common';\n\n"]}
package/server-app.d.ts CHANGED
@@ -7,6 +7,8 @@ import { MethodManager } from './managers/method.manager';
7
7
  import { MonitorManager } from './managers/monitor.manager';
8
8
  import { SubscriptionManager } from './managers/subscription.manager';
9
9
  import { WebSocketManager } from './managers/websocket.manager';
10
+ import { WorkerDispatcherManager } from './managers/worker-dispatcher.manager';
11
+ import { WorkerServerManager } from './managers/worker-server.manager';
10
12
  export declare class ResolveIOMainServer {
11
13
  private _app;
12
14
  private _serverHTTP;
@@ -18,7 +20,6 @@ export declare class ResolveIOMainServer {
18
20
  private standardProgram;
19
21
  private publicProgram;
20
22
  private _rebootFlag;
21
- private _runningTasks;
22
23
  private LOGGER;
23
24
  private _websocketManager;
24
25
  private _monitorManager;
@@ -27,6 +28,8 @@ export declare class ResolveIOMainServer {
27
28
  private _methodManager;
28
29
  private _cronManager;
29
30
  private _clientRoutes;
31
+ private _workerDispatcherManager;
32
+ private _workerServerManager;
30
33
  private _serverStartTime;
31
34
  private _lastErrorMsg;
32
35
  private _debugMsgRecv;
@@ -34,16 +37,10 @@ export declare class ResolveIOMainServer {
34
37
  private _isWorkersEnabled;
35
38
  private _isWorkerInstance;
36
39
  private _safeShutdown;
37
- private _workers;
38
- private _taskQueue;
39
- private _inFlightRequests;
40
40
  constructor();
41
41
  static create(): Promise<ResolveIOMainServer>;
42
42
  private initialize;
43
43
  private startServerInstance;
44
- startWorkerInstance(): void;
45
- private handleIncomingTask;
46
- private sendWorkerResponse;
47
44
  private safeShutdown;
48
45
  getIsWorkersEnabled(): boolean;
49
46
  getIsWorkerInstance(): boolean;
@@ -67,27 +64,12 @@ export declare class ResolveIOMainServer {
67
64
  * callMethodLocally is your old approach for invoking the method in-process.
68
65
  */
69
66
  private callMethodLocally;
70
- /**
71
- * Add a new task to our in-memory queue and try to dispatch.
72
- */
73
- private queueTask;
74
- /**
75
- * The main loop that assigns tasks from _taskQueue to any worker that has capacity.
76
- */
77
- private dispatchQueue;
78
- /**
79
- * Returns the worker with the fewest activeTasks that is under maxConcurrency. Or null if none.
80
- */
81
- private findAvailableWorker;
82
- private assignTaskToWorker;
83
- /**
84
- * Handle messages coming back from a worker (like 'taskComplete').
85
- */
86
- private handleWorkerMessage;
87
67
  /**
88
68
  * Cleanly remove a client from the subscription manager, etc.
89
69
  */
90
70
  unsubscribeWS(ws: WebSocket): Promise<void>;
91
71
  getApp(): express.Application;
92
72
  getServerConfig(): any;
73
+ getWorkerDispatcherManager(): WorkerDispatcherManager;
74
+ getWorkerServerManager(): WorkerServerManager;
93
75
  }
package/server-app.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,n,s,o){return new(s=s||Promise)(function(t,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,s){var o,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var r=[t,e];if(o)throw new TypeError("Generator is already executing.");for(;c=l&&r[l=0]?0:c;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,i=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){c=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))c.label=r[1];else if(6===r[0]&&c.label<a[1])c.label=a[1],a=r;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(r)}}r=s.call(n,c)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},__read=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,s,o=t.call(e),i=[];try{for(;(void 0===r||0<r--)&&!(n=o.next()).done;)i.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var n,s=0,o=r.length;s<o;s++)!n&&s in r||((n=n||Array.prototype.slice.call(r,0,s))[s]=r[s]);return e.concat(n||Array.prototype.slice.call(r))},__values=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOMainServer=void 0,require("body-parser")),express=require("express"),xmlParser=require("express-xml-bodyparser"),http_1=require("http"),jwt=require("jsonwebtoken"),moment=require("moment-timezone"),WebSocket=require("ws"),log_collection_1=require("./collections/log.collection"),user_collection_1=require("./collections/user.collection"),cron_manager_1=require("./managers/cron.manager"),method_manager_1=require("./managers/method.manager"),monitor_manager_1=require("./managers/monitor.manager"),subscription_manager_1=require("./managers/subscription.manager"),common_1=require("./util/common"),mongodb_1=require("mongodb"),auth_1=require("./http/auth"),health_1=require("./http/health"),home_1=require("./http/home"),websocket_manager_1=require("./managers/websocket.manager"),resolveio_server_app_1=require("./resolveio-server-app"),ResolveIOMainServer=function(){function ResolveIOMainServer(){this._offlineUpdates=[],this.sesMail=!1,this.standardProgram=!1,this.publicProgram=!1,this._rebootFlag=!1,this._runningTasks=[],this.LOGGER="ERROR",this._clientRoutes=[],this._lastErrorMsg=null,this._debugMsgRecv=0,this._debugMsgQueue=0,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._safeShutdown=!1,this._workers=[],this._taskQueue=[],this._inFlightRequests={}}return ResolveIOMainServer.create=function(){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,(r=new ResolveIOMainServer).initialize()];case 1:return e.sent(),[2,r]}})})},ResolveIOMainServer.prototype.initialize=function(){return __awaiter(this,void 0,void 0,function(){var r,o,i=this;return __generator(this,function(e){switch(e.label){case 0:return this._serverStartTime=new Date,this._lastErrorMsg=null,r=this,[4,monitor_manager_1.MonitorManager.create()];case 1:return r._monitorManager=e.sent(),this._monitorManagerFunction=new monitor_manager_1.MonitorManagerFunction,this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,setInterval(function(){i._subscriptionManager&&i._subscriptionManager.getEnableDebug()&&(console.log(new Date,"Server App","Msg Recv Hits",i._debugMsgRecv),console.log(new Date,"Server App","Msg Queue Hits",i._debugMsgQueue)),i._debugMsgQueue=0,i._debugMsgRecv=0},6e4),o=!1,setTimeout(function(){o=!0},5e3),process.on("unhandledRejection",function(n,s){return __awaiter(i,void 0,void 0,function(){var r,t=this;return __generator(this,function(e){switch(e.label){case 0:return n&&"MongoError"===n.name&&48===n.code?[2]:n&&"MongoServerError"===n.name&&!o?[2]:(console.error(new Date,"Unhandled Rejection at Promise",[n,s]),r=moment().diff(this._serverStartTime,"seconds"),n&&("MongoNetworkTimeoutError"===n.name||n instanceof mongodb_1.MongoNetworkTimeoutError)?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - MongoNetworkTimeoutError - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify({name:n.name,message:n.message,stack:n.stack},null,2))]):[3,2]:[3,3]);case 1:e.sent(),process.exit(1),e.label=2;case 2:return[3,11];case 3:return n&&"MongoError"===n.name&&"not master"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,5]:[3,6];case 4:e.sent(),e.label=5;case 5:return process.exit(1),[3,11];case 6:return n&&"MongoError"===n.name&&"not master and slaveOk=false"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,8]:[3,9];case 7:e.sent(),e.label=8;case 8:return process.exit(1),[3,11];case 9:return n?"StatusError"!==n.name&&""!==n.message&&60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,11]:[3,11];case 10:e.sent(),e.label=11;case 11:return[2]}})})}),process.on("uncaughtException",function(t){return __awaiter(i,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:return(console.error(t,"Uncaught Exception thrown"),60<moment().diff(this._serverStartTime,"seconds")&&!this._lastErrorMsg)?(this._lastErrorMsg=new Date,setTimeout(function(){r._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Exception - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([t.name,t.message,t.stack],null,2))]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),process.on("SIGINT",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGTERM",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGQUIT",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),"DEBUG"===this.LOGGER&&console.log("Starting ResolveIO Server"),this._isWorkersEnabled?this._isWorkerInstance?(console.log("Running as a Worker instance"),this._methodManager=method_manager_1.MethodManager.create(null,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._cronManager=cron_manager_1.CronManager.create(),this.startWorkerInstance()):(console.log("Running as a Server instance"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this.listen()):(console.log("Running with Workers Disabled"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this.startServerInstance(),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this._cronManager=cron_manager_1.CronManager.create(),this.listen()),[2]}})})},ResolveIOMainServer.prototype.startServerInstance=function(){this._app=express(),this._app.use(bodyParser.json({limit:"50mb",reviver:common_1.dateReviver})),this._app.use(bodyParser.urlencoded({limit:"50mb",extended:!0,parameterLimit:1e6})),this._app.use(xmlParser()),this._portHTTP=process.env.PORT_HTTP||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_HTTP||8080,this._portWSS=process.env.PORT_WSS||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_WSS||8081,"DEBUG"===this.LOGGER&&console.log("Setup ports"),this.createServer(),"DEBUG"===this.LOGGER&&console.log("Create server"),this._app.use(function(e,r,t){r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST"),r.setHeader("Access-Control-Allow-Headers","X-Requested-With,content-type"),r.setHeader("Access-Control-Allow-Credentials","false"),t()}),"DEBUG"===this.LOGGER&&console.log("Setup cors"),(0,auth_1.setupAuthRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),(0,health_1.setupHealthRoutes)(this._app),"ResolveIO"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME&&!this.standardProgram||(0,home_1.setupHomeRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),"DEBUG"===this.LOGGER&&console.log("Setup express routes")},ResolveIOMainServer.prototype.startWorkerInstance=function(){var e=this,r=(console.log(new Date,"Worker instance started, connecting to main server via WebSocket..."),resolveio_server_app_1.ResolveIOServer.getServerConfig().SERVER_URL+"/websocket?workerToken="+resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN),n=new WebSocket(r),s=null,t=null;n.on("open",function(){console.log(new Date,"Connected to main server as worker",process.env.WORKER_INDEX,process.env.NODE_APP_INSTANCE),e.sendWorkerResponse(n,"ping"),t=setInterval(function(){s?(s=null,e.sendWorkerResponse(n,"ping")):n.close()},15e3)}),n.on("message",function(t){return __awaiter(e,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return"ping"!==(t="string"!=typeof t?t.toString():t)?[3,1]:(this.sendWorkerResponse(n,"pong"),[3,4]);case 1:return"pong"!==t?[3,2]:(s=new Date,[3,4]);case 2:r=void 0;try{r=JSON.parse(t,common_1.dateReviver)}catch(e){return console.error("Worker parse error",e),[2]}return"task"!==r.type?[3,4]:[4,this.handleIncomingTask(n,r)];case 3:e.sent(),e.label=4;case 4:return[2]}})})}),n.on("close",function(){console.log(new Date,"Disconnected from main server. Reconnecting in 5s..."),setTimeout(function(){return e.startWorkerInstance},5e3),t&&clearInterval(t)}),n.on("error",function(e){console.error(new Date,"Worker WS error:",e),n.close()})},ResolveIOMainServer.prototype.handleIncomingTask=function(u,_){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l=this;return __generator(this,function(e){switch(e.label){case 0:if(r=_.taskId,t=_.method,n=_.params,s=_.userContext,this._runningTasks.push(r),!r||!t)return console.log("Invalid task message received",_),[2];o=!1,i=setTimeout(function(){return __awaiter(l,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return o=!0,console.error(new Date,"Worker timed out on task:",r,"Method:",t),console.error(new Date,"Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2))),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:"Task timed out"}),[4,this._methodManager.callMethod("insertErrorLog","Timeout in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 1:return e.sent(),[2]}})})},12e4),e.label=1;case 1:return e.trys.push([1,3,,5]),a=Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:(null==s?void 0:s.id_user)||"",user:(null==s?void 0:s.user)||"",id_ws:(null==s?void 0:s.id_ws)||""}),[4,(c=this._methodManager.callMethod).call.apply(c,__spreadArray([a,t],__read(n),!1))];case 2:return c=e.sent(),o||(clearTimeout(i),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!1,result:c})),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 3:return a=e.sent(),o||(clearTimeout(i),console.error("Worker failed task:",r,"Method:",t,a),this.sendWorkerResponse(u,{type:"taskComplete",taskId:r,error:!0,message:a||"Unknown error"})),console.error(new Date,"Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2))),[4,this._methodManager.callMethod("insertErrorLog","Error in Method: ".concat(t," - ").concat(JSON.stringify(_,null,2)))];case 4:return e.sent(),this._runningTasks=this._runningTasks.filter(function(e){return e!==r}),[3,5];case 5:return[2]}})})},ResolveIOMainServer.prototype.sendWorkerResponse=function(e,r){if("string"!=typeof r&&(r=JSON.stringify(r)),e&&e.readyState===e.OPEN)try{e.send(r)}catch(e){console.error("Failed to send worker response:",e)}else e&&e.close()},ResolveIOMainServer.prototype.safeShutdown=function(){return __awaiter(this,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:if(this._safeShutdown||console.log(new Date,"Safe Shutdown Command Received"),this._monitorManagerFunction.getActiveMonitorFunctions().length||this._offlineUpdates.length||this._taskQueue.length||this._runningTasks.length)return[3,7];if(!resolveio_server_app_1.ResolveIOServer.getMongoConnection())return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,resolveio_server_app_1.ResolveIOServer.getMongoConnection().close(!1)];case 2:return e.sent(),console.log(new Date,"Safe Exit Complete, Process Exit"),process.exit(0),[3,4];case 3:return e.sent(),process.exit(1),[3,4];case 4:return[3,6];case 5:process.exit(0),e.label=6;case 6:return[3,8];case 7:this._safeShutdown||(this._safeShutdown=!0,setTimeout(function(){r._safeShutdown=!1},1e3),console.log(new Date,"Safe Exit In Progress",this._monitorManagerFunction.getActiveMonitorFunctions().length,this._offlineUpdates.length)),setImmediate(function(){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),e.label=8;case 8:return[2]}})})},ResolveIOMainServer.prototype.getIsWorkersEnabled=function(){return this._isWorkersEnabled},ResolveIOMainServer.prototype.getIsWorkerInstance=function(){return this._isWorkerInstance},ResolveIOMainServer.prototype.getWSList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_socket)}),r},ResolveIOMainServer.prototype.getWSUserList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_user)}),r},ResolveIOMainServer.prototype.getHTTPServer=function(){return this._serverHTTP},ResolveIOMainServer.prototype.getCronManager=function(){return this._cronManager},ResolveIOMainServer.prototype.getMethodManager=function(){return this._methodManager},ResolveIOMainServer.prototype.getSubscriptionManager=function(){return this._subscriptionManager},ResolveIOMainServer.prototype.getMonitorManager=function(){return this._monitorManager},ResolveIOMainServer.prototype.getRebootFlag=function(){return this._rebootFlag},ResolveIOMainServer.prototype.getWebSocketManager=function(){return this._websocketManager},ResolveIOMainServer.prototype.createServer=function(){var r=this;this._serverHTTP=(0,http_1.createServer)(this._app),this._serverHTTP.keepAliveTimeout=65e3,this._serverHTTP.headersTimeout=66e3,this._serverWSS=new WebSocket.Server({port:this._portWSS,verifyClient:this.publicProgram?null:function(s,o){var e;r._rebootFlag?o(!1,409,"Unable To Process"):("DEBUG"===r.LOGGER&&console.log("Verify Client",s,o),s.req.url&&s.req.url.includes("workerToken=")?(s.req.url.split("workerToken=")[1]||"")===resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN?o(!0):o(!1,401,"Unauthorized"):(e=s.req.headers["sec-websocket-protocol"].split(/,/),(s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().SEC_ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_SECONDARY_URL)&&(e=e[0])?jwt.verify(e,resolveio_server_app_1.ResolveIOServer.getServerConfig().JWT_SECRET,function(t,n){return __awaiter(r,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return t?(o(!1,401,"Unauthorized"),[3,5]):[3,1];case 1:s.req.id_user=n.id_user,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,user_collection_1.Users.findById(n.id_user)];case 3:return(r=e.sent())?(s.req.user=r.fullname,s.req.user_readonly=r.readonly||!1,s.req.doc_user=r,o(!0)):o(!1),[3,5];case 4:return e.sent(),o(!1),[3,5];case 5:return[2]}})})}):o(!1,401,"Unauthorized")))}})},ResolveIOMainServer.prototype.listen=function(){var e=this;this._serverHTTP.listen(this._portHTTP,function(){console.log("Running server on port %s",e._portHTTP)}),this._serverWSS.on("listening",function(){console.log("Running server on port %s",e._portWSS)}),this._serverWSS.on("connection",function(o,i){return __awaiter(e,void 0,void 0,function(){var r,t,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return i.url&&i.url.includes("workerToken=")?(r=(0,common_1.objectIdHexString)(),o.id_worker=r,this._workers.push({id:r,ws:o,activeTasks:0,maxConcurrency:2}),n=t=null,o.on("open",function(){s.sendWorkerResponse(o,"ping"),t=setInterval(function(){n?(n=null,s.sendWorkerResponse(o,"ping")):o.close()},15e3)}),console.log(new Date,"Worker connected:",r),o.on("message",function(e){"ping"===(e="string"!=typeof e?e.toString():e)?s.sendWorkerResponse(o,"pong"):"pong"===e?n=new Date:s.handleWorkerMessage(r,e)}),o.on("close",function(){console.log(new Date,"Worker disconnected:",r),s._workers=s._workers.filter(function(e){return e.id!==r}),t&&clearInterval(t)}),o.on("error",function(e){console.error("Error on WS Worker",e),o.close()}),[3,3]):[3,1];case 1:return o.id_socket=(0,common_1.objectIdHexString)(),o.id_user=i.id_user,o.user=i.user,o.user_readonly=i.user_readonly,o.doc_user=i.doc_user,this._websocketManager.addWebSocket(o),[4,this._subscriptionManager.createLoggedInUser(o.id_socket)];case 2:e.sent(),setTimeout(function(){o.pingTime=new Date,o.send("ping",function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(o)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})})},5e3),"DEBUG"===this.LOGGER&&console.log("Connection from user: "+i.user),o.isAlive=!0,o.retryCnt=0,o.on("message",function(n){return __awaiter(s,void 0,void 0,function(){var r,t;return __generator(this,function(e){switch(e.label){case 0:this._debugMsgRecv+=1,r=[],e.label=1;case 1:return e.trys.push([1,2,,4]),r=JSON.parse(n,common_1.dateReviver),[3,4];case 2:return t=e.sent(),console.log("Error - JSON.parse",n),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - JSON Parse Error - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n,t]))];case 3:return e.sent(),[2];case 4:return[4,this.processSocketMessage(o,r)];case 5:return e.sent(),[2]}})})}).on("end",function(){o.close()}).on("error",function(){o.close()}).on("close",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.unsubscribeWS(o)];case 1:return e.sent(),[2]}})})}),e.label=3;case 3:return[2]}})})}),setInterval(function(){return __awaiter(e,void 0,void 0,function(){var r,n,t,s,o,i,a,c=this;return __generator(this,function(e){switch(e.label){case 0:r=function(t){return __generator(this,function(e){switch(e.label){case 0:return t.pingTime&&2e4<=Date.now()-t.pingTime.getTime()?!1!==t.isAlive?[3,4]:(t.retryCnt++,3<=t.retryCnt?[4,n.unsubscribeWS(t)]:[3,2]):[3,5];case 1:return e.sent(),[3,3];case 2:t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=3;case 3:return[3,5];case 4:t.retryCnt=0,t.isAlive=!1,t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=5;case 5:return[2]}})},n=this,e.label=1;case 1:e.trys.push([1,6,7,8]),t=__values(this._serverWSS.clients),s=t.next(),e.label=2;case 2:return s.done?[3,5]:(o=s.value,[5,r(o)]);case 3:e.sent(),e.label=4;case 4:return s=t.next(),[3,2];case 5:return[3,8];case 6:return o=e.sent(),i={error:o},[3,8];case 7:try{s&&!s.done&&(a=t.return)&&a.call(t)}finally{if(i)throw i.error}return[7];case 8:return[2]}})})},2e4)},ResolveIOMainServer.prototype.processSocketMessage=function(i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o;return __generator(this,function(e){switch(e.label){case 0:if("string"==typeof a&&"ping"===a)return i&&i.readyState===i.OPEN&&i.send("pong"),[2];if("string"==typeof a&&"pong"===a)return i.isAlive=!0,i.pongTime=new Date,i.latency=moment.duration(moment(i.pongTime).diff(i.pingTime)).asMilliseconds(),this._subscriptionManager.loggedInLatency(i),[2];if(!Array.isArray(a[0]))return console.log("Invalid message format (expected array of arrays)",a),[2];e.label=1;case 1:e.trys.push([1,6,7,8]),r=__values(a),t=r.next(),e.label=2;case 2:return t.done?[3,5]:(n=t.value,[4,this.handleClientMessage(i,n)]);case 3:e.sent(),e.label=4;case 4:return t=r.next(),[3,2];case 5:return[3,8];case 6:return n=e.sent(),s={error:n},[3,8];case 7:try{t&&!t.done&&(o=r.return)&&o.call(r)}finally{if(s)throw s.error}return[7];case 8:return[2]}})})},ResolveIOMainServer.prototype.handleClientMessage=function(f,m){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l,u,_,g,h,d,v,p;return __generator(this,function(e){switch(e.label){case 0:return(r=m[0],t=m[1],n=m[2],s=m[3],this.publicProgram||!this._clientRoutes.some(function(e){return r.includes(e)})||f.doc_user.roles.groups.some(function(e){return e.views.some(function(e){return r.includes(e)||e.includes(r)})})||f.doc_user.roles.super_admin)?"subscription"!==s?[3,4]:(i=m[4],o=m[5],"sub"!==i?[3,2]:[4,this._subscriptionManager.subscribe(r,t,f,n,o,m.slice(6))]):[2];case 1:return e.sent(),[3,3];case 2:this._subscriptionManager.unsubscribe(r,t,f,n,o,m.slice(6)),e.label=3;case 3:return[3,22];case 4:if(this.publicProgram||"offline"!==s)return[3,16];i={messageId:n,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,i),this._offlineUpdates.push(f),a=m[4],c=0,e.label=5;case 5:if(!(c<a.length))return[3,15];if(l=a[c],l=l.data,l.shift(),l.shift(),p=l.shift(),l.shift(),u=l.shift(),p={messageId:p,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,p),"insertDocument"===u&&"driver-gps"===l[0])return[3,14];if("reportBuilderGetResults"!==u&&"reportBuilderGetDistinctValue"!==u&&"reportBuilderBuildTree"!==u&&"generatePDF"!==u&&"getWOOfflineData"!==u&&"countQuery"!==u&&"countWithQuery"!==u&&"countCollectionWithQuery"!==u&&"find"!==u&&"findOne"!==u&&"findWithOptions"!==u&&"getDrivers"!==u&&"processAirdropDistribution"!==u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,6];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([l]))<2e5?JSON.stringify([l],null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,8];case 6:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([l]))<2e5?JSON.stringify([l],null,2):"Too Big",method:u,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 7:e.sent(),e.label=8;case 8:if(!this._methodManager._methods[u])return[3,13];e.label=9;case 9:return e.trys.push([9,11,,12]),[4,(p=this._methodManager.callMethod).call.apply(p,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),u],__read(l),!1))];case 10:return e.sent(),[3,12];case 11:return d=e.sent(),console.log(new Date,"Offline Error",JSON.stringify(d,null,2)),[3,12];case 12:return"updateDocumentOffline"!==u&&"updateDocumentPropsOffline"!==u||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(l[0]),[3,14];case 13:console.log("Offline - Could not find method: "+u),e.label=14;case 14:return c++,[3,5];case 15:return this._offlineUpdates.splice(this._offlineUpdates.map(function(e){return e.id_socket}).indexOf(f.id_socket),1),[3,22];case 16:if(_=__spreadArray([],__read(m),!1),_.shift(),_.shift(),g=_.shift(),"method"!==_.shift())return[3,22];if(h=_.shift(),f.user_readonly)return[2];if("reportBuilderGetResults"!==h&&"reportBuilderGetDistinctValue"!==h&&"reportBuilderBuildTree"!==h&&"generatePDF"!==h&&"getWOOfflineData"!==h&&"countQuery"!==h&&"countWithQuery"!==h&&"countCollectionWithQuery"!==h&&"find"!==h&&"findOne"!==h&&"findWithOptions"!==h&&"getDrivers"!==h&&"processAirdropDistribution"!==h){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([_]))<2e5?JSON.stringify([_],null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r}})}return[3,19];case 17:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([_]))<2e5?JSON.stringify([_],null,2):"Too Big",method:h,id_user:f.id_user||"",user:f.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 18:e.sent(),e.label=19;case 19:return(d={messageId:g,hasError:!1,data:"ACK"},f&&f.readyState===f.OPEN&&this._websocketManager.send(f,d),v=this.findAvailableWorker(),this._isWorkersEnabled&&v&&"find"!==h&&"insertDocument"!==h&&"countWithQuery"!==h&&"findOne"!==h&&"updateDocumentProps"!==h&&"findWithOptions"!==h&&"updateDocument"!==h&&"insertErrorLog"!==h&&"removeDocument"!==h&&"supportCreateBillingUser"!==h&&"getSignedUrl"!==h&&"getSignedUrls"!==h&&"getSignedUrlWithId"!==h&&"incorrectUser"!==h&&"reloadWS"!==h&&"reconnectWS"!==h&&"disconnectWS"!==h)?(v="task-"+(0,common_1.objectIdHexString)(),this._inFlightRequests[v]={ws:f,messageId:g,method:h},this.queueTask(v,h,_,{id_user:f.id_user,user:f.user,id_ws:f.id_socket}),[3,22]):[3,20];case 20:return[4,this.callMethodLocally(f,g,h,_)];case 21:e.sent(),e.label=22;case 22:return[2]}})})},ResolveIOMainServer.prototype.callMethodLocally=function(s,o,i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:r={messageId:o,hasError:!1,data:null},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,(n=this._methodManager.callMethod).call.apply(n,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:s.id_user,user:s.user,id_ws:s.id_socket}),i],__read(a),!1))];case 2:return n=e.sent(),r.data=n,[3,4];case 3:return t=e.sent(),r.hasError=!0,r.data=t||"Unknown error",[3,4];case 4:return s&&s.readyState===s.OPEN&&this._websocketManager.send(s,r),[2]}})})},ResolveIOMainServer.prototype.queueTask=function(e,r,t,n){this._taskQueue.push({taskId:e,method:r,params:t,userContext:n}),this.dispatchQueue()},ResolveIOMainServer.prototype.dispatchQueue=function(){if(this._taskQueue.length)for(var e=0;e<9999;e++){var r=this._taskQueue[0];if(!r)break;var t=this.findAvailableWorker();if(!t)break;this._taskQueue.shift(),this.assignTaskToWorker(t,r)}},ResolveIOMainServer.prototype.findAvailableWorker=function(){var e=this._workers.filter(function(e){return e.activeTasks<e.maxConcurrency});return e.length?(e.sort(function(e,r){return e.activeTasks-r.activeTasks}),e[0]):null},ResolveIOMainServer.prototype.assignTaskToWorker=function(r,t){r.activeTasks++;var e={type:"task",taskId:t.taskId,method:t.method,params:t.params,userContext:t.userContext};try{r.ws.send(JSON.stringify(e))}catch(e){console.error("Failed to send task to worker:",e),r.activeTasks=Math.max(0,r.activeTasks-1),this._taskQueue.unshift(t)}},ResolveIOMainServer.prototype.handleWorkerMessage=function(r,t){var e,n,s,o;try{o=JSON.parse(t,common_1.dateReviver)}catch(e){return void console.error("Failed to parse worker message:",t)}"taskComplete"===o.type&&((t=this._workers.find(function(e){return e.id===r}))?(t.activeTasks=Math.max(0,t.activeTasks-1),t=o.taskId,e=o.error,n=o.message,o=o.result,(s=this._inFlightRequests[t])?(delete this._inFlightRequests[t],o={messageId:s.messageId,hasError:!1,data:o},e&&(o.hasError=!0,o.data=n),s.ws&&s.ws.readyState===s.ws.OPEN&&this._websocketManager.send(s.ws,o)):console.error("No in-flight request found for task:",t),this.dispatchQueue()):console.error("Unknown worker for taskComplete:",r))},ResolveIOMainServer.prototype.unsubscribeWS=function(r){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._subscriptionManager&&this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Unsub WS",r.user,r.id_socket),[4,this._subscriptionManager.unsubscribeAll(r)];case 1:return e.sent(),r.removeAllListeners(),r=null,[2]}})})},ResolveIOMainServer.prototype.getApp=function(){return this._app},ResolveIOMainServer.prototype.getServerConfig=function(){return resolveio_server_app_1.ResolveIOServer.getServerConfig()},ResolveIOMainServer}();exports.ResolveIOMainServer=ResolveIOMainServer;
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,n,s,o){return new(s=s||Promise)(function(t,r){function fulfilled(e){try{step(o.next(e))}catch(e){r(e)}}function rejected(e){try{step(o.throw(e))}catch(e){r(e)}}function step(e){var r;e.done?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,s){var o,i,a,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},l={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function verb(t){return function(e){var r=[t,e];if(o)throw new TypeError("Generator is already executing.");for(;c=l&&r[l=0]?0:c;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,i=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){c=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))c.label=r[1];else if(6===r[0]&&c.label<a[1])c.label=a[1],a=r;else{if(!(a&&c.label<a[2])){a[2]&&c.ops.pop(),c.trys.pop();continue}c.label=a[2],c.ops.push(r)}}r=s.call(n,c)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},__values=this&&this.__values||function(e){var r="function"==typeof Symbol&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&n>=e.length?void 0:e)&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=this&&this.__read||function(e,r){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var n,s,o=t.call(e),i=[];try{for(;(void 0===r||0<r--)&&!(n=o.next()).done;)i.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(t=o.return)&&t.call(o)}finally{if(s)throw s.error}}return i},__spreadArray=this&&this.__spreadArray||function(e,r,t){if(t||2===arguments.length)for(var n,s=0,o=r.length;s<o;s++)!n&&s in r||((n=n||Array.prototype.slice.call(r,0,s))[s]=r[s]);return e.concat(n||Array.prototype.slice.call(r))},bodyParser=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.ResolveIOMainServer=void 0,require("body-parser")),express=require("express"),xmlParser=require("express-xml-bodyparser"),http_1=require("http"),jwt=require("jsonwebtoken"),moment=require("moment-timezone"),WebSocket=require("ws"),log_collection_1=require("./collections/log.collection"),user_collection_1=require("./collections/user.collection"),cron_manager_1=require("./managers/cron.manager"),method_manager_1=require("./managers/method.manager"),monitor_manager_1=require("./managers/monitor.manager"),subscription_manager_1=require("./managers/subscription.manager"),common_1=require("./util/common"),mongodb_1=require("mongodb"),auth_1=require("./http/auth"),health_1=require("./http/health"),home_1=require("./http/home"),websocket_manager_1=require("./managers/websocket.manager"),worker_dispatcher_manager_1=require("./managers/worker-dispatcher.manager"),worker_server_manager_1=require("./managers/worker-server.manager"),resolveio_server_app_1=require("./resolveio-server-app"),ResolveIOMainServer=function(){function ResolveIOMainServer(){this._offlineUpdates=[],this.sesMail=!1,this.standardProgram=!1,this.publicProgram=!1,this._rebootFlag=!1,this.LOGGER="ERROR",this._clientRoutes=[],this._lastErrorMsg=null,this._debugMsgRecv=0,this._debugMsgQueue=0,this._isWorkersEnabled=!1,this._isWorkerInstance=!1,this._safeShutdown=!1}return ResolveIOMainServer.create=function(){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,(r=new ResolveIOMainServer).initialize()];case 1:return e.sent(),[2,r]}})})},ResolveIOMainServer.prototype.initialize=function(){return __awaiter(this,void 0,void 0,function(){var r,o,i=this;return __generator(this,function(e){switch(e.label){case 0:return this._serverStartTime=new Date,this._lastErrorMsg=null,r=this,[4,monitor_manager_1.MonitorManager.create()];case 1:return r._monitorManager=e.sent(),this._monitorManagerFunction=new monitor_manager_1.MonitorManagerFunction,this._isWorkersEnabled="true"===process.env.IS_WORKERS_ENABLED,this._isWorkerInstance="true"===process.env.IS_WORKER_INSTANCE,setInterval(function(){i._subscriptionManager&&i._subscriptionManager.getEnableDebug()&&(console.log(new Date,"Server App","Msg Recv Hits",i._debugMsgRecv),console.log(new Date,"Server App","Msg Queue Hits",i._debugMsgQueue)),i._debugMsgQueue=0,i._debugMsgRecv=0},6e4),o=!1,setTimeout(function(){o=!0},5e3),process.on("unhandledRejection",function(n,s){return __awaiter(i,void 0,void 0,function(){var r,t=this;return __generator(this,function(e){switch(e.label){case 0:return n&&"MongoError"===n.name&&48===n.code?[2]:n&&"MongoServerError"===n.name&&!o?[2]:(console.error(new Date,"Unhandled Rejection at Promise",[n,s]),r=moment().diff(this._serverStartTime,"seconds"),n&&("MongoNetworkTimeoutError"===n.name||n instanceof mongodb_1.MongoNetworkTimeoutError)?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - MongoNetworkTimeoutError - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify({name:n.name,message:n.message,stack:n.stack},null,2))]):[3,2]:[3,3]);case 1:e.sent(),process.exit(1),e.label=2;case 2:return[3,11];case 3:return n&&"MongoError"===n.name&&"not master"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,5]:[3,6];case 4:e.sent(),e.label=5;case 5:return process.exit(1),[3,11];case 6:return n&&"MongoError"===n.name&&"not master and slaveOk=false"===n.message?60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - Quitting NodeJS - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,8]:[3,9];case 7:e.sent(),e.label=8;case 8:return process.exit(1),[3,11];case 9:return n?"StatusError"!==n.name&&""!==n.message&&60<r&&!this._lastErrorMsg?(this._lastErrorMsg=new Date,setTimeout(function(){t._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Rejection - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n.name,n.message,n.stack],null,2))]):[3,11]:[3,11];case 10:e.sent(),e.label=11;case 11:return[2]}})})}),process.on("uncaughtException",function(t){return __awaiter(i,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:return(console.error(t,"Uncaught Exception thrown"),60<moment().diff(this._serverStartTime,"seconds")&&!this._lastErrorMsg)?(this._lastErrorMsg=new Date,setTimeout(function(){r._lastErrorMsg=null},6e4),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - Unhandled Exception - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([t.name,t.message,t.stack],null,2))]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),process.on("SIGINT",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGTERM",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),process.on("SIGQUIT",function(){return __awaiter(i,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._rebootFlag=!0,this._serverHTTP&&this._serverHTTP.close(),[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),"DEBUG"===this.LOGGER&&console.log("Starting ResolveIO Server"),this._isWorkersEnabled?this._isWorkerInstance?(console.log("Running as a Worker instance"),this._methodManager=method_manager_1.MethodManager.create(null,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._workerServerManager=worker_server_manager_1.WorkerServerManager.create(this._methodManager,this.getServerConfig()),this._cronManager=cron_manager_1.CronManager.create()):(console.log("Running as a Server instance"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._workerDispatcherManager=worker_dispatcher_manager_1.WorkerDispatcherManager.create(this._websocketManager,this._methodManager),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this.startServerInstance(),this.listen()):(console.log("Running with Workers Disabled"),this._websocketManager=websocket_manager_1.WebSocketManager.create(this),this._methodManager=method_manager_1.MethodManager.create(this._websocketManager,this._monitorManagerFunction,this._isWorkersEnabled,this._isWorkerInstance),this._subscriptionManager=subscription_manager_1.SubscriptionManager.create(this._serverWSS,resolveio_server_app_1.ResolveIOServer.getServerConfig(),this._monitorManagerFunction),this._cronManager=cron_manager_1.CronManager.create(),this.startServerInstance(),this.listen()),[2]}})})},ResolveIOMainServer.prototype.startServerInstance=function(){this._app=express(),this._app.use(bodyParser.json({limit:"50mb",reviver:common_1.dateReviver})),this._app.use(bodyParser.urlencoded({limit:"50mb",extended:!0,parameterLimit:1e6})),this._app.use(xmlParser()),this._portHTTP=process.env.PORT_HTTP||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_HTTP||8080,this._portWSS=process.env.PORT_WSS||resolveio_server_app_1.ResolveIOServer.getServerConfig().PORT_WSS||8081,"DEBUG"===this.LOGGER&&console.log("Setup ports"),this.createServer(),"DEBUG"===this.LOGGER&&console.log("Create server"),this._app.use(function(e,r,t){r.setHeader("Access-Control-Allow-Origin","*"),r.setHeader("Access-Control-Allow-Methods","GET, POST"),r.setHeader("Access-Control-Allow-Headers","X-Requested-With,content-type"),r.setHeader("Access-Control-Allow-Credentials","false"),t()}),"DEBUG"===this.LOGGER&&console.log("Setup cors"),(0,auth_1.setupAuthRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),(0,health_1.setupHealthRoutes)(this._app),"ResolveIO"!==resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME&&!this.standardProgram||(0,home_1.setupHomeRoutes)(this,this._app,resolveio_server_app_1.ResolveIOServer.getServerConfig()),"DEBUG"===this.LOGGER&&console.log("Setup express routes")},ResolveIOMainServer.prototype.safeShutdown=function(){return __awaiter(this,void 0,void 0,function(){var r=this;return __generator(this,function(e){switch(e.label){case 0:if(this._safeShutdown||console.log(new Date,"Safe Shutdown Command Received"),this._monitorManagerFunction.getActiveMonitorFunctions().length||this._offlineUpdates.length||!this._workerDispatcherManager.isSafeShutdown())return[3,7];if(!resolveio_server_app_1.ResolveIOServer.getMongoConnection())return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,resolveio_server_app_1.ResolveIOServer.getMongoConnection().close(!1)];case 2:return e.sent(),console.log(new Date,"Safe Exit Complete, Process Exit"),process.exit(0),[3,4];case 3:return e.sent(),process.exit(1),[3,4];case 4:return[3,6];case 5:process.exit(0),e.label=6;case 6:return[3,8];case 7:this._safeShutdown||(this._safeShutdown=!0,setTimeout(function(){r._safeShutdown=!1},1e3),console.log(new Date,"Safe Exit In Progress",this._monitorManagerFunction.getActiveMonitorFunctions().length,this._offlineUpdates.length)),setImmediate(function(){return __awaiter(r,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.safeShutdown()];case 1:return e.sent(),[2]}})})}),e.label=8;case 8:return[2]}})})},ResolveIOMainServer.prototype.getIsWorkersEnabled=function(){return this._isWorkersEnabled},ResolveIOMainServer.prototype.getIsWorkerInstance=function(){return this._isWorkerInstance},ResolveIOMainServer.prototype.getWSList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_socket)}),r},ResolveIOMainServer.prototype.getWSUserList=function(){var r=[];return this._serverWSS.clients.forEach(function(e){r.push(e.id_user)}),r},ResolveIOMainServer.prototype.getHTTPServer=function(){return this._serverHTTP},ResolveIOMainServer.prototype.getCronManager=function(){return this._cronManager},ResolveIOMainServer.prototype.getMethodManager=function(){return this._methodManager},ResolveIOMainServer.prototype.getSubscriptionManager=function(){return this._subscriptionManager},ResolveIOMainServer.prototype.getMonitorManager=function(){return this._monitorManager},ResolveIOMainServer.prototype.getRebootFlag=function(){return this._rebootFlag},ResolveIOMainServer.prototype.getWebSocketManager=function(){return this._websocketManager},ResolveIOMainServer.prototype.createServer=function(){var r=this;this._serverHTTP=(0,http_1.createServer)(this._app),this._serverHTTP.keepAliveTimeout=65e3,this._serverHTTP.headersTimeout=66e3,this._serverWSS=new WebSocket.Server({port:this._portWSS,verifyClient:this.publicProgram?null:function(s,o){var e;r._rebootFlag?o(!1,409,"Unable To Process"):("DEBUG"===r.LOGGER&&console.log("Verify Client",s,o),s.req.url&&s.req.url.includes("workerToken=")?(s.req.url.split("workerToken=")[1]||"")===resolveio_server_app_1.ResolveIOServer.getServerConfig().WORKER_TOKEN?o(!0):o(!1,401,"Unauthorized"):(e=s.req.headers["sec-websocket-protocol"].split(/,/),(s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().SEC_ROOT_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_URL||s.origin===resolveio_server_app_1.ResolveIOServer.getServerConfig().RESOLVEIO_SECONDARY_URL)&&(e=e[0])?jwt.verify(e,resolveio_server_app_1.ResolveIOServer.getServerConfig().JWT_SECRET,function(t,n){return __awaiter(r,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return t?(o(!1,401,"Unauthorized"),[3,5]):[3,1];case 1:s.req.id_user=n.id_user,e.label=2;case 2:return e.trys.push([2,4,,5]),[4,user_collection_1.Users.findById(n.id_user)];case 3:return(r=e.sent())?(s.req.user=r.fullname,s.req.user_readonly=r.readonly||!1,s.req.doc_user=r,o(!0)):o(!1),[3,5];case 4:return e.sent(),o(!1),[3,5];case 5:return[2]}})})}):o(!1,401,"Unauthorized")))}})},ResolveIOMainServer.prototype.listen=function(){var e=this;this._serverHTTP.listen(this._portHTTP,function(){console.log("Running server on port %s",e._portHTTP)}),this._serverWSS.on("listening",function(){console.log("Running server on port %s",e._portWSS)}),this._serverWSS.on("connection",function(o,i){return __awaiter(e,void 0,void 0,function(){var r,t,n,s=this;return __generator(this,function(e){switch(e.label){case 0:return i.url&&i.url.includes("workerToken=")?(r=(0,common_1.objectIdHexString)(),o.id_worker=r,console.log(new Date,process.env.NODE_APP_INSTANCE,"Worker Connected",o.url),this._workerDispatcherManager.addWorker(o),n=t=null,o.on("open",function(){s._workerDispatcherManager.sendWorkerPayload(o,"ping"),t=setInterval(function(){n?(n=null,s._workerDispatcherManager.sendWorkerPayload(o,"ping")):o.close()},3e4)}),console.log(new Date,"Worker connected:",r),o.on("message",function(e){"ping"===(e="string"!=typeof e?e.toString():e)?s._workerDispatcherManager.sendWorkerPayload(o,"pong"):"pong"===e?n=new Date:s._workerDispatcherManager.handleWorkerMessage(o.id_worker,e)}),o.on("close",function(){console.log(new Date,"Worker disconnected:",r),t&&clearInterval(t)}),o.on("error",function(e){console.error("Error on WS Worker",e),o.close()}),[3,3]):[3,1];case 1:return o.id_socket=(0,common_1.objectIdHexString)(),o.id_user=i.id_user,o.user=i.user,o.user_readonly=i.user_readonly,o.doc_user=i.doc_user,this._websocketManager.addWebSocket(o),[4,this._subscriptionManager.createLoggedInUser(o.id_socket)];case 2:e.sent(),setTimeout(function(){o.pingTime=new Date,o.send("ping",function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(o)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})})},5e3),"DEBUG"===this.LOGGER&&console.log("Connection from user: "+i.user),o.isAlive=!0,o.retryCnt=0,o.on("message",function(n){return __awaiter(s,void 0,void 0,function(){var r,t;return __generator(this,function(e){switch(e.label){case 0:this._debugMsgRecv+=1,r=[],e.label=1;case 1:return e.trys.push([1,2,,4]),r=JSON.parse(n,common_1.dateReviver),[3,4];case 2:return t=e.sent(),console.log("Error - JSON.parse",n),[4,this._methodManager.sendEmail("dev@resolveio.com","SERVER - JSON Parse Error - "+resolveio_server_app_1.ResolveIOServer.getServerConfig().CLIENT_NAME,JSON.stringify([n,t]))];case 3:return e.sent(),[2];case 4:return[4,this.processSocketMessage(o,r)];case 5:return e.sent(),[2]}})})}).on("end",function(){o.close()}).on("error",function(){o.close()}).on("close",function(){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return[4,this.unsubscribeWS(o)];case 1:return e.sent(),[2]}})})}),e.label=3;case 3:return[2]}})})}),setInterval(function(){return __awaiter(e,void 0,void 0,function(){var r,n,t,s,o,i,a,c=this;return __generator(this,function(e){switch(e.label){case 0:r=function(t){return __generator(this,function(e){switch(e.label){case 0:return t.pingTime&&2e4<=Date.now()-t.pingTime.getTime()?!1!==t.isAlive?[3,4]:(t.retryCnt++,3<=t.retryCnt?[4,n.unsubscribeWS(t)]:[3,2]):[3,5];case 1:return e.sent(),[3,3];case 2:t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=3;case 3:return[3,5];case 4:t.retryCnt=0,t.isAlive=!1,t.pingTime=new Date,t.send("ping",function(r){return __awaiter(c,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?(this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Error WS Ping"),[4,this.unsubscribeWS(t)]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2]}})})}),e.label=5;case 5:return[2]}})},n=this,e.label=1;case 1:e.trys.push([1,6,7,8]),t=__values(this._serverWSS.clients),s=t.next(),e.label=2;case 2:return s.done?[3,5]:(o=s.value,[5,r(o)]);case 3:e.sent(),e.label=4;case 4:return s=t.next(),[3,2];case 5:return[3,8];case 6:return o=e.sent(),i={error:o},[3,8];case 7:try{s&&!s.done&&(a=t.return)&&a.call(t)}finally{if(i)throw i.error}return[7];case 8:return[2]}})})},2e4)},ResolveIOMainServer.prototype.processSocketMessage=function(i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o;return __generator(this,function(e){switch(e.label){case 0:if("string"==typeof a&&"ping"===a)return i&&i.readyState===i.OPEN&&i.send("pong"),[2];if("string"==typeof a&&"pong"===a)return i.isAlive=!0,i.pongTime=new Date,i.latency=moment.duration(moment(i.pongTime).diff(i.pingTime)).asMilliseconds(),this._subscriptionManager.loggedInLatency(i),[2];if(!Array.isArray(a[0]))return console.log("Invalid message format (expected array of arrays)",a),[2];e.label=1;case 1:e.trys.push([1,6,7,8]),r=__values(a),t=r.next(),e.label=2;case 2:return t.done?[3,5]:(n=t.value,[4,this.handleClientMessage(i,n)]);case 3:e.sent(),e.label=4;case 4:return t=r.next(),[3,2];case 5:return[3,8];case 6:return n=e.sent(),s={error:n},[3,8];case 7:try{t&&!t.done&&(o=r.return)&&o.call(r)}finally{if(s)throw s.error}return[7];case 8:return[2]}})})},ResolveIOMainServer.prototype.handleClientMessage=function(p,f){return __awaiter(this,void 0,void 0,function(){var r,t,n,s,o,i,a,c,l,u,_,g,h,v,d;return __generator(this,function(e){switch(e.label){case 0:return(r=f[0],t=f[1],n=f[2],s=f[3],this.publicProgram||!this._clientRoutes.some(function(e){return r.includes(e)})||p.doc_user.roles.groups.some(function(e){return e.views.some(function(e){return r.includes(e)||e.includes(r)})})||p.doc_user.roles.super_admin)?"subscription"!==s?[3,4]:(i=f[4],o=f[5],"sub"!==i?[3,2]:[4,this._subscriptionManager.subscribe(r,t,p,n,o,f.slice(6))]):[2];case 1:return e.sent(),[3,3];case 2:this._subscriptionManager.unsubscribe(r,t,p,n,o,f.slice(6)),e.label=3;case 3:return[3,22];case 4:if(this.publicProgram||"offline"!==s)return[3,16];i={messageId:n,hasError:!1,data:"ACK"},p&&p.readyState===p.OPEN&&this._websocketManager.send(p,i),this._offlineUpdates.push(p),a=f[4],c=0,e.label=5;case 5:if(!(c<a.length))return[3,15];if(l=a[c],l=l.data,l.shift(),l.shift(),d=l.shift(),l.shift(),u=l.shift(),d={messageId:d,hasError:!1,data:"ACK"},p&&p.readyState===p.OPEN&&this._websocketManager.send(p,d),"insertDocument"===u&&"driver-gps"===l[0])return[3,14];if("reportBuilderGetResults"!==u&&"reportBuilderGetDistinctValue"!==u&&"reportBuilderBuildTree"!==u&&"generatePDF"!==u&&"getWOOfflineData"!==u&&"countQuery"!==u&&"countWithQuery"!==u&&"countCollectionWithQuery"!==u&&"find"!==u&&"findOne"!==u&&"findWithOptions"!==u&&"getDrivers"!==u&&"processAirdropDistribution"!==u){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,6];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([l]))<2e5?JSON.stringify([l],null,2):"Too Big",method:u,id_user:p.id_user||"",user:p.user||"",messageId:n,route:r}})}return[3,8];case 6:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([l]))<2e5?JSON.stringify([l],null,2):"Too Big",method:u,id_user:p.id_user||"",user:p.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 7:e.sent(),e.label=8;case 8:if(!this._methodManager._methods[u])return[3,13];e.label=9;case 9:return e.trys.push([9,11,,12]),[4,(d=this._methodManager.callMethod).call.apply(d,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:p.id_user,user:p.user,id_ws:p.id_socket}),u],__read(l),!1))];case 10:return e.sent(),[3,12];case 11:return v=e.sent(),console.log(new Date,"Offline Error",JSON.stringify(v,null,2)),[3,12];case 12:return"updateDocumentOffline"!==u&&"updateDocumentPropsOffline"!==u||resolveio_server_app_1.ResolveIOServer.getMongoManager().invalidateQueryCache(l[0]),[3,14];case 13:console.log("Offline - Could not find method: "+u),e.label=14;case 14:return c++,[3,5];case 15:return this._offlineUpdates.splice(this._offlineUpdates.map(function(e){return e.id_socket}).indexOf(p.id_socket),1),[3,22];case 16:if(_=__spreadArray([],__read(f),!1),_.shift(),_.shift(),g=_.shift(),"method"!==_.shift())return[3,22];if(h=_.shift(),p.user_readonly)return[2];if("reportBuilderGetResults"!==h&&"reportBuilderGetDistinctValue"!==h&&"reportBuilderBuildTree"!==h&&"generatePDF"!==h&&"getWOOfflineData"!==h&&"countQuery"!==h&&"countWithQuery"!==h&&"countCollectionWithQuery"!==h&&"find"!==h&&"findOne"!==h&&"findWithOptions"!==h&&"getDrivers"!==h&&"processAirdropDistribution"!==h){if("https://resolveio.com"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL||"http://localhost:4200"===resolveio_server_app_1.ResolveIOServer.getServerConfig().ROOT_URL)return[3,17];resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({type:"log",data:{_id:(0,common_1.objectIdHexString)(),createdAt:new Date,type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([_]))<2e5?JSON.stringify([_],null,2):"Too Big",method:h,id_user:p.id_user||"",user:p.user||"",messageId:n,route:r}})}return[3,19];case 17:return[4,log_collection_1.Logs.insertOne({_id:(0,common_1.objectIdHexString)(),type:"client-request",collection:"",id_document:"",payload:(0,common_1.getBinarySize)(JSON.stringify([_]))<2e5?JSON.stringify([_],null,2):"Too Big",method:h,id_user:p.id_user||"",user:p.user||"",messageId:n,route:r,client:"ResolveIO",instance:"backend.resolveio.com",instance_index:process.env.NODE_APP_INSTANCE||""})];case 18:e.sent(),e.label=19;case 19:return(v={messageId:g,hasError:!1,data:"ACK"},p&&p.readyState===p.OPEN&&this._websocketManager.send(p,v),this._isWorkersEnabled&&"find"!==h&&"insertDocument"!==h&&"countWithQuery"!==h&&"findOne"!==h&&"updateDocumentProps"!==h&&"findWithOptions"!==h&&"updateDocument"!==h&&"insertErrorLog"!==h&&"removeDocument"!==h&&"supportCreateBillingUser"!==h&&"getSignedUrl"!==h&&"getSignedUrls"!==h&&"getSignedUrlWithId"!==h&&"incorrectUser"!==h&&"reloadWS"!==h&&"reconnectWS"!==h&&"disconnectWS"!==h)?(this._workerDispatcherManager.addClientTask(g,h,_,{id_user:p.id_user,user:p.user,id_ws:p.id_socket}),[3,22]):[3,20];case 20:return[4,this.callMethodLocally(p,g,h,_)];case 21:e.sent(),e.label=22;case 22:return[2]}})})},ResolveIOMainServer.prototype.callMethodLocally=function(s,o,i,a){return __awaiter(this,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:r={messageId:o,hasError:!1,data:null},e.label=1;case 1:return e.trys.push([1,3,,4]),[4,(n=this._methodManager.callMethod).call.apply(n,__spreadArray([Object.assign({},this._methodManager,method_manager_1.MethodManager.prototype,{id_user:s.id_user,user:s.user,id_ws:s.id_socket}),i],__read(a),!1))];case 2:return n=e.sent(),r.data=n,[3,4];case 3:return t=e.sent(),r.hasError=!0,r.data=t||"Unknown error",[3,4];case 4:return s&&s.readyState===s.OPEN&&this._websocketManager.send(s,r),[2]}})})},ResolveIOMainServer.prototype.unsubscribeWS=function(r){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return this._subscriptionManager&&this._subscriptionManager.getEnableDebug()&&console.log(new Date,"Server App","Unsub WS",r.user,r.id_socket),[4,this._subscriptionManager.unsubscribeAll(r)];case 1:return e.sent(),r.removeAllListeners(),r=null,[2]}})})},ResolveIOMainServer.prototype.getApp=function(){return this._app},ResolveIOMainServer.prototype.getServerConfig=function(){return resolveio_server_app_1.ResolveIOServer.getServerConfig()},ResolveIOMainServer.prototype.getWorkerDispatcherManager=function(){return this._workerDispatcherManager},ResolveIOMainServer.prototype.getWorkerServerManager=function(){return this._workerServerManager},ResolveIOMainServer}();exports.ResolveIOMainServer=ResolveIOMainServer;
2
2
  //# sourceMappingURL=server-app.js.map