@resolveio/server-lib 8.0.22 → 8.0.23

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.
@@ -4,7 +4,7 @@ exports.FileVersions = exports.Files = void 0;
4
4
  var mongoose_1 = require("mongoose");
5
5
  var simpl_schema_1 = require("simpl-schema");
6
6
  var index_1 = require("../index");
7
- var schema_report_builder_1 = require("../util/schema-report-builder");
7
+ var common_1 = require("../util/common");
8
8
  var schema = {
9
9
  _id: {
10
10
  type: String,
@@ -70,8 +70,8 @@ function initializeCollection() {
70
70
  exports.FileVersions = index_1.ResolveIOServer.getMainDB().model(exports.Files['versionCollection'], VersionSchema);
71
71
  //------------- Report Builder Schema
72
72
  var rbLookups = [];
73
- var rbSchema = Object.assign(schema, schema_report_builder_1.buildRbLookups(rbLookups, DefaultSchema, []));
74
- exports.Files['rbSchema'] = schema_report_builder_1.buildRbSchema(rbSchema);
73
+ var rbSchema = Object.assign(schema, common_1.buildRbLookups(rbLookups, DefaultSchema, []));
74
+ exports.Files['rbSchema'] = common_1.buildRbSchema(rbSchema);
75
75
  }
76
76
  else {
77
77
  setTimeout(function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/file.collection.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,6CAAwC;AACxC,kCAA2C;AAG3C,uEAA8E;AAE9E,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,OAAO,EAAE;QACR,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;KACd;CACD,CAAC;AAEF,IAAM,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;IACxC,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AAIQ,QAAA,KAAK,GAA0B,IAAI,CAAC;AACpC,QAAA,YAAY,GAA0B,IAAI,CAAC;AAEtD,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,aAAK,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAElE,aAAK,CAAC,aAAa,CAAC,GAAG,IAAI,sBAAY,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,CAAC,GAAG,GAAG;YACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;SACxB,CAAC;QAEF,IAAI,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,aAAK,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;QAE9C,oBAAY,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,aAAK,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5F,qCAAqC;QACrC,IAAI,SAAS,GAAmB,EAAE,CAAC;QAEnC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sCAAc,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,aAAK,CAAC,UAAU,CAAC,GAAG,qCAAa,CAAC,QAAQ,CAAC,CAAC;KAC5C;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"file.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { FileModel } from '../models/file.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/schema-report-builder';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tsize: {\n\t\ttype: Number\n\t},\n\tkey: {\n\t\ttype: String\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\torder: {\n\t\ttype: Number\n\t},\n\tstatus: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tdefault: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t}\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\ninterface ResolveIOModel extends FileModel, Document {}\n\nexport let Files: Model<ResolveIOModel> = null;\nexport let FileVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tFiles = ResolveIOServer.getMainDB().model('files', DefaultSchema);\n\n\t\tFiles['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tFiles['versionCollection'] = 'files.versions';\n\n\t\tFileVersions = ResolveIOServer.getMainDB().model(Files['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tFiles['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/file.collection.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,6CAAwC;AACxC,kCAA2C;AAG3C,yCAA+D;AAE/D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;KACZ;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,MAAM,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,OAAO,EAAE;QACR,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI;KACd;CACD,CAAC;AAEF,IAAM,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;IACxC,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AAIQ,QAAA,KAAK,GAA0B,IAAI,CAAC;AACpC,QAAA,YAAY,GAA0B,IAAI,CAAC;AAEtD,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,aAAK,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAElE,aAAK,CAAC,aAAa,CAAC,GAAG,IAAI,sBAAY,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,CAAC,GAAG,GAAG;YACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;SACxB,CAAC;QAEF,IAAI,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,aAAK,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;QAE9C,oBAAY,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,aAAK,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5F,qCAAqC;QACrC,IAAI,SAAS,GAAmB,EAAE,CAAC;QAEnC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAc,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,aAAK,CAAC,UAAU,CAAC,GAAG,sBAAa,CAAC,QAAQ,CAAC,CAAC;KAC5C;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"file.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { FileModel } from '../models/file.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/common';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tsize: {\n\t\ttype: Number\n\t},\n\tkey: {\n\t\ttype: String\n\t},\n\ttype: {\n\t\ttype: String\n\t},\n\torder: {\n\t\ttype: Number\n\t},\n\tstatus: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tdefault: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t}\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\ninterface ResolveIOModel extends FileModel, Document {}\n\nexport let Files: Model<ResolveIOModel> = null;\nexport let FileVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tFiles = ResolveIOServer.getMainDB().model('files', DefaultSchema);\n\n\t\tFiles['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tFiles['versionCollection'] = 'files.versions';\n\n\t\tFileVersions = ResolveIOServer.getMainDB().model(Files['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tFiles['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -15,7 +15,7 @@ exports.UserGroupVersions = exports.UserGroups = void 0;
15
15
  var mongoose_1 = require("mongoose");
16
16
  var simpl_schema_1 = require("simpl-schema");
17
17
  var index_1 = require("../index");
18
- var schema_report_builder_1 = require("../util/schema-report-builder");
18
+ var common_1 = require("../util/common");
19
19
  var schema = {
20
20
  _id: {
21
21
  type: String,
@@ -100,8 +100,8 @@ function initializeCollection() {
100
100
  exports.UserGroups['simplschema'] = new simpl_schema_1.default(schema);
101
101
  //------------- Report Builder Schema
102
102
  var rbLookups = [];
103
- var rbSchema = Object.assign(schema, schema_report_builder_1.buildRbLookups(rbLookups, DefaultSchema, []));
104
- exports.UserGroups['rbSchema'] = schema_report_builder_1.buildRbSchema(rbSchema);
103
+ var rbSchema = Object.assign(schema, common_1.buildRbLookups(rbLookups, DefaultSchema, []));
104
+ exports.UserGroups['rbSchema'] = common_1.buildRbSchema(rbSchema);
105
105
  }
106
106
  else {
107
107
  setTimeout(function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user-group.collection.ts"],"names":[],"mappings":"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","file":"user-group.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { UserGroupModel } from '../models/user-group.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbLookups, buildRbSchema } from '../util/schema-report-builder';\nimport { Users } from './user.collection';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tpermissions: {\n\t\ttype: Array\n\t},\n\t'permissions.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.name': {\n\t\ttype: String\n\t},\n\t'permissions.$.selected': {\n\t\ttype: Boolean\n\t},\n\t'permissions.$.views': {\n\t\ttype: Array\n\t},\n\t'permissions.$.views.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.views.$.link': {\n\t\ttype: String\n\t},\n\t'permissions.$.views.$.selected': {\n\t\ttype: Boolean\n\t},\n\tnotifications: {\n\t\ttype: Array\n\t},\n\t'notifications.$': {\n\t\ttype: Object\n\t},\n\t'notifications.$.name': {\n\t\ttype: String\n\t},\n\t'notifications.$.selected': {\n\t\ttype: Boolean\n\t}\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\nDefaultSchema.index({name: 1});\n\ninterface ResolveIOModel extends UserGroupModel, Document {}\n\nexport let UserGroups: Model<ResolveIOModel> = null;\nexport let UserGroupVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUserGroups = ResolveIOServer.getMainDB().model('user-groups', DefaultSchema);\n\n\t\tlet vSchema = { ...schema };\n\t\tvSchema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(vSchema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tVersionSchema.index({'_id.__v': 1, '_id._id': 1});\n\n\t\tUserGroups['versionCollection'] = 'user-groups.versions';\n\n\t\tUserGroupVersions = ResolveIOServer.getMainDB().model(UserGroups['versionCollection'], VersionSchema);\n\n\t\tUserGroups['simplschema'] = new SimpleSchema(schema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUserGroups['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user-group.collection.ts"],"names":[],"mappings":"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","file":"user-group.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { UserGroupModel } from '../models/user-group.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/common';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tname: {\n\t\ttype: String\n\t},\n\tpermissions: {\n\t\ttype: Array\n\t},\n\t'permissions.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.name': {\n\t\ttype: String\n\t},\n\t'permissions.$.selected': {\n\t\ttype: Boolean\n\t},\n\t'permissions.$.views': {\n\t\ttype: Array\n\t},\n\t'permissions.$.views.$': {\n\t\ttype: Object\n\t},\n\t'permissions.$.views.$.link': {\n\t\ttype: String\n\t},\n\t'permissions.$.views.$.selected': {\n\t\ttype: Boolean\n\t},\n\tnotifications: {\n\t\ttype: Array\n\t},\n\t'notifications.$': {\n\t\ttype: Object\n\t},\n\t'notifications.$.name': {\n\t\ttype: String\n\t},\n\t'notifications.$.selected': {\n\t\ttype: Boolean\n\t}\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\nDefaultSchema.index({name: 1});\n\ninterface ResolveIOModel extends UserGroupModel, Document {}\n\nexport let UserGroups: Model<ResolveIOModel> = null;\nexport let UserGroupVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUserGroups = ResolveIOServer.getMainDB().model('user-groups', DefaultSchema);\n\n\t\tlet vSchema = { ...schema };\n\t\tvSchema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(vSchema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tVersionSchema.index({'_id.__v': 1, '_id._id': 1});\n\n\t\tUserGroups['versionCollection'] = 'user-groups.versions';\n\n\t\tUserGroupVersions = ResolveIOServer.getMainDB().model(UserGroups['versionCollection'], VersionSchema);\n\n\t\tUserGroups['simplschema'] = new SimpleSchema(schema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUserGroups['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -4,7 +4,7 @@ exports.UserGuideVersions = exports.UserGuides = void 0;
4
4
  var mongoose_1 = require("mongoose");
5
5
  var simpl_schema_1 = require("simpl-schema");
6
6
  var index_1 = require("../index");
7
- var schema_report_builder_1 = require("../util/schema-report-builder");
7
+ var common_1 = require("../util/common");
8
8
  var schema = {
9
9
  _id: {
10
10
  type: String,
@@ -56,8 +56,8 @@ function initializeCollection() {
56
56
  exports.UserGuideVersions = index_1.ResolveIOServer.getMainDB().model(exports.UserGuides['versionCollection'], VersionSchema);
57
57
  //------------- Report Builder Schema
58
58
  var rbLookups = [];
59
- var rbSchema = Object.assign(schema, schema_report_builder_1.buildRbLookups(rbLookups, DefaultSchema, []));
60
- exports.UserGuides['rbSchema'] = schema_report_builder_1.buildRbSchema(rbSchema);
59
+ var rbSchema = Object.assign(schema, common_1.buildRbLookups(rbLookups, DefaultSchema, []));
60
+ exports.UserGuides['rbSchema'] = common_1.buildRbSchema(rbSchema);
61
61
  }
62
62
  else {
63
63
  setTimeout(function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user-guide.collection.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,6CAAwC;AACxC,kCAA2C;AAE3C,uEAA8E;AAG9E,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAEF,IAAM,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;IACxC,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AAIQ,QAAA,UAAU,GAA0B,IAAI,CAAC;AACzC,QAAA,iBAAiB,GAA0B,IAAI,CAAC;AAE3D,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,kBAAU,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAE7E,kBAAU,CAAC,aAAa,CAAC,GAAG,IAAI,sBAAY,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,CAAC,GAAG,GAAG;YACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;SACxB,CAAC;QAEF,IAAI,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,kBAAU,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,CAAC;QAEzD,yBAAiB,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,kBAAU,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;QAEtG,qCAAqC;QACrC,IAAI,SAAS,GAAmB,EAAE,CAAC;QAEnC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sCAAc,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,kBAAU,CAAC,UAAU,CAAC,GAAG,qCAAa,CAAC,QAAQ,CAAC,CAAC;KACjD;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-guide.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/schema-report-builder';\nimport { UserGuideModel } from '../models/user-guide.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tlink: {\n\t\ttype: String\n\t},\n\tlabel: {\n\t\ttype: String\n\t},\n\tmessage: {\n\t\ttype: String\n\t},\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\ninterface ResolveIOModel extends UserGuideModel, Document {}\n\nexport let UserGuides: Model<ResolveIOModel> = null;\nexport let UserGuideVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUserGuides = ResolveIOServer.getMainDB().model('user-guides', DefaultSchema);\n\n\t\tUserGuides['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tUserGuides['versionCollection'] = 'user-guides.versions';\n\n\t\tUserGuideVersions = ResolveIOServer.getMainDB().model(UserGuides['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUserGuides['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user-guide.collection.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,6CAAwC;AACxC,kCAA2C;AAE3C,yCAA+D;AAG/D,IAAI,MAAM,GAAQ;IACjB,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,GAAG,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,SAAS,EAAE;QACV,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;KACd;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;KACZ;IACD,KAAK,EAAE;QACN,IAAI,EAAE,MAAM;KACZ;IACD,OAAO,EAAE;QACR,IAAI,EAAE,MAAM;KACZ;CACD,CAAC;AAEF,IAAM,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;IACxC,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;CAChB,CAAC,CAAC;AAIQ,QAAA,UAAU,GAA0B,IAAI,CAAC;AACzC,QAAA,iBAAiB,GAA0B,IAAI,CAAC;AAE3D,oBAAoB,EAAE,CAAC;AAEvB,SAAS,oBAAoB;IAC5B,IAAI,uBAAe,CAAC,SAAS,EAAE,EAAE;QAChC,kBAAU,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAE7E,kBAAU,CAAC,aAAa,CAAC,GAAG,IAAI,sBAAY,CAAC,MAAM,CAAC,CAAC;QAErD,MAAM,CAAC,GAAG,GAAG;YACZ,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;SACxB,CAAC;QAEF,IAAI,aAAa,GAAG,IAAI,iBAAM,CAAC,MAAM,EAAE;YACtC,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,kBAAU,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,CAAC;QAEzD,yBAAiB,GAAG,uBAAe,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,kBAAU,CAAC,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC;QAEtG,qCAAqC;QACrC,IAAI,SAAS,GAAmB,EAAE,CAAC;QAEnC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAc,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,kBAAU,CAAC,UAAU,CAAC,GAAG,sBAAa,CAAC,QAAQ,CAAC,CAAC;KACjD;SACI;QACJ,UAAU,CAAC;YACV,oBAAoB,EAAE,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC;KACN;AACF,CAAC","file":"user-guide.collection.js","sourcesContent":["import { Schema, Model, Document } from 'mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/common';\nimport { UserGuideModel } from '../models/user-guide.model';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tlink: {\n\t\ttype: String\n\t},\n\tlabel: {\n\t\ttype: String\n\t},\n\tmessage: {\n\t\ttype: String\n\t},\n};\n\nconst DefaultSchema = new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\ninterface ResolveIOModel extends UserGuideModel, Document {}\n\nexport let UserGuides: Model<ResolveIOModel> = null;\nexport let UserGuideVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUserGuides = ResolveIOServer.getMainDB().model('user-guides', DefaultSchema);\n\n\t\tUserGuides['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tUserGuides['versionCollection'] = 'user-guides.versions';\n\n\t\tUserGuideVersions = ResolveIOServer.getMainDB().model(UserGuides['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUserGuides['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
@@ -5,7 +5,7 @@ var mongoose_1 = require("mongoose");
5
5
  var passportLocalMongoose = require("passport-local-mongoose");
6
6
  var simpl_schema_1 = require("simpl-schema");
7
7
  var index_1 = require("../index");
8
- var schema_report_builder_1 = require("../util/schema-report-builder");
8
+ var common_1 = require("../util/common");
9
9
  var schema = {
10
10
  _id: {
11
11
  type: String,
@@ -254,8 +254,8 @@ function initializeCollection() {
254
254
  exports.UserVersions = index_1.ResolveIOServer.getMainDB().model(exports.Users['versionCollection'], VersionSchema);
255
255
  //------------- Report Builder Schema
256
256
  var rbLookups = [];
257
- var rbSchema = Object.assign(schema, schema_report_builder_1.buildRbLookups(rbLookups, DefaultSchema, []));
258
- exports.Users['rbSchema'] = schema_report_builder_1.buildRbSchema(rbSchema);
257
+ var rbSchema = Object.assign(schema, common_1.buildRbLookups(rbLookups, DefaultSchema, []));
258
+ exports.Users['rbSchema'] = common_1.buildRbSchema(rbSchema);
259
259
  }
260
260
  else {
261
261
  setTimeout(function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/collections/user.collection.ts"],"names":[],"mappings":"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","file":"user.collection.js","sourcesContent":["import { Schema, Model, PassportLocalDocument, PassportLocalModel, PassportLocalSchema} from 'mongoose';\nimport * as passportLocalMongoose from 'passport-local-mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { UserModel } from '../models/user.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/schema-report-builder';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\troles: {\n\t\ttype: Object\n\t},\n\t'roles.super_admin': {\n\t\ttype: Boolean\n\t},\n\t'roles.approvals': {\n\t\ttype: Array\n\t},\n\t'roles.approvals.$': {\n\t\ttype: Object\n\t},\n\t'roles.approvals.$.type': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_1': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_2': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_3': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$': {\n\t\ttype: Object\n\t},\n\t'roles.groups.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.views': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$.views.$': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.yard': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'roles.notifications': {\n\t\ttype: Array\n\t},\n\t'roles.notifications.$': {\n\t\ttype: String\n\t},\n\t'roles.miscs': {\n\t\ttype: Array\n\t},\n\t'roles.miscs.$': {\n\t\ttype: String\n\t},\n\tattempts: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tlast: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tservices: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'services.enrollment': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.forgot_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.reset_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tusername: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\temail: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tfullname: {\n\t\ttype: String\n\t},\n\tactive: {\n\t\ttype: Boolean\n\t},\n\tphonenumber: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treadonly: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t},\n\tother: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tsettings: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'settings.table_color': {\n\t\ttype: String\n\t},\n\t'settings.table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.font_size': {\n\t\ttype: Number\n\t},\n\t'settings.collapsable_menu': {\n\t\ttype: Boolean\n\t},\n\t'settings.entries_per_page': {\n\t\ttype: String\n\t},\n\t'settings.warning_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_font_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.success_color': {\n\t\ttype: String\n\t},\n\t'settings.success_font_color': {\n\t\ttype: String\n\t},\n\t'settings.success_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_font_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.info_color': {\n\t\ttype: String\n\t},\n\t'settings.info_font_color': {\n\t\ttype: String\n\t},\n\t'settings.info_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_hover_color': {\n\t\ttype: String\n\t},\n};\n\nconst DefaultSchema = <PassportLocalSchema>new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\nDefaultSchema.plugin(passportLocalMongoose, {\n\tusernameUnique: true,\n\tlimitAttempts: true,\n\tmaxAttempts: 5,\n\tfindByUsername: (mongooseModel, queryParameters) => {\n\t\t// Add additional query parameter - AND condition - active: true\n\t\tqueryParameters.active = true;\n\t\treturn mongooseModel.findOne(queryParameters);\n\t}\n});\n\nDefaultSchema.index({fullname: 1});\nDefaultSchema.index({active: 1});\n\ninterface ResolveIOModel extends UserModel, PassportLocalDocument {}\n\nexport let Users: Model<ResolveIOModel> = null;\nexport let UserVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUsers = ResolveIOServer.getMainDB().model('users', DefaultSchema);\n\n\t\tUsers['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tVersionSchema.index({'_id.__v': 1, '_id._id': 1});\n\n\t\tUsers['versionCollection'] = 'users.versions';\n\n\t\tUserVersions = ResolveIOServer.getMainDB().model(Users['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUsers['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/collections/user.collection.ts"],"names":[],"mappings":"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","file":"user.collection.js","sourcesContent":["import { Schema, Model, PassportLocalDocument, PassportLocalModel, PassportLocalSchema} from 'mongoose';\nimport * as passportLocalMongoose from 'passport-local-mongoose';\nimport SimpleSchema from 'simpl-schema';\nimport { ResolveIOServer } from '../index';\nimport { UserModel } from '../models/user.model';\nimport { LookupTables } from '../models/report-builder.model';\nimport { buildRbSchema, buildRbLookups } from '../util/common';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\troles: {\n\t\ttype: Object\n\t},\n\t'roles.super_admin': {\n\t\ttype: Boolean\n\t},\n\t'roles.approvals': {\n\t\ttype: Array\n\t},\n\t'roles.approvals.$': {\n\t\ttype: Object\n\t},\n\t'roles.approvals.$.type': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_1': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_2': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.key_3': {\n\t\ttype: String\n\t},\n\t'roles.approvals.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$': {\n\t\ttype: Object\n\t},\n\t'roles.groups.$.name': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.views': {\n\t\ttype: Array\n\t},\n\t'roles.groups.$.views.$': {\n\t\ttype: String\n\t},\n\t'roles.groups.$.yard': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'roles.notifications': {\n\t\ttype: Array\n\t},\n\t'roles.notifications.$': {\n\t\ttype: String\n\t},\n\t'roles.miscs': {\n\t\ttype: Array\n\t},\n\t'roles.miscs.$': {\n\t\ttype: String\n\t},\n\tattempts: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tlast: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tservices: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'services.enrollment': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.forgot_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t'services.reset_password': {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tusername: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\temail: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tfullname: {\n\t\ttype: String\n\t},\n\tactive: {\n\t\ttype: Boolean\n\t},\n\tphonenumber: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\treadonly: {\n\t\ttype: Boolean,\n\t\toptional: true\n\t},\n\tother: {\n\t\ttype: Object,\n\t\tblackbox: true\n\t},\n\tsettings: {\n\t\ttype: Object,\n\t\toptional: true\n\t},\n\t'settings.table_color': {\n\t\ttype: String\n\t},\n\t'settings.table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_color': {\n\t\ttype: String\n\t},\n\t'settings.tertiary_table_font_color': {\n\t\ttype: String\n\t},\n\t'settings.font_size': {\n\t\ttype: Number\n\t},\n\t'settings.collapsable_menu': {\n\t\ttype: Boolean\n\t},\n\t'settings.entries_per_page': {\n\t\ttype: String\n\t},\n\t'settings.warning_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_font_color': {\n\t\ttype: String\n\t},\n\t'settings.warning_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.success_color': {\n\t\ttype: String\n\t},\n\t'settings.success_font_color': {\n\t\ttype: String\n\t},\n\t'settings.success_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_font_color': {\n\t\ttype: String\n\t},\n\t'settings.danger_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.info_color': {\n\t\ttype: String\n\t},\n\t'settings.info_font_color': {\n\t\ttype: String\n\t},\n\t'settings.info_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.primary_hover_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_font_color': {\n\t\ttype: String\n\t},\n\t'settings.secondary_hover_color': {\n\t\ttype: String\n\t},\n};\n\nconst DefaultSchema = <PassportLocalSchema>new Schema(schema, {\n\tskipVersioning: true,\n\tversionKey: false,\n\ttimestamps: true\n});\n\nDefaultSchema.plugin(passportLocalMongoose, {\n\tusernameUnique: true,\n\tlimitAttempts: true,\n\tmaxAttempts: 5,\n\tfindByUsername: (mongooseModel, queryParameters) => {\n\t\t// Add additional query parameter - AND condition - active: true\n\t\tqueryParameters.active = true;\n\t\treturn mongooseModel.findOne(queryParameters);\n\t}\n});\n\nDefaultSchema.index({fullname: 1});\nDefaultSchema.index({active: 1});\n\ninterface ResolveIOModel extends UserModel, PassportLocalDocument {}\n\nexport let Users: Model<ResolveIOModel> = null;\nexport let UserVersions: Model<ResolveIOModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer.getMainDB()) {\n\t\tUsers = ResolveIOServer.getMainDB().model('users', DefaultSchema);\n\n\t\tUsers['simplschema'] = new SimpleSchema(schema);\n\n\t\tschema._id = {\n\t\t\ttype: Schema.Types.Mixed\n\t\t};\n\n\t\tlet VersionSchema = new Schema(schema, {\n\t\t\tskipVersioning: true,\n\t\t\tversionKey: false,\n\t\t\ttimestamps: true\n\t\t});\n\n\t\tVersionSchema.index({'_id.__v': 1, '_id._id': 1});\n\n\t\tUsers['versionCollection'] = 'users.versions';\n\n\t\tUserVersions = ResolveIOServer.getMainDB().model(Users['versionCollection'], VersionSchema);\n\n\t\t//------------- Report Builder Schema\n\t\tlet rbLookups: LookupTables[] = [];\n\n\t\tlet rbSchema = Object.assign(schema, buildRbLookups(rbLookups, DefaultSchema, []));\n\t\tUsers['rbSchema'] = buildRbSchema(rbSchema);\n\t}\n\telse {\n\t\tsetTimeout(() => {\n\t\t\tinitializeCollection();\n\t\t}, 0);\n\t}\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@resolveio/server-lib",
3
- "version": "8.0.22",
3
+ "version": "8.0.23",
4
4
  "description": "",
5
5
  "main": "index.ts",
6
6
  "scripts": {
package/util/common.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ import { LookupTables } from '../models/report-builder.model';
2
+ import { Schema } from 'mongoose';
3
+ export declare function buildRbSchema(rbSchema: any): any;
4
+ export declare function buildRbLookups(rbLookups: LookupTables[], defaultSchema: Schema<any>, default_checked_array?: string[]): any;
5
+ export declare function throwErr(err: any, lkp: any, lookupNode: any, newPropertyName?: string): void;
1
6
  export declare function deepCopy(obj: any): any;
2
7
  export declare function dateReviver(key: any, value: any): any;
3
8
  export declare function getMongoUpdates(currDoc: any, modifiedDoc: any, incVersion: any): any;
package/util/common.js CHANGED
@@ -7,9 +7,110 @@ var __spreadArrays = (this && this.__spreadArrays) || function () {
7
7
  return r;
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.mergeDeep = exports.isObject = exports.toTitleCase = exports.randomString = exports.pad = exports.getBinarySize = exports.applyMongoUpdate = exports.getDeepDiff = exports.mergeUpdates = exports.getMongoMergeUpdatedDoc = exports.getMongoUpdates = exports.dateReviver = exports.deepCopy = void 0;
10
+ exports.mergeDeep = exports.isObject = exports.toTitleCase = exports.randomString = exports.pad = exports.getBinarySize = exports.applyMongoUpdate = exports.getDeepDiff = exports.mergeUpdates = exports.getMongoMergeUpdatedDoc = exports.getMongoUpdates = exports.dateReviver = exports.deepCopy = exports.throwErr = exports.buildRbLookups = exports.buildRbSchema = void 0;
11
11
  var rusDiff = require('rus-diff');
12
12
  var deepDiff = require('deep-diff').diff;
13
+ var mongoose_1 = require("mongoose");
14
+ function buildRbSchema(rbSchema) {
15
+ Object.keys(rbSchema).forEach(function (key) {
16
+ if (rbSchema[key].type === Object) {
17
+ rbSchema[key].type = 'Object';
18
+ rbSchema[key].rbType = 'Object';
19
+ }
20
+ else if (rbSchema[key].type === Array) {
21
+ rbSchema[key].type = 'Array';
22
+ rbSchema[key].rbType = 'Array';
23
+ }
24
+ else if (rbSchema[key].type === String) {
25
+ rbSchema[key].type = 'String';
26
+ rbSchema[key].rbType = 'String';
27
+ }
28
+ else if (rbSchema[key].type === Date) {
29
+ rbSchema[key].type = 'Date';
30
+ rbSchema[key].rbType = 'Date';
31
+ }
32
+ else if (rbSchema[key].type === Number) {
33
+ rbSchema[key].type = 'Number';
34
+ rbSchema[key].rbType = 'Number';
35
+ }
36
+ else if (rbSchema[key].type === Boolean) {
37
+ rbSchema[key].rbType = 'Boolean';
38
+ rbSchema[key].type = 'Boolean';
39
+ }
40
+ });
41
+ var schema = new mongoose_1.Schema(rbSchema, {
42
+ skipVersioning: true,
43
+ versionKey: false,
44
+ timestamps: false,
45
+ id: false,
46
+ _id: false,
47
+ });
48
+ Object.keys(schema.obj).forEach(function (key) {
49
+ delete schema.obj[key].type;
50
+ });
51
+ return schema.obj;
52
+ }
53
+ exports.buildRbSchema = buildRbSchema;
54
+ function buildRbLookups(rbLookups, defaultSchema, default_checked_array) {
55
+ // Remember: lkp.local_key will be removed later on, because it has 'id_'
56
+ if (default_checked_array === void 0) { default_checked_array = []; }
57
+ var rbSchema = {};
58
+ rbLookups.forEach(function (lkp) {
59
+ var errString = '';
60
+ var localKey, newPropertyName;
61
+ var localKeyDir = '';
62
+ var localKeyDirDot = '';
63
+ var collectionAlias = toTitleCase(lkp.lookup.replace(/\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\_/g, ' ').replace(/\.\$\./g, ' -> ').replace(/\./g, ' -> ')) + ') (Lookup)';
64
+ if (lkp.local_key.match(/\./)) {
65
+ localKey = lkp.local_key.replace(/\.\$/g, '');
66
+ localKeyDirDot = lkp.local_key.replace(/^(.+\.).*$/, '$1');
67
+ localKeyDir = localKeyDirDot.replace(/\.$/, '');
68
+ }
69
+ else {
70
+ // local_key is a root leaf node.
71
+ localKey = lkp.local_key;
72
+ }
73
+ newPropertyName = localKeyDirDot + collectionAlias;
74
+ if (!defaultSchema.path(lkp.local_key)) {
75
+ errString += '--local_key: \'' + lkp.local_key + '\' MUST be a valid schema path! ';
76
+ }
77
+ else if (defaultSchema.path(lkp.local_key).instance !== 'String') {
78
+ errString += '--local_key: \'' + lkp.local_key + '\' MUST be a String! ';
79
+ }
80
+ var lookupNode = {
81
+ lookup_collection: lkp.lookup,
82
+ lookup_collection_alias: collectionAlias,
83
+ local_key: localKey,
84
+ field_path: localKeyDir,
85
+ lookup_as: newPropertyName,
86
+ lookup_key: '_id',
87
+ type: 'Object',
88
+ };
89
+ rbSchema[newPropertyName] = lookupNode;
90
+ if (errString) {
91
+ throwErr(errString, lkp, lookupNode, newPropertyName);
92
+ }
93
+ });
94
+ for (var ii = 0; ii < default_checked_array.length; ii++) {
95
+ rbSchema[default_checked_array[ii]] = {};
96
+ rbSchema[default_checked_array[ii]]['default_checked'] = true;
97
+ Object.assign(rbSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);
98
+ }
99
+ return rbSchema;
100
+ }
101
+ exports.buildRbLookups = buildRbLookups;
102
+ function throwErr(err, lkp, lookupNode, newPropertyName) {
103
+ if (newPropertyName === void 0) { newPropertyName = ''; }
104
+ // err could be from a try/throw/catch
105
+ console.log('------- ERROR thrown by rbLookups: ');
106
+ console.log(err);
107
+ console.log('---item: ');
108
+ console.log(lkp);
109
+ console.log('---Attempted to create rbSchema[\'' + newPropertyName + '\']: ');
110
+ console.log(lookupNode);
111
+ process.exit(0);
112
+ }
113
+ exports.throwErr = throwErr;
13
114
  function deepCopy(obj) {
14
115
  return JSON.parse(JSON.stringify(obj), dateReviver);
15
116
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/common.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAClC,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;AAEzC,SAAgB,QAAQ,CAAC,GAAG;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC;AAFD,4BAEC;AAED,SAAgB,WAAW,CAAC,GAAG,EAAE,KAAK;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC9B,IAAI,CAAC,GAAG,8DAA8D,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,IAAI,CAAC,EAAE;YACN,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3G;KACD;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AARD,kCAQC;AAED,SAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU;IAC/D,IAAI,OAAO,CAAC,SAAS,EAAE;QACtB,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAC1C;IAED,IAAI,OAAO,CAAC,SAAS,EAAE;QACtB,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;KAC1C;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEjD,IAAI,OAAO,EAAE;QACZ,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;YACtD,OAAO,OAAO,CAAC,IAAI,CAAC;SACpB;QAED,IAAI,UAAU,EAAE;YACf,OAAO,CAAC,IAAI,GAAG,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC;SACxB;KACD;SACI;QACJ,IAAI,UAAU,EAAE;YACf,OAAO,GAAG;gBACT,IAAI,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;aACd,CAAC;SACF;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AA7BD,0CA6BC;AAED,SAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM;IAChE,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;IAC3B,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACd,CAAC;AARD,0DAQC;AAED,SAAgB,YAAY;IAAC,wBAAiB;SAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;QAAjB,mCAAiB;;IAC7C,IAAI,MAAM,GAAG;QACZ,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACT,CAAC;IAEF,cAAc,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,EAAD,CAAC,CAAC,CAAC,OAAO,CAAC,UAAA,QAAQ;QAC7C,QAAQ,CAAC,OAAO,CAAC,UAAA,MAAM;YACtB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC7B;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE;gBACxB,IAAI,OAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBACjE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;qBAC7C;yBACI;wBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;qBAC5C;iBACD;qBACI;oBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;iBAC/B;aACD;iBACI,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,EAAE;gBAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAE7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBAClG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBACxB;wBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC,MAAM,EAAE;4BAClG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACzC;qBACD;iBACD;qBACI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBAClG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BACxB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBACxB;wBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAArD,CAAqD,CAAC,CAAC,MAAM,EAAE;4BAClG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACzC;qBACD;iBACD;qBACI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;oBAClC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;oBAC1C,uGAAuG;oBACvG,yCAAyC;oBACzC,IAAI;iBACJ;aACD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAjED,oCAiEC;AAED,SAAgB,WAAW,CAAC,IAAI,EAAE,IAAI;IACrC,OAAO,IAAI,CAAC,GAAG,CAAC;IAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAEhB,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IAED,OAAO,IAAI,CAAC,GAAG,CAAC;IAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAEhB,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IAED,IAAI,IAAI,CAAC,SAAS,EAAE;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAxBD,kCAwBC;AAED,SAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK;IAC3C,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE9J,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEtB,IAAI,KAAK,IAAI,IAAI,EAAE;QAClB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;YAC1B,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpB,iCAAiC;YACjC,KAAK,CAAC,IAAI,GAAG,EAAE;gBACd,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;wBACpC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;qBACjB;yBACI;wBACJ,uFAAuF;wBACvF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,iCAAiC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;qBACzF;iBACD;qBACI;oBACJ,wFAAwF;oBACxF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,kCAAkC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC1F;aACD;SACD;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAClB,iCAAiC;YACjC,KAAK,CAAC,IAAI,IAAI,EAAE;gBACf,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACZ,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;oBACvB,KAAK,EAAE,IAAI;iBACX,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACZ;qBACI;oBACJ,2EAA2E;oBAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7E;aACD;SACD;QACD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;YACvB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAClB,iCAAiC;YACjC,KAAK,CAAC,IAAI,IAAI,EAAE;gBACf,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACZ,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;oBACxB,KAAK,EAAE,IAAI;iBACV,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;wBAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACZ;oBACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACb;qBACI;oBACJ,2EAA2E;oBAC3E,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,uBAAuB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC7E;aACD;SACD;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;YACzB,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;YACpB,iCAAiC;YACjC,KAAK,CAAC,IAAI,IAAI,EAAE;gBACf,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACZ,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACf;qBACI;oBACJ,6EAA6E;oBAC7E,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,yBAAyB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;iBAC/E;aACD;SACD;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;YACxB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,iCAAiC;YACjC,KAAK,KAAK,IAAI,KAAK,EAAE,EAAE,0BAA0B;gBAChD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrB,KAAK,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;oBAChD,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;oBAEf,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzD,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3D,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAxC,CAAwC,CAAC,EAAE,CAAC,CAAC,CAAC;qBACpG;yBACI;wBACJ,iFAAiF;wBACjF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,yBAAyB,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;qBACnF;iBACD;aACD;SACD;QACD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE;YACxB,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;YACrB,iCAAiC;YACjC,KAAK,KAAK,IAAI,MAAM,EAAE,EAAE,0BAA0B;gBACjD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,+CAA+C;gBAC/C,KAAK,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;oBAChD,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;oBAEjB,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAClC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBACjB;yBACI;wBACJ,iFAAiF;wBACjF,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,yBAAyB,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;qBACnF;iBACD;aACD;SACD;KACD;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AA3HD,4CA2HC;AAED,SAAS,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAQ;IACjC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;IACtB,IAAI,OAAO,IAAI,IAAI,EAAE;QACpB,OAAO,GAAG,EAAE,CAAC;KACb;IACD,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,GAAG,EAAE,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;KAC1B;IACD,CAAC,GAAG,CAAC,CAAC;IACN,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;gBACrB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aACR;iBAAM;gBACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM;aACL;SACD;KACD;IACD,IAAI,OAAO,CAAC,KAAK,EAAE;QAClB,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE;gBAC/F,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACT;iBAAM;gBACP,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACT;YACD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACT;KACD;SACI;QACJ,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAChB;KACD;IACD,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,MAAM,CAAC,IAAI,EAAE,IAAK;IAC1B,IAAI,IAAI,IAAI,IAAI,EAAE;QACjB,IAAI,GAAG,GAAG,CAAC;KACX;IACD,OAAO,CAAC,CAAC;QACR,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACrB;aACI;YACJ,QAAQ,IAAI,EAAE;gBACd,KAAK,KAAK,CAAC,CAAC;gBACZ,KAAK,IAAI,CAAC;gBACV,KAAK,KAAK,CAAC;gBACX,KAAK,EAAE;oBACN,OAAO,EAAE,CAAC;gBACX;oBACC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACnC;SACD;IACF,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAS,CAAC;QACnB,QAAQ,CAAC,EAAE;YACV,KAAK,KAAK,CAAC,CAAC;YACZ,KAAK,IAAI,CAAC;YACV,KAAK,KAAK,CAAC;YACX,KAAK,EAAE;gBACP,OAAO,IAAI,CAAC;YACZ;gBACA,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;SACpB;IACF,CAAC,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC;QACnB,OAAO,CAAC,IAAI,IAAI,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC;AAGD,SAAgB,aAAa,CAAC,MAAM;IACnC,IAAI,MAAM,EAAE;QACX,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACzC;SACI;QACJ,OAAO,CAAC,CAAC;KACT;AACF,CAAC;AAPD,sCAOC;AAED,SAAgB,GAAG,CAAC,GAAG,EAAE,IAAI;IAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IACjB,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,EAAE;QAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;KAAE;IACxC,OAAO,CAAC,CAAC;AACV,CAAC;AAJD,kBAIC;AAED,SAAgB,YAAY,CAAC,MAAM,EAAE,KAAK;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;KAAE;IAC/F,OAAO,MAAM,CAAC;AACf,CAAC;AAJD,oCAIC;AAED,SAAgB,WAAW,CAAC,GAAG;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAS,GAAG;QACxC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;AACJ,CAAC;AAJD,kCAIC;AAED,SAAgB,QAAQ,CAAC,IAAI;IAC5B,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,MAAM;;IAAE,iBAAU;SAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;QAAV,gCAAU;;IAC3C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACpB,OAAO,MAAM,CAAC;KACd;IACD,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACzC,KAAK,IAAM,GAAG,IAAI,MAAM,EAAE;YACzB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;oBACjB,MAAM,CAAC,MAAM,CAAC,MAAM,YAAI,GAAC,GAAG,IAAG,EAAE,MAAG,CAAC;iBACrC;gBACD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aACpC;iBACI;gBACJ,MAAM,CAAC,MAAM,CAAC,MAAM,YAAI,GAAC,GAAG,IAAG,MAAM,CAAC,GAAG,CAAC,MAAG,CAAC;aAC9C;SACD;KACD;IAED,OAAO,SAAS,+BAAC,MAAM,GAAK,OAAO,GAAE;AACtC,CAAC;AArBD,8BAqBC","file":"common.js","sourcesContent":["let rusDiff = require('rus-diff');\nlet deepDiff = require('deep-diff').diff;\n\nexport function deepCopy(obj) {\n\treturn JSON.parse(JSON.stringify(obj), dateReviver);\n}\n\nexport function dateReviver(key, value) {\n\tif (typeof value === 'string') {\n\t\tlet a = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n\t\tif (a) {\n\t\t\treturn new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));\n\t\t}\n\t}\n\treturn value;\n}\n\nexport function getMongoUpdates(currDoc, modifiedDoc, incVersion) {\n\tif (currDoc.createdAt) {\n\t\tmodifiedDoc.createdAt = currDoc.createdAt;\n\t}\n\n\tif (currDoc.updatedAt) {\n\t\tmodifiedDoc.updatedAt = currDoc.updatedAt;\n\t}\n\n\tlet updates = rusDiff.diff(currDoc, modifiedDoc);\n\n\tif (updates) {\n\t\tif (updates.$set && !Object.keys(updates.$set).length) {\n\t\t\tdelete updates.$set;\n\t\t}\n\n\t\tif (incVersion) {\n\t\t\tupdates.$inc = {__v: 1};\n\t\t}\n\t}\n\telse {\n\t\tif (incVersion) {\n\t\t\tupdates = {\n\t\t\t\t$inc: {__v: 1}\n\t\t\t};\n\t\t}\n\t}\n\n\treturn updates;\n}\n\nexport function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {\n\tlet upDoc = deepCopy(oldDoc);\n\tupDoc.__v = currentDoc.__v;\n\tlet diff_1 = getDeepDiff(oldDoc, currentDoc);\n\tlet diff_2 = getDeepDiff(oldDoc, f_doc);\n\tlet updates = mergeUpdates(diff_2, diff_1);\n\tapplyMongoUpdate(upDoc, updates);\n\treturn upDoc;\n}\n\nexport function mergeUpdates(...updatesToMerge) {\n\tlet merged = {\n\t\t$set: {},\n\t\t$unset: {},\n\t\t$inc: {},\n\t\t$push: {},\n\t\t$pull: {}\n\t};\n\n\tupdatesToMerge.filter(a => a).forEach(anUpdate => {\n\t\tanUpdate.forEach(change => {\n\t\t\tlet path = change.path[0];\n\n\t\t\tfor (let i = 1; i < change.path.length; i++) {\n\t\t\t\tpath += '.' + change.path[i];\n\t\t\t}\n\n\t\t\tif (change.kind === 'E') {\n\t\t\t\tif (typeof(change.rhs) === 'number' && path.endsWith('quantity')) {\n\t\t\t\t\tif (merged.$inc[path]) {\n\t\t\t\t\t\tmerged.$inc[path] += change.rhs - change.lhs;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmerged.$inc[path] = change.rhs - change.lhs;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmerged.$set[path] = change.rhs;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (change.kind === 'A') {\n\t\t\t\tif (change.item.kind === 'N') {\n\t\t\t\t\t\n\t\t\t\t\tif (!merged.$push[path] || JSON.stringify(merged.$push[path]) !== JSON.stringify(change.item.rhs)) {\n\t\t\t\t\t\tif (!merged.$push[path]) {\n\t\t\t\t\t\t\tmerged.$push[path] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!merged.$push[path].filter(a => JSON.stringify(a) === JSON.stringify(change.item.rhs)).length) {\n\t\t\t\t\t\t\tmerged.$push[path].push(change.item.rhs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (change.item.kind === 'D') {\n\t\t\t\t\tif (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {\n\t\t\t\t\t\tif (!merged.$pull[path]) {\n\t\t\t\t\t\t\tmerged.$pull[path] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!merged.$pull[path].filter(a => JSON.stringify(a) === JSON.stringify(change.item.lhs)).length) {\n\t\t\t\t\t\t\tmerged.$pull[path].push(change.item.lhs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (change.item.kind === 'E') {\n\t\t\t\t\tconsole.log('Condition E not satisfied.');\n\t\t\t\t\t// if (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {\n\t\t\t\t\t// \tmerged.$pull[path] = change.item.lhs;\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\treturn merged;\n}\n\nexport function getDeepDiff(doc1, doc2) {\n\tdelete doc1._id;\n\tdelete doc1.__v;\n\n\tif (doc1.updatedAt) {\n\t\tdelete doc1.updatedAt;\n\t}\n\n\tif (doc1.createdAt) {\n\t\tdelete doc1.createdAt;\n\t}\n\n\tdelete doc2._id;\n\tdelete doc2.__v;\n\n\tif (doc2.updatedAt) {\n\t\tdelete doc2.updatedAt;\n\t}\n\n\tif (doc2.createdAt) {\n\t\tdelete doc2.createdAt;\n\t}\n\n\treturn deepDiff(doc1, doc2);\n}\n\nexport function applyMongoUpdate(uDoc, delta) {\n\tlet orig, k, pathk, vk, n, n1, n2, name, o, o1, o2, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9a, ref9b, ref10, ref11, ref12a, ref12b, ref13, v;\n\n\torig = deepCopy(uDoc);\n\n\tif (delta != null) {\n\t\tif (delta.$rename != null) {\n\t\t\tref = delta.$rename;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref) {\n\t\t\t\tv = ref[k];\n\t\t\t\tref1 = resolve(uDoc, k), o1 = ref1[0], n1 = ref1[1];\n\t\t\t\tref2 = resolve(uDoc, v), o2 = ref2[0], n2 = ref2[1];\n\t\t\t\tif ((o1 != null) && n1.length === 1) {\n\t\t\t\t\tif ((o2 != null) && n2.length === 1) {\n\t\t\t\t\t\to2[n2[0]] = o1[n1[0]];\n\t\t\t\t\t\tdelete o1[n1[0]];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o2 + '/' + n2 + ' - couldn\\'t resolve first for ' + uDoc + ' ' + v);\n\t\t\t\t\t\tconsole.log('Error', o2 + '/' + n2 + ' - couldn\\'t resolve first for ' + uDoc + ' ' + v);\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o1 + '/' + n1 + ' - couldn\\'t resolve second for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o1 + '/' + n1 + ' - couldn\\'t resolve second for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$set != null) {\n\t\t\tref3 = delta.$set;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref3) {\n\t\t\t\tv = ref3[k];\n\t\t\t\tref4 = resolve(uDoc, k, {\n\t\t\t\t\tforce: true\n\t\t\t\t}), o = ref4[0], n = ref4[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\to[n[0]] = v;\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$inc != null) {\n\t\t\tref5 = delta.$inc;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref5) {\n\t\t\t\tv = ref5[k];\n\t\t\t\tref6 = resolve(uDoc, k, {\n\t\t\t\tforce: true\n\t\t\t\t}), o = ref6[0], n = ref6[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\tif (o[name = n[0]] == null) {\n\t\t\t\t\t\to[name] = 0;\n\t\t\t\t\t}\n\t\t\t\t\to[n[0]] += v;\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$unset != null) {\n\t\t\tref7 = delta.$unset;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref7) {\n\t\t\t\tv = ref7[k];\n\t\t\t\tref8 = resolve(uDoc, k), o = ref8[0], n = ref8[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\tdelete o[n[0]];\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$pull != null) {\n\t\t\tref9a = delta.$pull;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (pathk in ref9a) { // should only loop 1 time\n\t\t\t\tref9b = ref9a[pathk];\n\t\t\t\tfor (let kk = (ref9b.length - 1); kk >= 0; kk--) {\n\t\t\t\t\tvk = ref9b[kk];\n\t\t\t\t\t\n\t\t\t\t\tref10 = resolve(uDoc, pathk), o = ref10[0], n = ref10[1];\n\t\t\t\t\tref11 = resolve(orig, pathk), o2 = ref11[0], n2 = ref11[1];\n\t\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\t\to[n[0]].splice((<Array<any>>o2[n2[0]]).findIndex(z => JSON.stringify(z) === JSON.stringify(vk)), 1);\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$push != null) {\n\t\t\tref12a = delta.$push;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (pathk in ref12a) { // should only loop 1 time\n\t\t\t\tref12b = ref12a[pathk];\n\t\t\t\t// for (let kk = 0; kk < ref12b.length; kk++) {\n\t\t\t\tfor (let kk = (ref12b.length - 1); kk >= 0; kk--) {\n\t\t\t\t\t\tvk = ref12b[kk];\n\n\t\t\t\t\tref13 = resolve(uDoc, pathk), o = ref13[0], n = ref13[1];\n\t\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\t\to[n[0]].push(vk);\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn uDoc;\n}\n\nfunction resolve(a, path, options?) {\n\tlet e, k, last, stack;\n\tif (options == null) {\n\t\toptions = {};\n\t}\n\tstack = arrize(path);\n\tlast = [];\n\tif (stack.length > 0) {\n\t\tlast.unshift(stack.pop());\n\t}\n\te = a;\n\tif (e !== null) {\n\t\twhile ((k = stack.shift()) !== void 0) {\n\t\t\tif (e[k] !== void 0) {\n\t\t\te = e[k];\n\t\t\t} else {\n\t\t\tstack.unshift(k);\n\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (options.force) {\n\t\twhile ((k = stack.shift()) !== void 0) {\n\t\t\tif ((typeof stack[0] === 'number') || ((stack.length === 0) && (typeof last[0] === 'number'))) {\n\t\t\te[k] = [];\n\t\t\t} else {\n\t\t\te[k] = {};\n\t\t\t}\n\t\t\te = e[k];\n\t\t}\n\t} \n\telse {\n\t\twhile ((k = stack.pop()) !== void 0) {\n\t\t\tlast.unshift(k);\n\t\t}\n\t}\n\treturn [e, last];\n}\n\nfunction arrize(path, glue?) {\n\tif (glue == null) {\n\t\tglue = '.';\n\t}\n\treturn ((function() {\n\t\tif (Array.isArray(path)) {\n\t\t\treturn path.slice(0);\n\t\t} \n\t\telse {\n\t\t\tswitch (path) {\n\t\t\tcase void 0:\n\t\t\tcase null:\n\t\t\tcase false:\n\t\t\tcase '':\n\t\t\t\treturn [];\n\t\t\tdefault:\n\t\t\t\treturn path.toString().split(glue);\n\t\t\t}\n\t\t}\n\t})()).map(function(e) {\n\t\tswitch (e) {\n\t\t\tcase void 0:\n\t\t\tcase null:\n\t\t\tcase false:\n\t\t\tcase '':\n\t\t\treturn null;\n\t\t\tdefault:\n\t\t\treturn e.toString();\n\t\t}\n\t}).filter(function(e) {\n\t\treturn e != null;\n\t});\n}\n\n\nexport function getBinarySize(string) {\n\tif (string) {\n\t\treturn Buffer.byteLength(string, 'utf8');\n\t}\n\telse {\n\t\treturn 0;\n\t}\n}\n\nexport function pad(num, size) {\n\tlet s = num + '';\n\twhile (s.length < size) { s = '0' + s; }\n\treturn s;\n}\n\nexport function randomString(length, chars) {\n\tlet result = '';\n\tfor (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }\n\treturn result;\n}\n\nexport function toTitleCase(str) {\n\treturn str.replace(/\\w\\S*/g, function(txt){\n\t\treturn txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n\t});\n}\n\nexport function isObject(item) {\n\treturn (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep(target, ...sources) {\n\tif (!sources.length) {\n\t\treturn target;\n\t}\n\tconst source = sources.shift();\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\tObject.assign(target, { [key]: {} });\n\t\t\t\t}\n\t\t\t\tmergeDeep(target[key], source[key]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeDeep(target, ...sources);\n}"]}
1
+ {"version":3,"sources":["../../src/util/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["let rusDiff = require('rus-diff');\nlet deepDiff = require('deep-diff').diff;\nimport { LookupTables } from '../models/report-builder.model';\nimport { Schema, SchemaTypes } from 'mongoose';\n\nexport function buildRbSchema(rbSchema: any) {\n\tObject.keys(rbSchema).forEach(key => {\n\t\tif (rbSchema[key].type === Object) {\n\t\t\trbSchema[key].type = 'Object';\n\t\t\trbSchema[key].rbType = 'Object';\n\t\t}\n\t\telse if (rbSchema[key].type === Array) {\n\t\t\trbSchema[key].type = 'Array';\n\t\t\trbSchema[key].rbType = 'Array';\n\t\t}\n\t\telse if (rbSchema[key].type === String) {\n\t\t\trbSchema[key].type = 'String';\n\t\t\trbSchema[key].rbType = 'String';\n\t\t}\n\t\telse if (rbSchema[key].type === Date) {\n\t\t\trbSchema[key].type = 'Date';\n\t\t\trbSchema[key].rbType = 'Date';\n\t\t}\n\t\telse if (rbSchema[key].type === Number) {\n\t\t\trbSchema[key].type = 'Number';\n\t\t\trbSchema[key].rbType = 'Number';\n\t\t}\n\t\telse if (rbSchema[key].type === Boolean) {\n\t\t\trbSchema[key].rbType = 'Boolean';\n\t\t\trbSchema[key].type = 'Boolean';\n\t\t}\n\t});\n\n\tlet schema = new Schema(rbSchema, {\n\t\tskipVersioning: true,\n\t\tversionKey: false,\n\t\ttimestamps: false,\n\t\tid: false,\n\t\t_id: false,\n\t});\n\n\tObject.keys(schema.obj).forEach(key => {\n\t\tdelete schema.obj[key].type;\n\t});\n\n\treturn schema.obj;\n}\n\nexport function buildRbLookups(rbLookups: LookupTables[], defaultSchema: Schema<any>, default_checked_array: string[] = []) {\n\t// Remember: lkp.local_key will be removed later on, because it has 'id_'\n\n\tlet rbSchema: any = {};\n\t\n\trbLookups.forEach(lkp => {\n\t\tlet errString = '';\n\t\tlet localKey, newPropertyName;\n\t\tlet localKeyDir = '';\n\t\tlet localKeyDirDot = '';\n\t\tlet collectionAlias = toTitleCase(lkp.lookup.replace(/\\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\\_/g, ' ').replace(/\\.\\$\\./g, ' -> ').replace(/\\./g, ' -> ')) + ') (Lookup)';\n\n\t\tif (lkp.local_key.match(/\\./)) {\n\t\t\tlocalKey = lkp.local_key.replace(/\\.\\$/g, '');\n\t\t\tlocalKeyDirDot = lkp.local_key.replace(/^(.+\\.).*$/, '$1');\n\t\t\tlocalKeyDir = localKeyDirDot.replace(/\\.$/, '');\n\t\t}\n\t\telse {\n\t\t\t// local_key is a root leaf node.\n\t\t\tlocalKey = lkp.local_key;\n\t\t}\n\t\tnewPropertyName = localKeyDirDot + collectionAlias;\n\t\tif (!defaultSchema.path(lkp.local_key)) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a valid schema path! ';\n\t\t}\n\t\telse if ((<any>defaultSchema.path(lkp.local_key)).instance !== 'String') {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a String! ';\n\t\t}\n\t\tlet lookupNode = {\n\t\t\tlookup_collection: lkp.lookup,\n\t\t\tlookup_collection_alias: collectionAlias,\n\t\t\tlocal_key: localKey,\n\t\t\tfield_path: localKeyDir,\n\t\t\tlookup_as: newPropertyName,\n\t\t\tlookup_key: '_id',\n\t\t\ttype: 'Object',\n\t\t};\n\n\t\trbSchema[newPropertyName] = lookupNode;\n\n\t\tif (errString) {\n\t\t\tthrowErr(errString, lkp, lookupNode, newPropertyName);\n\t\t}\n\t});\n\n\tfor (let ii = 0; ii < default_checked_array.length; ii++) {\n\t\trbSchema[default_checked_array[ii]] = {};\n\t\trbSchema[default_checked_array[ii]]['default_checked'] = true;\n\t\tObject.assign(rbSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);\n\t}\n\n\treturn rbSchema;\n}\n\nexport function throwErr(err: any, lkp, lookupNode, newPropertyName = '') {\n\t// err could be from a try/throw/catch\n\tconsole.log('------- ERROR thrown by rbLookups: ');\n\tconsole.log(err);\n\tconsole.log('---item: ');\n\tconsole.log(lkp);\n\tconsole.log('---Attempted to create rbSchema[\\'' + newPropertyName + '\\']: ');\n\tconsole.log(lookupNode);\n\tprocess.exit(0);\n}\n\nexport function deepCopy(obj) {\n\treturn JSON.parse(JSON.stringify(obj), dateReviver);\n}\n\nexport function dateReviver(key, value) {\n\tif (typeof value === 'string') {\n\t\tlet a = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n\t\tif (a) {\n\t\t\treturn new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));\n\t\t}\n\t}\n\treturn value;\n}\n\nexport function getMongoUpdates(currDoc, modifiedDoc, incVersion) {\n\tif (currDoc.createdAt) {\n\t\tmodifiedDoc.createdAt = currDoc.createdAt;\n\t}\n\n\tif (currDoc.updatedAt) {\n\t\tmodifiedDoc.updatedAt = currDoc.updatedAt;\n\t}\n\n\tlet updates = rusDiff.diff(currDoc, modifiedDoc);\n\n\tif (updates) {\n\t\tif (updates.$set && !Object.keys(updates.$set).length) {\n\t\t\tdelete updates.$set;\n\t\t}\n\n\t\tif (incVersion) {\n\t\t\tupdates.$inc = {__v: 1};\n\t\t}\n\t}\n\telse {\n\t\tif (incVersion) {\n\t\t\tupdates = {\n\t\t\t\t$inc: {__v: 1}\n\t\t\t};\n\t\t}\n\t}\n\n\treturn updates;\n}\n\nexport function getMongoMergeUpdatedDoc(f_doc, currentDoc, oldDoc) {\n\tlet upDoc = deepCopy(oldDoc);\n\tupDoc.__v = currentDoc.__v;\n\tlet diff_1 = getDeepDiff(oldDoc, currentDoc);\n\tlet diff_2 = getDeepDiff(oldDoc, f_doc);\n\tlet updates = mergeUpdates(diff_2, diff_1);\n\tapplyMongoUpdate(upDoc, updates);\n\treturn upDoc;\n}\n\nexport function mergeUpdates(...updatesToMerge) {\n\tlet merged = {\n\t\t$set: {},\n\t\t$unset: {},\n\t\t$inc: {},\n\t\t$push: {},\n\t\t$pull: {}\n\t};\n\n\tupdatesToMerge.filter(a => a).forEach(anUpdate => {\n\t\tanUpdate.forEach(change => {\n\t\t\tlet path = change.path[0];\n\n\t\t\tfor (let i = 1; i < change.path.length; i++) {\n\t\t\t\tpath += '.' + change.path[i];\n\t\t\t}\n\n\t\t\tif (change.kind === 'E') {\n\t\t\t\tif (typeof(change.rhs) === 'number' && path.endsWith('quantity')) {\n\t\t\t\t\tif (merged.$inc[path]) {\n\t\t\t\t\t\tmerged.$inc[path] += change.rhs - change.lhs;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmerged.$inc[path] = change.rhs - change.lhs;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmerged.$set[path] = change.rhs;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (change.kind === 'A') {\n\t\t\t\tif (change.item.kind === 'N') {\n\t\t\t\t\t\n\t\t\t\t\tif (!merged.$push[path] || JSON.stringify(merged.$push[path]) !== JSON.stringify(change.item.rhs)) {\n\t\t\t\t\t\tif (!merged.$push[path]) {\n\t\t\t\t\t\t\tmerged.$push[path] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!merged.$push[path].filter(a => JSON.stringify(a) === JSON.stringify(change.item.rhs)).length) {\n\t\t\t\t\t\t\tmerged.$push[path].push(change.item.rhs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (change.item.kind === 'D') {\n\t\t\t\t\tif (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {\n\t\t\t\t\t\tif (!merged.$pull[path]) {\n\t\t\t\t\t\t\tmerged.$pull[path] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!merged.$pull[path].filter(a => JSON.stringify(a) === JSON.stringify(change.item.lhs)).length) {\n\t\t\t\t\t\t\tmerged.$pull[path].push(change.item.lhs);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (change.item.kind === 'E') {\n\t\t\t\t\tconsole.log('Condition E not satisfied.');\n\t\t\t\t\t// if (!merged.$pull[path] || JSON.stringify(merged.$pull[path]) !== JSON.stringify(change.item.lhs)) {\n\t\t\t\t\t// \tmerged.$pull[path] = change.item.lhs;\n\t\t\t\t\t// }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n\n\treturn merged;\n}\n\nexport function getDeepDiff(doc1, doc2) {\n\tdelete doc1._id;\n\tdelete doc1.__v;\n\n\tif (doc1.updatedAt) {\n\t\tdelete doc1.updatedAt;\n\t}\n\n\tif (doc1.createdAt) {\n\t\tdelete doc1.createdAt;\n\t}\n\n\tdelete doc2._id;\n\tdelete doc2.__v;\n\n\tif (doc2.updatedAt) {\n\t\tdelete doc2.updatedAt;\n\t}\n\n\tif (doc2.createdAt) {\n\t\tdelete doc2.createdAt;\n\t}\n\n\treturn deepDiff(doc1, doc2);\n}\n\nexport function applyMongoUpdate(uDoc, delta) {\n\tlet orig, k, pathk, vk, n, n1, n2, name, o, o1, o2, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9a, ref9b, ref10, ref11, ref12a, ref12b, ref13, v;\n\n\torig = deepCopy(uDoc);\n\n\tif (delta != null) {\n\t\tif (delta.$rename != null) {\n\t\t\tref = delta.$rename;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref) {\n\t\t\t\tv = ref[k];\n\t\t\t\tref1 = resolve(uDoc, k), o1 = ref1[0], n1 = ref1[1];\n\t\t\t\tref2 = resolve(uDoc, v), o2 = ref2[0], n2 = ref2[1];\n\t\t\t\tif ((o1 != null) && n1.length === 1) {\n\t\t\t\t\tif ((o2 != null) && n2.length === 1) {\n\t\t\t\t\t\to2[n2[0]] = o1[n1[0]];\n\t\t\t\t\t\tdelete o1[n1[0]];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o2 + '/' + n2 + ' - couldn\\'t resolve first for ' + uDoc + ' ' + v);\n\t\t\t\t\t\tconsole.log('Error', o2 + '/' + n2 + ' - couldn\\'t resolve first for ' + uDoc + ' ' + v);\n\t\t\t\t\t}\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o1 + '/' + n1 + ' - couldn\\'t resolve second for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o1 + '/' + n1 + ' - couldn\\'t resolve second for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$set != null) {\n\t\t\tref3 = delta.$set;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref3) {\n\t\t\t\tv = ref3[k];\n\t\t\t\tref4 = resolve(uDoc, k, {\n\t\t\t\t\tforce: true\n\t\t\t\t}), o = ref4[0], n = ref4[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\to[n[0]] = v;\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$inc != null) {\n\t\t\tref5 = delta.$inc;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref5) {\n\t\t\t\tv = ref5[k];\n\t\t\t\tref6 = resolve(uDoc, k, {\n\t\t\t\tforce: true\n\t\t\t\t}), o = ref6[0], n = ref6[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\tif (o[name = n[0]] == null) {\n\t\t\t\t\t\to[name] = 0;\n\t\t\t\t\t}\n\t\t\t\t\to[n[0]] += v;\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t set for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$unset != null) {\n\t\t\tref7 = delta.$unset;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (k in ref7) {\n\t\t\t\tv = ref7[k];\n\t\t\t\tref8 = resolve(uDoc, k), o = ref8[0], n = ref8[1];\n\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\tdelete o[n[0]];\n\t\t\t\t} \n\t\t\t\telse {\n\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + k);\n\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + k);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$pull != null) {\n\t\t\tref9a = delta.$pull;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (pathk in ref9a) { // should only loop 1 time\n\t\t\t\tref9b = ref9a[pathk];\n\t\t\t\tfor (let kk = (ref9b.length - 1); kk >= 0; kk--) {\n\t\t\t\t\tvk = ref9b[kk];\n\t\t\t\t\t\n\t\t\t\t\tref10 = resolve(uDoc, pathk), o = ref10[0], n = ref10[1];\n\t\t\t\t\tref11 = resolve(orig, pathk), o2 = ref11[0], n2 = ref11[1];\n\t\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\t\to[n[0]].splice((<Array<any>>o2[n2[0]]).findIndex(z => JSON.stringify(z) === JSON.stringify(vk)), 1);\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (delta.$push != null) {\n\t\t\tref12a = delta.$push;\n\t\t\t// tslint:disable-next-line:forin\n\t\t\tfor (pathk in ref12a) { // should only loop 1 time\n\t\t\t\tref12b = ref12a[pathk];\n\t\t\t\t// for (let kk = 0; kk < ref12b.length; kk++) {\n\t\t\t\tfor (let kk = (ref12b.length - 1); kk >= 0; kk--) {\n\t\t\t\t\t\tvk = ref12b[kk];\n\n\t\t\t\t\tref13 = resolve(uDoc, pathk), o = ref13[0], n = ref13[1];\n\t\t\t\t\tif ((o != null) && n.length === 1) {\n\t\t\t\t\t\to[n[0]].push(vk);\n\t\t\t\t\t} \n\t\t\t\t\telse {\n\t\t\t\t\t\t// throw new Error(o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t\tconsole.log('Error', o + '/' + n + ' - couldn\\'t unset for ' + uDoc + ' ' + pathk);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn uDoc;\n}\n\nfunction resolve(a, path, options?) {\n\tlet e, k, last, stack;\n\tif (options == null) {\n\t\toptions = {};\n\t}\n\tstack = arrize(path);\n\tlast = [];\n\tif (stack.length > 0) {\n\t\tlast.unshift(stack.pop());\n\t}\n\te = a;\n\tif (e !== null) {\n\t\twhile ((k = stack.shift()) !== void 0) {\n\t\t\tif (e[k] !== void 0) {\n\t\t\te = e[k];\n\t\t\t} else {\n\t\t\tstack.unshift(k);\n\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (options.force) {\n\t\twhile ((k = stack.shift()) !== void 0) {\n\t\t\tif ((typeof stack[0] === 'number') || ((stack.length === 0) && (typeof last[0] === 'number'))) {\n\t\t\te[k] = [];\n\t\t\t} else {\n\t\t\te[k] = {};\n\t\t\t}\n\t\t\te = e[k];\n\t\t}\n\t} \n\telse {\n\t\twhile ((k = stack.pop()) !== void 0) {\n\t\t\tlast.unshift(k);\n\t\t}\n\t}\n\treturn [e, last];\n}\n\nfunction arrize(path, glue?) {\n\tif (glue == null) {\n\t\tglue = '.';\n\t}\n\treturn ((function() {\n\t\tif (Array.isArray(path)) {\n\t\t\treturn path.slice(0);\n\t\t} \n\t\telse {\n\t\t\tswitch (path) {\n\t\t\tcase void 0:\n\t\t\tcase null:\n\t\t\tcase false:\n\t\t\tcase '':\n\t\t\t\treturn [];\n\t\t\tdefault:\n\t\t\t\treturn path.toString().split(glue);\n\t\t\t}\n\t\t}\n\t})()).map(function(e) {\n\t\tswitch (e) {\n\t\t\tcase void 0:\n\t\t\tcase null:\n\t\t\tcase false:\n\t\t\tcase '':\n\t\t\treturn null;\n\t\t\tdefault:\n\t\t\treturn e.toString();\n\t\t}\n\t}).filter(function(e) {\n\t\treturn e != null;\n\t});\n}\n\n\nexport function getBinarySize(string) {\n\tif (string) {\n\t\treturn Buffer.byteLength(string, 'utf8');\n\t}\n\telse {\n\t\treturn 0;\n\t}\n}\n\nexport function pad(num, size) {\n\tlet s = num + '';\n\twhile (s.length < size) { s = '0' + s; }\n\treturn s;\n}\n\nexport function randomString(length, chars) {\n\tlet result = '';\n\tfor (let i = length; i > 0; --i) { result += chars[Math.floor(Math.random() * chars.length)]; }\n\treturn result;\n}\n\nexport function toTitleCase(str) {\n\treturn str.replace(/\\w\\S*/g, function(txt){\n\t\treturn txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n\t});\n}\n\nexport function isObject(item) {\n\treturn (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep(target, ...sources) {\n\tif (!sources.length) {\n\t\treturn target;\n\t}\n\tconst source = sources.shift();\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\tObject.assign(target, { [key]: {} });\n\t\t\t\t}\n\t\t\t\tmergeDeep(target[key], source[key]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeDeep(target, ...sources);\n}"]}
@@ -1,16 +1,5 @@
1
- import { CollectionTree, LookupTables } from '../models/report-builder.model';
2
- import { Schema } from 'mongoose';
1
+ import { CollectionTree } from '../models/report-builder.model';
3
2
  export declare function getReportLookupSchemas(collection_root: string): CollectionTree[];
4
- export declare function buildRbSchema(rbSchema: any): any;
5
- /*** ye old regex pairs:
6
- TEMP, PER FILE:
7
- (['\s][^'\s]*id_[^'\s]+'?):\s*{
8
- rbLookups.push({ lookup: 'AAA', local_key: $1 });
9
- \s*rbLookups.push\s*\((\s*\{\s*lookup\:\s*'[^']*'\s*?\,?\s*)(local_key\:\s*'[^']*')\s*?\,?(\s*\})\)\;
10
- $1$2,$3,\n
11
- ***/
12
- export declare function buildRbLookups(rbLookups: LookupTables[], defaultSchema: Schema<any>, default_checked_array?: string[]): any;
13
- export declare function throwErr(err: any, lkp: any, lookupNode: any, newPropertyName?: string): void;
14
3
  export declare function buildTree(current_root: any, schemaTree: any, lookup?: any): any[];
15
4
  export declare function getLeafValueTypes(schemaTree: any, fieldPath: any): any[];
16
5
  export declare function getLeafFormatTypes(schemaTree: any, fieldPath: any): any[];
@@ -36,9 +36,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.mongoCommand = exports.getLeafFormatTypes = exports.getLeafValueTypes = exports.buildTree = exports.throwErr = exports.buildRbLookups = exports.buildRbSchema = exports.getReportLookupSchemas = void 0;
39
+ exports.mongoCommand = exports.getLeafFormatTypes = exports.getLeafValueTypes = exports.buildTree = exports.getReportLookupSchemas = void 0;
40
40
  var index_1 = require("../index");
41
- var mongoose_1 = require("mongoose");
42
41
  var common_1 = require("./common");
43
42
  function getReportLookupSchemas(collection_root) {
44
43
  var lookupTrees = [];
@@ -57,113 +56,6 @@ function getReportLookupSchemas(collection_root) {
57
56
  return lookupTrees;
58
57
  }
59
58
  exports.getReportLookupSchemas = getReportLookupSchemas;
60
- function buildRbSchema(rbSchema) {
61
- Object.keys(rbSchema).forEach(function (key) {
62
- if (rbSchema[key].type === Object) {
63
- rbSchema[key].type = 'Object';
64
- rbSchema[key].rbType = 'Object';
65
- }
66
- else if (rbSchema[key].type === Array) {
67
- rbSchema[key].type = 'Array';
68
- rbSchema[key].rbType = 'Array';
69
- }
70
- else if (rbSchema[key].type === String) {
71
- rbSchema[key].type = 'String';
72
- rbSchema[key].rbType = 'String';
73
- }
74
- else if (rbSchema[key].type === Date) {
75
- rbSchema[key].type = 'Date';
76
- rbSchema[key].rbType = 'Date';
77
- }
78
- else if (rbSchema[key].type === Number) {
79
- rbSchema[key].type = 'Number';
80
- rbSchema[key].rbType = 'Number';
81
- }
82
- else if (rbSchema[key].type === Boolean) {
83
- rbSchema[key].rbType = 'Boolean';
84
- rbSchema[key].type = 'Boolean';
85
- }
86
- });
87
- var schema = new mongoose_1.Schema(rbSchema, {
88
- skipVersioning: true,
89
- versionKey: false,
90
- timestamps: false,
91
- id: false,
92
- _id: false,
93
- });
94
- Object.keys(schema.obj).forEach(function (key) {
95
- delete schema.obj[key].type;
96
- });
97
- return schema.obj;
98
- }
99
- exports.buildRbSchema = buildRbSchema;
100
- /*** ye old regex pairs:
101
- TEMP, PER FILE:
102
- (['\s][^'\s]*id_[^'\s]+'?):\s*{
103
- rbLookups.push({ lookup: 'AAA', local_key: $1 });
104
- \s*rbLookups.push\s*\((\s*\{\s*lookup\:\s*'[^']*'\s*?\,?\s*)(local_key\:\s*'[^']*')\s*?\,?(\s*\})\)\;
105
- $1$2,$3,\n
106
- ***/
107
- function buildRbLookups(rbLookups, defaultSchema, default_checked_array) {
108
- // Remember: lkp.local_key will be removed later on, because it has 'id_'
109
- if (default_checked_array === void 0) { default_checked_array = []; }
110
- var rbSchema = {};
111
- rbLookups.forEach(function (lkp) {
112
- var errString = '';
113
- var localKey, newPropertyName;
114
- var localKeyDir = '';
115
- var localKeyDirDot = '';
116
- var collectionAlias = common_1.toTitleCase(lkp.lookup.replace(/\_/g, ' ')) + ' (' + common_1.toTitleCase(lkp.local_key.replace('id_', '').replace(/\_/g, ' ').replace(/\.\$\./g, ' -> ').replace(/\./g, ' -> ')) + ') (Lookup)';
117
- if (lkp.local_key.match(/\./)) {
118
- localKey = lkp.local_key.replace(/\.\$/g, '');
119
- localKeyDirDot = lkp.local_key.replace(/^(.+\.).*$/, '$1');
120
- localKeyDir = localKeyDirDot.replace(/\.$/, '');
121
- }
122
- else {
123
- // local_key is a root leaf node.
124
- localKey = lkp.local_key;
125
- }
126
- newPropertyName = localKeyDirDot + collectionAlias;
127
- if (!defaultSchema.path(lkp.local_key)) {
128
- errString += '--local_key: \'' + lkp.local_key + '\' MUST be a valid schema path! ';
129
- }
130
- else if (defaultSchema.path(lkp.local_key).instance !== 'String') {
131
- errString += '--local_key: \'' + lkp.local_key + '\' MUST be a String! ';
132
- }
133
- var lookupNode = {
134
- lookup_collection: lkp.lookup,
135
- lookup_collection_alias: collectionAlias,
136
- local_key: localKey,
137
- field_path: localKeyDir,
138
- lookup_as: newPropertyName,
139
- lookup_key: '_id',
140
- type: 'Object',
141
- };
142
- rbSchema[newPropertyName] = lookupNode;
143
- if (errString) {
144
- throwErr(errString, lkp, lookupNode, newPropertyName);
145
- }
146
- });
147
- for (var ii = 0; ii < default_checked_array.length; ii++) {
148
- rbSchema[default_checked_array[ii]] = {};
149
- rbSchema[default_checked_array[ii]]['default_checked'] = true;
150
- Object.assign(rbSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);
151
- }
152
- return rbSchema;
153
- }
154
- exports.buildRbLookups = buildRbLookups;
155
- function throwErr(err, lkp, lookupNode, newPropertyName) {
156
- if (newPropertyName === void 0) { newPropertyName = ''; }
157
- // err could be from a try/throw/catch
158
- console.log('------- ERROR thrown by rbLookups: ');
159
- console.log(err);
160
- console.log('---item: ');
161
- console.log(lkp);
162
- console.log('---Attempted to create rbSchema[\'' + newPropertyName + '\']: ');
163
- console.log(lookupNode);
164
- process.exit(0);
165
- }
166
- exports.throwErr = throwErr;
167
59
  function buildTree(current_root, schemaTree, lookup) {
168
60
  var res = [];
169
61
  Object.keys(schemaTree).filter(function (a) { return a !== '_id' && a !== 'id' && a !== '__v' && !a.startsWith('id_') && a !== 'id' && !a.match(/.*\.id_/); }).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/schema-report-builder.ts"],"names":[],"mappings":"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","file":"schema-report-builder.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { CollectionTree, LookupTables } from '../models/report-builder.model';\nimport { Schema, SchemaTypes } from 'mongoose';\nimport { toTitleCase } from './common';\n\nexport function getReportLookupSchemas(collection_root: string) {\n\tlet lookupTrees: CollectionTree[] = [];\n\tlookupTrees.push({ collection_name: collection_root, tree: ResolveIOServer.getMainDB().model(collection_root)['rbSchema'], is_root: true });\n\tlet schemaObj = ResolveIOServer.getMainDB().model(collection_root)['rbSchema'];\n\tlet modelKeys = Object.keys(schemaObj);\n\tmodelKeys.forEach(field => {\n\t\tif (schemaObj[field].lookup_collection) {\n\t\t\tlet collectionName = schemaObj[field].lookup_collection;\n\t\t\tlet collectionModel = ResolveIOServer.getMainDB().model(collectionName);\n\n\t\t\tif (!lookupTrees.filter(a => a.collection_name === collectionName).length) {\n\t\t\t\tlookupTrees.push({ collection_name: collectionName, tree: collectionModel['rbSchema'], is_root: false });\n\t\t\t}\n\t\t}\n\t});\n\n\treturn lookupTrees;\n}\n\nexport function buildRbSchema(rbSchema: any) {\n\tObject.keys(rbSchema).forEach(key => {\n\t\tif (rbSchema[key].type === Object) {\n\t\t\trbSchema[key].type = 'Object';\n\t\t\trbSchema[key].rbType = 'Object';\n\t\t}\n\t\telse if (rbSchema[key].type === Array) {\n\t\t\trbSchema[key].type = 'Array';\n\t\t\trbSchema[key].rbType = 'Array';\n\t\t}\n\t\telse if (rbSchema[key].type === String) {\n\t\t\trbSchema[key].type = 'String';\n\t\t\trbSchema[key].rbType = 'String';\n\t\t}\n\t\telse if (rbSchema[key].type === Date) {\n\t\t\trbSchema[key].type = 'Date';\n\t\t\trbSchema[key].rbType = 'Date';\n\t\t}\n\t\telse if (rbSchema[key].type === Number) {\n\t\t\trbSchema[key].type = 'Number';\n\t\t\trbSchema[key].rbType = 'Number';\n\t\t}\n\t\telse if (rbSchema[key].type === Boolean) {\n\t\t\trbSchema[key].rbType = 'Boolean';\n\t\t\trbSchema[key].type = 'Boolean';\n\t\t}\n\t});\n\n\tlet schema = new Schema(rbSchema, {\n\t\tskipVersioning: true,\n\t\tversionKey: false,\n\t\ttimestamps: false,\n\t\tid: false,\n\t\t_id: false,\n\t});\n\n\tObject.keys(schema.obj).forEach(key => {\n\t\tdelete schema.obj[key].type;\n\t});\n\n\treturn schema.obj;\n}\n\n/*** ye old regex pairs:\nTEMP, PER FILE:\n(['\\s][^'\\s]*id_[^'\\s]+'?):\\s*{\nrbLookups.push({\tlookup: 'AAA',\tlocal_key: $1 });\n\\s*rbLookups.push\\s*\\((\\s*\\{\\s*lookup\\:\\s*'[^']*'\\s*?\\,?\\s*)(local_key\\:\\s*'[^']*')\\s*?\\,?(\\s*\\})\\)\\;\n$1$2,$3,\\n\n***/\nexport function buildRbLookups(rbLookups: LookupTables[], defaultSchema: Schema<any>, default_checked_array: string[] = []) {\n\t// Remember: lkp.local_key will be removed later on, because it has 'id_'\n\n\tlet rbSchema: any = {};\n\t\n\trbLookups.forEach(lkp => {\n\t\tlet errString = '';\n\t\tlet localKey, newPropertyName;\n\t\tlet localKeyDir = '';\n\t\tlet localKeyDirDot = '';\n\t\tlet collectionAlias = toTitleCase(lkp.lookup.replace(/\\_/g, ' ')) + ' (' + toTitleCase(lkp.local_key.replace('id_', '').replace(/\\_/g, ' ').replace(/\\.\\$\\./g, ' -> ').replace(/\\./g, ' -> ')) + ') (Lookup)';\n\n\t\tif (lkp.local_key.match(/\\./)) {\n\t\t\tlocalKey = lkp.local_key.replace(/\\.\\$/g, '');\n\t\t\tlocalKeyDirDot = lkp.local_key.replace(/^(.+\\.).*$/, '$1');\n\t\t\tlocalKeyDir = localKeyDirDot.replace(/\\.$/, '');\n\t\t}\n\t\telse {\n\t\t\t// local_key is a root leaf node.\n\t\t\tlocalKey = lkp.local_key;\n\t\t}\n\t\tnewPropertyName = localKeyDirDot + collectionAlias;\n\t\tif (!defaultSchema.path(lkp.local_key)) {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a valid schema path! ';\n\t\t}\n\t\telse if ((<any>defaultSchema.path(lkp.local_key)).instance !== 'String') {\n\t\t\terrString += '--local_key: \\'' + lkp.local_key + '\\' MUST be a String! ';\n\t\t}\n\t\tlet lookupNode = {\n\t\t\tlookup_collection: lkp.lookup,\n\t\t\tlookup_collection_alias: collectionAlias,\n\t\t\tlocal_key: localKey,\n\t\t\tfield_path: localKeyDir,\n\t\t\tlookup_as: newPropertyName,\n\t\t\tlookup_key: '_id',\n\t\t\ttype: 'Object',\n\t\t};\n\n\t\trbSchema[newPropertyName] = lookupNode;\n\n\t\tif (errString) {\n\t\t\tthrowErr(errString, lkp, lookupNode, newPropertyName);\n\t\t}\n\t});\n\n\tfor (let ii = 0; ii < default_checked_array.length; ii++) {\n\t\trbSchema[default_checked_array[ii]] = {};\n\t\trbSchema[default_checked_array[ii]]['default_checked'] = true;\n\t\tObject.assign(rbSchema[default_checked_array[ii]], defaultSchema['tree'][default_checked_array[ii]]);\n\t}\n\n\treturn rbSchema;\n}\n\nexport function throwErr(err: any, lkp, lookupNode, newPropertyName = '') {\n\t// err could be from a try/throw/catch\n\tconsole.log('------- ERROR thrown by rbLookups: ');\n\tconsole.log(err);\n\tconsole.log('---item: ');\n\tconsole.log(lkp);\n\tconsole.log('---Attempted to create rbSchema[\\'' + newPropertyName + '\\']: ');\n\tconsole.log(lookupNode);\n\tprocess.exit(0);\n}\n\nexport function buildTree(current_root, schemaTree, lookup?) {\n\tlet res = [];\n\n\tObject.keys(schemaTree).filter(a => a !== '_id' && a !== 'id' && a !== '__v' && !a.startsWith('id_') && a !== 'id' && !a.match(/.*\\.id_/)).forEach(key => {\n\t// Object.keys(schemaTree).filter(a => a !== '__v').forEach(key => {\n\t\tif (!lookup || (lookup && !schemaTree[key].lookup_collection)) {\n\t\t\tlet treeItemSplit = key.split('.');\n\t\t\n\t\t\t// debugger;\n\n\t\t\tif (treeItemSplit.length === 1) {\n\t\t\t\tif (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {\n\t\t\t\t\tres.push({\n\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tfieldName: key,\n\t\t\t\t\t\tfieldType: schemaTree[key].rbType,\n\t\t\t\t\t\tfieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),\n\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\ttext: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\tisLeaf: true,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\tleafValueTypes: getLeafValueTypes(schemaTree[key], key),\n\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\tleafFormatTypes: getLeafFormatTypes(schemaTree[key], key)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tres.push({\n\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tfieldName: key,\n\t\t\t\t\t\tfieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,\n\t\t\t\t\t\tfieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),\n\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\ttext: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\tisLeaf: false,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tres = res.sort((a, b) => a.fieldName.localeCompare(b.fieldName));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet child = null;\n\n\t\t\t\ttreeItemSplit.forEach((layer, index) => {\n\t\t\t\t\tif (!child) {\n\t\t\t\t\t\tchild = res.filter(a => a.fieldName === layer)[0];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (child.children.filter(a => a.fieldName === layer)[0]) {\n\t\t\t\t\t\t\tchild = child.children.filter(a => a.fieldName === layer)[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tchild.children.push({\n\t\t\t\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tfieldName: layer,\n\t\t\t\t\t\t\t\t\tfieldType: schemaTree[key].rbType,\n\t\t\t\t\t\t\t\t\tfieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),\n\t\t\t\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\t\t\t\ttext: toTitleCase(layer.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tvalue: layer,\n\t\t\t\t\t\t\t\t\tisLeaf: true,\n\t\t\t\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\t\t\t\tdepth: index,\n\t\t\t\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\t\t\t\tleafValueTypes: getLeafValueTypes(schemaTree[key], key),\n\t\t\t\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\t\t\t\tleafFormatTypes: getLeafFormatTypes(schemaTree[key], key)\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\tchild.children.push({\n\t\t\t\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tfieldName: layer,\n\t\t\t\t\t\t\t\t\tfieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,\n\t\t\t\t\t\t\t\t\tfieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),\n\t\t\t\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\t\t\t\ttext: toTitleCase(layer.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tvalue: layer,\n\t\t\t\t\t\t\t\t\tisLeaf: false,\n\t\t\t\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\t\t\t\tdepth: index,\n\t\t\t\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\t\t\t\tchildren: []\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tchild.children = child.children.sort((a, b) => a.fieldName.localeCompare(b.fieldName));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\treturn res;\n}\n\nexport function getLeafValueTypes(schemaTree, fieldPath) {\n\tlet leafTypes = [];\n\n\tif (schemaTree.rbType === 'String') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Number') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Average',\n\t\t\t\tvalue: 'Average'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Sum',\n\t\t\t\tvalue: 'Sum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Minimum',\n\t\t\t\tvalue: 'Minimum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Maximum',\n\t\t\t\tvalue: 'Maximum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Boolean') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Date') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Minimum',\n\t\t\t\tvalue: 'Minimum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Maximum',\n\t\t\t\tvalue: 'Maximum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\treturn leafTypes;\n}\n\nexport function getLeafFormatTypes(schemaTree, fieldPath) {\n\tlet leafTypes = [];\n\n\tif (schemaTree.rbType === 'String') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Text',\n\t\t\t\tvalue: 'String'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Number') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Currency',\n\t\t\t\tvalue: 'Currency'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Text',\n\t\t\t\tvalue: 'String'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Boolean') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Boolean (True/False)',\n\t\t\t\tvalue: 'Boolean'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Text (Yes/No)',\n\t\t\t\tvalue: 'String'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Number (1/0)',\n\t\t\t\tvalue: 'Boolean_Number'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Date') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Date (Short Format)',\n\t\t\t\tvalue: 'Date'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Time (Short Format)',\n\t\t\t\tvalue: 'Time'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Date/Time (Short Format)',\n\t\t\t\tvalue: 'DateTime'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Date (Long Format)',\n\t\t\t\tvalue: 'Date_long'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Date/Time (Long Format)',\n\t\t\t\tvalue: 'DateTime_long'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Timestamp (MS since 1970)',\n\t\t\t\tvalue: 'Timestamp'\n\t\t\t}\n\t\t];\n\t}\n\treturn leafTypes;\n}\n\n\n\n\n\nexport async function mongoCommand(commandstr: string, collection: string, field?: any) {\n\tlet tmpObj;\n\ttry {\n\t\t// Count the number of non-empty fields in a given collection:\n\t\tif (commandstr === 'count') {\n\t\t\tlet obj = {\n\t\t\t\tcount: collection,\n\t\t\t\tquery: {}\n\t\t\t};\n\t\t\tobj.query[field] = {$ne: null};\n\t\t\ttmpObj = await ResolveIOServer.getMainDB().db.command(obj);\n\t\t}\n\t\t// Get all distinct values in a given field.\n\t\telse if (commandstr === 'distinct') {\n\t\t\tlet obj = {\n\t\t\t\tdistinct: collection,\n\t\t\t\tquery: {},\n\t\t\t\tkey: field,\n\t\t\t};\n\t\t\ttmpObj = await ResolveIOServer.getMainDB().db.command(obj);\n\t\t}\n\t\telse if (commandstr === 'listIndexes') {\n\t\t\t// tmpObj = await this.mainDb.db[collection].getIndexes();\n\t\t\t// let obj = { 'listIndexes': collection };\n\t\t\t// tmpObj = await this.mainDb.db.getIndexes(obj);\n\t\t}\n\t} catch (err) {\n\t\t// console.log('----------- mongoCommand err: ', err);\n\t\treturn -1;\n\t}\n\tif (tmpObj) {\n\t\treturn tmpObj.values;\n\t}\n}"]}
1
+ {"version":3,"sources":["../../src/util/schema-report-builder.ts"],"names":[],"mappings":"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","file":"schema-report-builder.js","sourcesContent":["import { ResolveIOServer } from '../index';\nimport { CollectionTree } from '../models/report-builder.model';\nimport { toTitleCase } from './common';\n\nexport function getReportLookupSchemas(collection_root: string) {\n\tlet lookupTrees: CollectionTree[] = [];\n\tlookupTrees.push({ collection_name: collection_root, tree: ResolveIOServer.getMainDB().model(collection_root)['rbSchema'], is_root: true });\n\tlet schemaObj = ResolveIOServer.getMainDB().model(collection_root)['rbSchema'];\n\tlet modelKeys = Object.keys(schemaObj);\n\tmodelKeys.forEach(field => {\n\t\tif (schemaObj[field].lookup_collection) {\n\t\t\tlet collectionName = schemaObj[field].lookup_collection;\n\t\t\tlet collectionModel = ResolveIOServer.getMainDB().model(collectionName);\n\n\t\t\tif (!lookupTrees.filter(a => a.collection_name === collectionName).length) {\n\t\t\t\tlookupTrees.push({ collection_name: collectionName, tree: collectionModel['rbSchema'], is_root: false });\n\t\t\t}\n\t\t}\n\t});\n\n\treturn lookupTrees;\n}\n\nexport function buildTree(current_root, schemaTree, lookup?) {\n\tlet res = [];\n\n\tObject.keys(schemaTree).filter(a => a !== '_id' && a !== 'id' && a !== '__v' && !a.startsWith('id_') && a !== 'id' && !a.match(/.*\\.id_/)).forEach(key => {\n\t// Object.keys(schemaTree).filter(a => a !== '__v').forEach(key => {\n\t\tif (!lookup || (lookup && !schemaTree[key].lookup_collection)) {\n\t\t\tlet treeItemSplit = key.split('.');\n\t\t\n\t\t\t// debugger;\n\n\t\t\tif (treeItemSplit.length === 1) {\n\t\t\t\tif (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {\n\t\t\t\t\tres.push({\n\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tfieldName: key,\n\t\t\t\t\t\tfieldType: schemaTree[key].rbType,\n\t\t\t\t\t\tfieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),\n\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\ttext: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\tisLeaf: true,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\tleafValueTypes: getLeafValueTypes(schemaTree[key], key),\n\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\tleafFormatTypes: getLeafFormatTypes(schemaTree[key], key)\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tres.push({\n\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tfieldName: key,\n\t\t\t\t\t\tfieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,\n\t\t\t\t\t\tfieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),\n\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\ttext: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\tisLeaf: false,\n\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\tdepth: 0,\n\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tres = res.sort((a, b) => a.fieldName.localeCompare(b.fieldName));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet child = null;\n\n\t\t\t\ttreeItemSplit.forEach((layer, index) => {\n\t\t\t\t\tif (!child) {\n\t\t\t\t\t\tchild = res.filter(a => a.fieldName === layer)[0];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (child.children.filter(a => a.fieldName === layer)[0]) {\n\t\t\t\t\t\t\tchild = child.children.filter(a => a.fieldName === layer)[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif (schemaTree[key].rbType === 'String' || schemaTree[key].rbType === 'Number' || schemaTree[key].rbType === 'Boolean' || schemaTree[key].rbType === 'Date') {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tchild.children.push({\n\t\t\t\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tfieldName: layer,\n\t\t\t\t\t\t\t\t\tfieldType: schemaTree[key].rbType,\n\t\t\t\t\t\t\t\t\tfieldTypeName: schemaTree[key].rbType === 'String' ? 'Text' : (schemaTree[key].rbType === 'Boolean' ? 'T/F' : schemaTree[key].rbType),\n\t\t\t\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\t\t\t\ttext: toTitleCase(layer.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tvalue: layer,\n\t\t\t\t\t\t\t\t\tisLeaf: true,\n\t\t\t\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\t\t\t\tdepth: index,\n\t\t\t\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\t\t\t\tleafValueTypes: getLeafValueTypes(schemaTree[key], key),\n\t\t\t\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\t\t\t\tleafFormatTypes: getLeafFormatTypes(schemaTree[key], key)\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\tchild.children.push({\n\t\t\t\t\t\t\t\t\tcollection_name: current_root,\n\t\t\t\t\t\t\t\t\tcolumnName: toTitleCase(key.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tfieldName: layer,\n\t\t\t\t\t\t\t\t\tfieldType: schemaTree[key].lookup_collection ? 'Lookup' : schemaTree[key].rbType,\n\t\t\t\t\t\t\t\t\tfieldTypeName: schemaTree[key].lookup_collection ? 'Lookup' : (schemaTree[key].rbType === 'Array' ? 'List' : 'Group'),\n\t\t\t\t\t\t\t\t\tdistinctFieldValues: [],\n\t\t\t\t\t\t\t\t\tfieldPath: lookup ? lookup.lookup_as + '.$.' + key : key,\n\t\t\t\t\t\t\t\t\tfieldPathName: lookup ? (toTitleCase(lookup.lookup_as.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) + ' (List) -> ' + (toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> '))) : toTitleCase(key.replace(/\\.\\$\\./g, ' (List) -> ').replace(/\\./g, ' (Group) -> ')),\n\t\t\t\t\t\t\t\t\tlookup_collection: lookup ? lookup.lookup_collection : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_collection : ''),\n\t\t\t\t\t\t\t\t\tlookup_local_key: lookup ? lookup.lookup_local_key : (schemaTree[key].lookup_collection ? schemaTree[key].local_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_foreign_key: lookup ? lookup.lookup_foreign_key : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_key : ''),\n\t\t\t\t\t\t\t\t\tlookup_as: lookup ? lookup.lookup_as : (schemaTree[key].lookup_collection ? schemaTree[key].lookup_as : ''),\n\t\t\t\t\t\t\t\t\ttext: toTitleCase(layer.replace(/\\_/g, ' ')),\n\t\t\t\t\t\t\t\t\tvalue: layer,\n\t\t\t\t\t\t\t\t\tisLeaf: false,\n\t\t\t\t\t\t\t\t\tisActive: false,\n\t\t\t\t\t\t\t\t\tisSelected: false,\n\t\t\t\t\t\t\t\t\tdepth: index,\n\t\t\t\t\t\t\t\t\tleafValueType: '',\n\t\t\t\t\t\t\t\t\tleafFormatType: '',\n\t\t\t\t\t\t\t\t\tchildren: []\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tchild.children = child.children.sort((a, b) => a.fieldName.localeCompare(b.fieldName));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\treturn res;\n}\n\nexport function getLeafValueTypes(schemaTree, fieldPath) {\n\tlet leafTypes = [];\n\n\tif (schemaTree.rbType === 'String') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Number') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Average',\n\t\t\t\tvalue: 'Average'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Sum',\n\t\t\t\tvalue: 'Sum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Minimum',\n\t\t\t\tvalue: 'Minimum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Maximum',\n\t\t\t\tvalue: 'Maximum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Boolean') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Date') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Value',\n\t\t\t\tvalue: 'Value'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Unique',\n\t\t\t\tvalue: 'Unique'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Count',\n\t\t\t\tvalue: 'Count'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Minimum',\n\t\t\t\tvalue: 'Minimum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Maximum',\n\t\t\t\tvalue: 'Maximum'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'First',\n\t\t\t\tvalue: 'First'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'Last',\n\t\t\t\tvalue: 'Last'\n\t\t\t}\n\t\t];\n\t}\n\treturn leafTypes;\n}\n\nexport function getLeafFormatTypes(schemaTree, fieldPath) {\n\tlet leafTypes = [];\n\n\tif (schemaTree.rbType === 'String') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Text',\n\t\t\t\tvalue: 'String'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Number') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Currency',\n\t\t\t\tvalue: 'Currency'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Text',\n\t\t\t\tvalue: 'String'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Boolean') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Boolean (True/False)',\n\t\t\t\tvalue: 'Boolean'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Text (Yes/No)',\n\t\t\t\tvalue: 'String'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Number (1/0)',\n\t\t\t\tvalue: 'Boolean_Number'\n\t\t\t}\n\t\t];\n\t}\n\telse if (schemaTree.rbType === 'Date') {\n\t\tleafTypes = [\n\t\t\t{\n\t\t\t\ttext: 'As Number',\n\t\t\t\tvalue: 'Number'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Date (Short Format)',\n\t\t\t\tvalue: 'Date'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Time (Short Format)',\n\t\t\t\tvalue: 'Time'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Date/Time (Short Format)',\n\t\t\t\tvalue: 'DateTime'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Date (Long Format)',\n\t\t\t\tvalue: 'Date_long'\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: 'As Date/Time (Long Format)',\n\t\t\t\tvalue: 'DateTime_long'\n\t\t\t}, \n\t\t\t{\n\t\t\t\ttext: 'As Timestamp (MS since 1970)',\n\t\t\t\tvalue: 'Timestamp'\n\t\t\t}\n\t\t];\n\t}\n\treturn leafTypes;\n}\n\n\n\n\n\nexport async function mongoCommand(commandstr: string, collection: string, field?: any) {\n\tlet tmpObj;\n\ttry {\n\t\t// Count the number of non-empty fields in a given collection:\n\t\tif (commandstr === 'count') {\n\t\t\tlet obj = {\n\t\t\t\tcount: collection,\n\t\t\t\tquery: {}\n\t\t\t};\n\t\t\tobj.query[field] = {$ne: null};\n\t\t\ttmpObj = await ResolveIOServer.getMainDB().db.command(obj);\n\t\t}\n\t\t// Get all distinct values in a given field.\n\t\telse if (commandstr === 'distinct') {\n\t\t\tlet obj = {\n\t\t\t\tdistinct: collection,\n\t\t\t\tquery: {},\n\t\t\t\tkey: field,\n\t\t\t};\n\t\t\ttmpObj = await ResolveIOServer.getMainDB().db.command(obj);\n\t\t}\n\t\telse if (commandstr === 'listIndexes') {\n\t\t\t// tmpObj = await this.mainDb.db[collection].getIndexes();\n\t\t\t// let obj = { 'listIndexes': collection };\n\t\t\t// tmpObj = await this.mainDb.db.getIndexes(obj);\n\t\t}\n\t} catch (err) {\n\t\t// console.log('----------- mongoCommand err: ', err);\n\t\treturn -1;\n\t}\n\tif (tmpObj) {\n\t\treturn tmpObj.values;\n\t}\n}"]}