blixify-server 0.1.11 → 0.1.12
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.
- package/dist/apis/fbWrapper.d.ts.map +1 -1
- package/dist/apis/fbWrapper.js +1 -1
- package/dist/apis/mongoWrapper.d.ts.map +1 -1
- package/dist/apis/mongoWrapper.js +1 -1
- package/dist/apis/uploadWrapper.d.ts +1 -0
- package/dist/apis/uploadWrapper.d.ts.map +1 -1
- package/dist/apis/uploadWrapper.js +1 -1
- package/dist/model/QueryModel.d.ts +1 -1
- package/dist/model/QueryModel.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fbWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/fbWrapper.ts"],"names":[],"mappings":"AAOA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU;IAUjB,UAAU,QAAe,GAAG,OAAO,GAAG,mBA8BpC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA6BjC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBA+DpC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAyCpC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"fbWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/fbWrapper.ts"],"names":[],"mappings":"AAOA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU;IAUjB,UAAU,QAAe,GAAG,OAAO,GAAG,mBA8BpC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA6BjC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBA+DpC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAyCpC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,mBAsHlC;IAEF,IAAI,YAuCF;CACH"}
|
package/dist/apis/fbWrapper.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,a,n,d){return new(n=n||Promise)(function(i,t){function s(e){try{r(d.next(e))}catch(e){t(e)}}function o(e){try{r(d.throw(e))}catch(e){t(e)}}function r(e){var t;e.done?i(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(s,o)}r((d=d.apply(e,a||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirebaseWrapper=void 0;const moment_1=__importDefault(require("moment")),QueryModel_1=require("../model/QueryModel");class FirebaseWrapper{constructor(e,t,i,s,o,r){this.fbAdmin="",this.collection="",this.isProd=!1,this.config={baseConfig:[],opsConfig:{read:[],create:[],update:[],delete:[]}},this.modelChecker=e=>!1,this.initCreate=(i,s)=>__awaiter(this,void 0,void 0,function*(){try{var e,t;this.modelChecker(i.body.data)?(e=(0,QueryModel_1.checkBaseConfig)(this.config,i),t=(0,QueryModel_1.checkOpsConfig)(this.config,"create",i,i.body.data),e&&t?(i.body.data.baseUpdatedAt=(0,moment_1.default)().toDate(),yield this.fbAdmin.firestore().collection(this.collection).doc(i.body.data.id).set(i.body.data),s.send({success:!0})):s.status(400).json({err:"Invalid Security Configuration"})):s.status(400).json({err:"Invalid Model Structure"})}catch(e){s.status(400).json({err:e})}}),this.initGet=(r,a)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o=r.body.id;o?(e=yield this.fbAdmin.firestore().collection(this.collection).doc(o).get()).exists&&(t=e.data(),i=(0,QueryModel_1.checkBaseConfig)(this.config,r),s=(0,QueryModel_1.checkOpsConfig)(this.config,"read",r,t),i)&&s?a.send({data:t}):a.status(400).json({err:"Invalid Security Configuration"}):a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.initUpdate=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o,r,a=this.modelChecker(d.body.data)&&d.body.id,n=e=>(delete e.id,e.baseUpdatedAt=(0,moment_1.default)().toDate(),e);a?(e=(0,QueryModel_1.checkBaseConfig)(this.config,d),t=(0,QueryModel_1.checkOpsConfig)(this.config,"update",d,d.body.data),e&&t?d.body.sensitive?(i=yield this.fbAdmin.firestore().collection(this.collection).doc(a).get()).exists?(s=i.data(),(0,moment_1.default)(d.body.data.baseUpdatedAt).isAfter((0,moment_1.default)(1e3*s.baseUpdatedAt.seconds))?(o=n(d.body.data),yield this.fbAdmin.firestore().collection(this.collection).doc(a).update(Object.assign({},o)),c.send({success:!0})):c.status(400).json({err:"Refresh Sensitive Model"})):c.status(400).json({err:"Invalid Security Configuration"}):(r=n(d.body.data),yield this.fbAdmin.firestore().collection(this.collection).doc(a).update(Object.assign({},r)),c.send({success:!0})):c.status(400).json({err:"Invalid Security Configuration"})):c.status(400).json({err:"Invalid Model Structure"})}catch(e){c.status(400).json({err:e})}}),this.initDelete=(r,a)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o=r.body.id;o?(e=yield this.fbAdmin.firestore().collection(this.collection).doc(o).get()).exists&&(t=e.data(),i=(0,QueryModel_1.checkBaseConfig)(this.config,r),s=(0,QueryModel_1.checkOpsConfig)(this.config,"delete",r,t),i)&&s?(yield this.fbAdmin.firestore().collection(this.collection).doc(o).delete(),a.send({success:!0})):a.status(400).json({err:"Invalid Security Configuration"}):a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.initList=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var e=(0,QueryModel_1.checkBaseConfig)(this.config,d);if(e){let o=this.fbAdmin.firestore().collection(this.collection),r="";var t=d.body.query;if(t&&0<t.length&&t.map(e=>{var t,i=null!=(t=e.queryId)?t:"",s=e.value;switch(e.type){case"search":e.searchIds&&0<e.searchIds.length&&(r=e.searchIds[0],o=o.orderBy(e.searchIds[0]).startAt(s).endAt(s+""));break;case"=":o=o.where(i,"==",s);break;case">":o=o.where(i,">",s);break;case"<":o=o.where(i,"<",s);break;case"><":Array.isArray(s)&&2<=s.length&&(o=o.where(i,">=",s[0]).where(i,"<=",s[1]));break;case"in":o=o.where(i,"in",s)}}),d.body.limit){if(o=o.limit(d.body.limit),d.body.sort){var i=d.body.sort;if(r&&i.sortId!==r)return void c.status(400).json({err:"Invalid Search Sort Configuration"});r||(o=o.orderBy(i.sortId,"asc"===i.type?"asc":"desc"))}var s,a=yield(o=d.body.cursor?o.startAfter(d.body.cursor):o).get();let t=!0;const n=[];if(a&&a.forEach(e=>{e=e.data();n.push(e),(0,QueryModel_1.checkOpsConfig)(this.config,"read",d,e)||(t=!1)}),e&&t){let t="";if(n.length===d.body.limit){let e="id";d.body.sort&&(s=d.body.sort,e=s.sortId),t=n[d.body.limit-1][e]}c.send({data:n,count:t})}else c.status(400).json({err:"Invalid Security Configuration"})}else c.status(400).json({err:"Invalid Limit Configuration"})}else c.status(400).json({err:"Invalid Security Configuration"})}catch(e){c.status(400).json({err:e})}}),this.init=()=>{var e=this.lib.express.Router();return e.post("/create",this.initCreate),e.post("/get",this.initGet),e.post("/update",this.initUpdate),e.post("/delete",this.initDelete),e.post("/list",this.initList),e},this.fbAdmin=e,this.collection=t,this.isProd=i,this.config=s,this.modelChecker=o,this.lib=r}}exports.FirebaseWrapper=FirebaseWrapper;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,a,n,d){return new(n=n||Promise)(function(i,t){function s(e){try{r(d.next(e))}catch(e){t(e)}}function o(e){try{r(d.throw(e))}catch(e){t(e)}}function r(e){var t;e.done?i(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(s,o)}r((d=d.apply(e,a||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FirebaseWrapper=void 0;const moment_1=__importDefault(require("moment")),QueryModel_1=require("../model/QueryModel");class FirebaseWrapper{constructor(e,t,i,s,o,r){this.fbAdmin="",this.collection="",this.isProd=!1,this.config={baseConfig:[],opsConfig:{read:[],create:[],update:[],delete:[]}},this.modelChecker=e=>!1,this.initCreate=(i,s)=>__awaiter(this,void 0,void 0,function*(){try{var e,t;this.modelChecker(i.body.data)?(e=(0,QueryModel_1.checkBaseConfig)(this.config,i),t=(0,QueryModel_1.checkOpsConfig)(this.config,"create",i,i.body.data),e&&t?(i.body.data.baseUpdatedAt=(0,moment_1.default)().toDate(),yield this.fbAdmin.firestore().collection(this.collection).doc(i.body.data.id).set(i.body.data),s.send({success:!0})):s.status(400).json({err:"Invalid Security Configuration"})):s.status(400).json({err:"Invalid Model Structure"})}catch(e){s.status(400).json({err:e})}}),this.initGet=(r,a)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o=r.body.id;o?(e=yield this.fbAdmin.firestore().collection(this.collection).doc(o).get()).exists&&(t=e.data(),i=(0,QueryModel_1.checkBaseConfig)(this.config,r),s=(0,QueryModel_1.checkOpsConfig)(this.config,"read",r,t),i)&&s?a.send({data:t}):a.status(400).json({err:"Invalid Security Configuration"}):a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.initUpdate=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o,r,a=this.modelChecker(d.body.data)&&d.body.id,n=e=>(delete e.id,e.baseUpdatedAt=(0,moment_1.default)().toDate(),e);a?(e=(0,QueryModel_1.checkBaseConfig)(this.config,d),t=(0,QueryModel_1.checkOpsConfig)(this.config,"update",d,d.body.data),e&&t?d.body.sensitive?(i=yield this.fbAdmin.firestore().collection(this.collection).doc(a).get()).exists?(s=i.data(),(0,moment_1.default)(d.body.data.baseUpdatedAt).isAfter((0,moment_1.default)(1e3*s.baseUpdatedAt.seconds))?(o=n(d.body.data),yield this.fbAdmin.firestore().collection(this.collection).doc(a).update(Object.assign({},o)),c.send({success:!0})):c.status(400).json({err:"Refresh Sensitive Model"})):c.status(400).json({err:"Invalid Security Configuration"}):(r=n(d.body.data),yield this.fbAdmin.firestore().collection(this.collection).doc(a).update(Object.assign({},r)),c.send({success:!0})):c.status(400).json({err:"Invalid Security Configuration"})):c.status(400).json({err:"Invalid Model Structure"})}catch(e){c.status(400).json({err:e})}}),this.initDelete=(r,a)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i,s,o=r.body.id;o?(e=yield this.fbAdmin.firestore().collection(this.collection).doc(o).get()).exists&&(t=e.data(),i=(0,QueryModel_1.checkBaseConfig)(this.config,r),s=(0,QueryModel_1.checkOpsConfig)(this.config,"delete",r,t),i)&&s?(yield this.fbAdmin.firestore().collection(this.collection).doc(o).delete(),a.send({success:!0})):a.status(400).json({err:"Invalid Security Configuration"}):a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.initList=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var e=(0,QueryModel_1.checkBaseConfig)(this.config,d);if(e){let o=this.fbAdmin.firestore().collection(this.collection),r="";var t=d.body.query;if(t&&0<t.length&&t.map(e=>{var t,i=null!=(t=e.queryId)?t:"",s=e.value;switch(e.type){case"search":e.searchIds&&0<e.searchIds.length&&(r=e.searchIds[0],o=o.orderBy(e.searchIds[0]).startAt(s).endAt(s+""));break;case"=":o=o.where(i,"==",s);break;case"!=":o=o.where(i,"!=",s);break;case">":o=o.where(i,">",s);break;case"<":o=o.where(i,"<",s);break;case"><":Array.isArray(s)&&2<=s.length&&(o=o.where(i,">=",s[0]).where(i,"<=",s[1]));break;case"in":o=o.where(i,"in",s)}}),d.body.limit){if(o=o.limit(d.body.limit),d.body.sort){var i=d.body.sort;if(r&&i.sortId!==r)return void c.status(400).json({err:"Invalid Search Sort Configuration"});r||(o=o.orderBy(i.sortId,"asc"===i.type?"asc":"desc"))}var s,a=yield(o=d.body.cursor?o.startAfter(d.body.cursor):o).get();let t=!0;const n=[];if(a&&a.forEach(e=>{e=e.data();n.push(e),(0,QueryModel_1.checkOpsConfig)(this.config,"read",d,e)||(t=!1)}),e&&t){let t="";if(n.length===d.body.limit){let e="id";d.body.sort&&(s=d.body.sort,e=s.sortId),t=n[d.body.limit-1][e]}c.send({data:n,count:t})}else c.status(400).json({err:"Invalid Security Configuration"})}else c.status(400).json({err:"Invalid Limit Configuration"})}else c.status(400).json({err:"Invalid Security Configuration"})}catch(e){c.status(400).json({err:e})}}),this.init=()=>{var e=this.lib.express.Router();return e.post("/create",this.initCreate),e.post("/get",this.initGet),e.post("/update",this.initUpdate),e.post("/delete",this.initDelete),e.post("/list",this.initList),e},this.fbAdmin=e,this.collection=t,this.isProd=i,this.config=s,this.modelChecker=o,this.lib=r}}exports.FirebaseWrapper=FirebaseWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AAOA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;IACF,OAAO,SAAM;gBAGX,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM;IAYlB,UAAU,QAAe,GAAG,OAAO,GAAG,mBA6BpC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA8BjC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAiEpC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAkCpC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AAOA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAEhB,YAAY,QAAS,GAAG,aAEtB;IACF,OAAO,SAAM;gBAGX,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM;IAYlB,UAAU,QAAe,GAAG,OAAO,GAAG,mBA6BpC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG,mBA8BjC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAiEpC;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBAkCpC;IAEF,QAAQ,QAAe,GAAG,OAAO,GAAG,mBA8GlC;IAEF,IAAI,YAuCF;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,r,d){return new(r=r||Promise)(function(i,e){function s(t){try{n(d.next(t))}catch(t){e(t)}}function o(t){try{n(d.throw(t))}catch(t){e(t)}}function n(t){var e;t.done?i(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(s,o)}n((d=d.apply(t,a||[])).next())})},__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MongoWrapper=void 0;const moment_1=__importDefault(require("moment")),QueryModel_1=require("../model/QueryModel");class MongoWrapper{constructor(t,e,i,s,o,n,a){this.mongoDB="",this.collection="",this.isProd=!1,this.config={baseConfig:[],opsConfig:{read:[],create:[],update:[],delete:[]}},this.modelChecker=t=>!1,this.tableId="",this.initCreate=(i,s)=>__awaiter(this,void 0,void 0,function*(){try{var t,e;this.modelChecker(i.body.data)?(t=(0,QueryModel_1.checkBaseConfig)(this.config,i),e=(0,QueryModel_1.checkOpsConfig)(this.config,"create",i,i.body.data),t&&e?(i.body.data.baseUpdatedAt=(0,moment_1.default)().toDate(),yield this.mongoDB.db(this.tableId).collection(this.collection).insertOne(i.body.data),s.send({success:!0})):s.status(400).json({err:"Invalid Security Configuration"})):s.status(400).json({err:"Invalid Model Structure"})}catch(t){s.status(400).json({err:t})}}),this.initGet=(o,n)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s=o.body.id;s?(t=yield this.mongoDB.db(this.tableId).collection(this.collection).findOne({_id:s}),e=(0,QueryModel_1.checkBaseConfig)(this.config,o),i=(0,QueryModel_1.checkOpsConfig)(this.config,"read",o,t),e&&i?n.send({data:t}):n.status(400).json({err:"Invalid Security Configuration"})):n.status(400).json({err:"Invalid Fields"})}catch(t){n.status(400).json({err:t})}}),this.initUpdate=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s,o,n,a=this.modelChecker(d.body.data)&&d.body.id,r=t=>(delete t._id,t.baseUpdatedAt=(0,moment_1.default)().toDate(),t);a?(t=(0,QueryModel_1.checkBaseConfig)(this.config,d),e=(0,QueryModel_1.checkOpsConfig)(this.config,"update",d,d.body.data),t&&e?(i=this.mongoDB.db(this.tableId).collection(this.collection),d.body.sensitive?(s=yield i.findOne({_id:a}),(0,moment_1.default)(d.body.data.baseUpdatedAt).isAfter((0,moment_1.default)(s.baseUpdatedAt))?(o=r(d.body.data),yield i.updateOne({_id:a},{$set:Object.assign({},o)}),c.send({success:!0})):c.status(400).json({err:"Refresh Sensitive Model"})):(n=r(d.body.data),yield i.updateOne({_id:a},{$set:Object.assign({},n)}),c.send({success:!0}))):c.status(400).json({err:"Invalid Security Configuration"})):c.status(400).json({err:"Invalid Model Structure"})}catch(t){c.status(400).json({err:t})}}),this.initDelete=(n,a)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s,o=n.body.id;o?(e=yield(t=this.mongoDB.db(this.tableId).collection(this.collection)).findOne({_id:o}),i=(0,QueryModel_1.checkBaseConfig)(this.config,n),s=(0,QueryModel_1.checkOpsConfig)(this.config,"delete",n,e),i&&s?(yield t.findOneAndDelete({_id:o}),a.send({success:!0})):a.status(400).json({err:"Invalid Security Configuration"})):a.status(400).json({err:"Invalid Fields"})}catch(t){a.status(400).json({err:t})}}),this.initList=(c,l)=>__awaiter(this,void 0,void 0,function*(){try{var i=(0,QueryModel_1.checkBaseConfig)(this.config,c);if(i){var s=c.body.query;const d={};s&&0<s.length&&s.map(t=>{var e,i=null!=(e=t.queryId)?e:"";const s=t.value;switch(t.type){case"search":t.searchIds&&0<t.searchIds.length&&(d.$or=[],t.searchIds.map(t=>{d.$or.push({[t]:{$regex:s,$options:"i"}})}));break;case"=":d[i]=s;break;case">":d[i]={$gt:s};break;case"<":d[i]={$lt:s};break;case"><":Array.isArray(s)&&2<=s.length&&(d[i]={$gte:s[0],$lte:s[1]});break;case"in":d[i]={$in:s}}});let t=this.mongoDB.db(this.tableId).collection(this.collection).find(d);var o,n,a=yield t.count({}),r=(c.body.cursor&&(t=t.skip(c.body.cursor)),c.body.limit&&(t=t.limit(c.body.limit)),c.body.sort&&(n={[(o=c.body.sort).sortId]:"asc"===o.type?1:-1},t=t.sort(n)),yield t.toArray());let e=!0;0<r.length&&r.map(t=>{(0,QueryModel_1.checkOpsConfig)(this.config,"read",c,t)||(e=!1)}),i&&e?l.send({data:r,count:a}):l.status(400).json({err:"Invalid Security Configuration"})}else l.status(400).json({err:"Invalid Security Configuration"})}catch(t){l.status(400).json({err:t})}}),this.init=()=>{var t=this.lib.express.Router();return t.post("/create",this.initCreate),t.post("/get",this.initGet),t.post("/update",this.initUpdate),t.post("/delete",this.initDelete),t.post("/list",this.initList),t},this.mongoDB=t,this.collection=e,this.isProd=i,this.config=s,this.modelChecker=o,this.lib=n;t=this.isProd?"prod":"dev";this.tableId=a?a+"-"+t:t}}exports.MongoWrapper=MongoWrapper;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(t,a,r,d){return new(r=r||Promise)(function(i,e){function s(t){try{n(d.next(t))}catch(t){e(t)}}function o(t){try{n(d.throw(t))}catch(t){e(t)}}function n(t){var e;t.done?i(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(s,o)}n((d=d.apply(t,a||[])).next())})},__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MongoWrapper=void 0;const moment_1=__importDefault(require("moment")),QueryModel_1=require("../model/QueryModel");class MongoWrapper{constructor(t,e,i,s,o,n,a){this.mongoDB="",this.collection="",this.isProd=!1,this.config={baseConfig:[],opsConfig:{read:[],create:[],update:[],delete:[]}},this.modelChecker=t=>!1,this.tableId="",this.initCreate=(i,s)=>__awaiter(this,void 0,void 0,function*(){try{var t,e;this.modelChecker(i.body.data)?(t=(0,QueryModel_1.checkBaseConfig)(this.config,i),e=(0,QueryModel_1.checkOpsConfig)(this.config,"create",i,i.body.data),t&&e?(i.body.data.baseUpdatedAt=(0,moment_1.default)().toDate(),yield this.mongoDB.db(this.tableId).collection(this.collection).insertOne(i.body.data),s.send({success:!0})):s.status(400).json({err:"Invalid Security Configuration"})):s.status(400).json({err:"Invalid Model Structure"})}catch(t){s.status(400).json({err:t})}}),this.initGet=(o,n)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s=o.body.id;s?(t=yield this.mongoDB.db(this.tableId).collection(this.collection).findOne({_id:s}),e=(0,QueryModel_1.checkBaseConfig)(this.config,o),i=(0,QueryModel_1.checkOpsConfig)(this.config,"read",o,t),e&&i?n.send({data:t}):n.status(400).json({err:"Invalid Security Configuration"})):n.status(400).json({err:"Invalid Fields"})}catch(t){n.status(400).json({err:t})}}),this.initUpdate=(d,c)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s,o,n,a=this.modelChecker(d.body.data)&&d.body.id,r=t=>(delete t._id,t.baseUpdatedAt=(0,moment_1.default)().toDate(),t);a?(t=(0,QueryModel_1.checkBaseConfig)(this.config,d),e=(0,QueryModel_1.checkOpsConfig)(this.config,"update",d,d.body.data),t&&e?(i=this.mongoDB.db(this.tableId).collection(this.collection),d.body.sensitive?(s=yield i.findOne({_id:a}),(0,moment_1.default)(d.body.data.baseUpdatedAt).isAfter((0,moment_1.default)(s.baseUpdatedAt))?(o=r(d.body.data),yield i.updateOne({_id:a},{$set:Object.assign({},o)}),c.send({success:!0})):c.status(400).json({err:"Refresh Sensitive Model"})):(n=r(d.body.data),yield i.updateOne({_id:a},{$set:Object.assign({},n)}),c.send({success:!0}))):c.status(400).json({err:"Invalid Security Configuration"})):c.status(400).json({err:"Invalid Model Structure"})}catch(t){c.status(400).json({err:t})}}),this.initDelete=(n,a)=>__awaiter(this,void 0,void 0,function*(){try{var t,e,i,s,o=n.body.id;o?(e=yield(t=this.mongoDB.db(this.tableId).collection(this.collection)).findOne({_id:o}),i=(0,QueryModel_1.checkBaseConfig)(this.config,n),s=(0,QueryModel_1.checkOpsConfig)(this.config,"delete",n,e),i&&s?(yield t.findOneAndDelete({_id:o}),a.send({success:!0})):a.status(400).json({err:"Invalid Security Configuration"})):a.status(400).json({err:"Invalid Fields"})}catch(t){a.status(400).json({err:t})}}),this.initList=(c,l)=>__awaiter(this,void 0,void 0,function*(){try{var i=(0,QueryModel_1.checkBaseConfig)(this.config,c);if(i){var s=c.body.query;const d={};s&&0<s.length&&s.map(t=>{var e,i=null!=(e=t.queryId)?e:"";const s=t.value;switch(t.type){case"search":t.searchIds&&0<t.searchIds.length&&(d.$or=[],t.searchIds.map(t=>{d.$or.push({[t]:{$regex:s,$options:"i"}})}));break;case"=":d[i]=s;break;case"!=":d[i]={$ne:s};break;case">":d[i]={$gt:s};break;case"<":d[i]={$lt:s};break;case"><":Array.isArray(s)&&2<=s.length&&(d[i]={$gte:s[0],$lte:s[1]});break;case"in":d[i]={$in:s}}});let t=this.mongoDB.db(this.tableId).collection(this.collection).find(d);var o,n,a=yield t.count({}),r=(c.body.cursor&&(t=t.skip(c.body.cursor)),c.body.limit&&(t=t.limit(c.body.limit)),c.body.sort&&(n={[(o=c.body.sort).sortId]:"asc"===o.type?1:-1},t=t.sort(n)),yield t.toArray());let e=!0;0<r.length&&r.map(t=>{(0,QueryModel_1.checkOpsConfig)(this.config,"read",c,t)||(e=!1)}),i&&e?l.send({data:r,count:a}):l.status(400).json({err:"Invalid Security Configuration"})}else l.status(400).json({err:"Invalid Security Configuration"})}catch(t){l.status(400).json({err:t})}}),this.init=()=>{var t=this.lib.express.Router();return t.post("/create",this.initCreate),t.post("/get",this.initGet),t.post("/update",this.initUpdate),t.post("/delete",this.initDelete),t.post("/list",this.initList),t},this.mongoDB=t,this.collection=e,this.isProd=i,this.config=s,this.modelChecker=o,this.lib=n;t=this.isProd?"prod":"dev";this.tableId=a?a+"-"+t:t}}exports.MongoWrapper=MongoWrapper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/uploadWrapper.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,UAAU,SAAS;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/uploadWrapper.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAErD,UAAU,SAAS;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,EAAE,GAAG,CAAM;IAClB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,SAAS,CAAC;IACf,YAAY,QAAS,GAAG,aAMtB;gBAGA,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,SAAS;IAQhB,UAAU,QAAe,GAAG,OAAO,GAAG,QAAQ,QAAQ,GAAG,QAAQ,mBA0D/D;IAEF,UAAU,QAAe,GAAG,OAAO,GAAG,mBA8BpC;IAEF,IAAI,YA4CF;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __awaiter=this&&this.__awaiter||function(e,n,
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(e,r,n,l){return new(n=n||Promise)(function(i,t){function s(e){try{o(l.next(e))}catch(e){t(e)}}function a(e){try{o(l.throw(e))}catch(e){t(e)}}function o(e){var t;e.done?i(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(s,a)}o((l=l.apply(e,r||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.UploadWrapper=void 0;const QueryModel_1=require("../model/QueryModel");class UploadWrapper{constructor(e,t,i,s){this.fbAdmin="",this.isProd=!1,this.config={baseConfig:[],opsConfig:{read:[],create:[],update:[],delete:[]}},this.modelChecker=e=>!!(e.assetCollectionName&&e.assetParentId&&e.assetFileName),this.initUpload=(d,a,o)=>__awaiter(this,void 0,void 0,function*(){try{const r=d.body.data;if(this.modelChecker(r)&&(d.file||r.googleLink)){var e=(0,QueryModel_1.checkBaseConfig)(this.config,d),t=(0,QueryModel_1.checkOpsConfig)(this.config,o,d,r);if(e&&t){const n=this.fbAdmin.storage().bucket(),l=this.lib.randomUUID();var i,s=(a,o)=>new Promise((i,s)=>__awaiter(this,void 0,void 0,function*(){var e="buffer"===a,t={contentType:e?o.headers["content-type"]:d.file.mimetype,customMetadata:{"file-name":"buffer"===a?r.assetFileName:d.file.originalname},metadata:{firebaseStorageDownloadTokens:l}},t=n.file(`${r.assetCollectionName}/${r.assetParentId}/`+r.assetFileName).createWriteStream({metadata:t});t.end(e?o.data:d.file.buffer),t.on("error",s),t.on("finish",i)}));r.googleLink?(i=yield this.lib.axios({method:"GET",url:r.googleLink,responseType:"arraybuffer"})).data&&(yield s("buffer",i)):yield s("file"),a.send({data:l})}else a.status(400).json({err:"Invalid Security Configuration"})}else a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.initDelete=(s,a)=>__awaiter(this,void 0,void 0,function*(){try{var e,t,i=s.body.data;this.modelChecker(i)?(e=(0,QueryModel_1.checkBaseConfig)(this.config,s),t=(0,QueryModel_1.checkOpsConfig)(this.config,"delete",s,i),e&&t?(yield this.fbAdmin.storage().bucket().file(`${i.assetCollectionName}/${i.assetParentId}/`+i.assetFileName).delete(),a.send({success:!0})):a.status(400).json({err:"Invalid Security Configuration"})):a.status(400).json({err:"Invalid Fields"})}catch(e){a.status(400).json({err:e})}}),this.init=()=>{var e=this.lib.express.Router();return e.post("/upload",this.lib.multer.single("file"),(e,t)=>{this.initUpload(e,t,"create")}),e.post("/update",this.lib.multer.single("file"),(e,t)=>{this.initUpload(e,t,"update")}),e.post("/delete",this.initDelete),e},this.fbAdmin=e,this.isProd=t,this.config=i,this.lib=s}}exports.UploadWrapper=UploadWrapper;
|
|
@@ -11,7 +11,7 @@ import SecurityConfig from "./SecurityConfig";
|
|
|
11
11
|
* @firebase - The moment search is used, sort is automatically disabled
|
|
12
12
|
*/
|
|
13
13
|
export interface Query {
|
|
14
|
-
type: "search" | "=" | ">" | "<" | "><" | "in";
|
|
14
|
+
type: "search" | "=" | "!=" | ">" | "<" | "><" | "in";
|
|
15
15
|
value: any;
|
|
16
16
|
queryId?: string;
|
|
17
17
|
searchIds?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryModel.d.ts","sourceRoot":"","sources":["../../src/model/QueryModel.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryModel.d.ts","sourceRoot":"","sources":["../../src/model/QueryModel.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IACtD,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,WAAY,cAAc,OAAO,GAAG,YA2B/D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,WACjB,cAAc,QAChB,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OACxC,GAAG,OACH,GAAG,YA+CT,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blixify-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/apis/index.js",
|
|
6
6
|
"private": false,
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
+
"axios": "^1.4.0",
|
|
35
36
|
"moment": "^2.29.4"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
|
-
"express": "^4.18.1",
|
|
39
39
|
"@types/express": "^4.17.14",
|
|
40
40
|
"@types/node": "^17.0.35",
|
|
41
41
|
"@typescript-eslint/eslint-plugin": "^5.25.0",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"cors": "^2.8.5",
|
|
47
47
|
"dotenv": "^16.0.1",
|
|
48
48
|
"eslint": "^8.16.0",
|
|
49
|
+
"express": "^4.18.1",
|
|
49
50
|
"express-rate-limit": "^6.6.0",
|
|
50
51
|
"firebase-admin": "^11.2.1",
|
|
51
52
|
"helmet": "^6.0.0",
|