New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

flexmonster-mongo-connector

Package Overview
Dependencies
Maintainers
1
Versions
148
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flexmonster-mongo-connector - npm Package Compare versions

Comparing version 0.0.1-beta to 0.0.2-beta

8

build/parsers/MongoResponseParser.js

@@ -72,6 +72,6 @@ "use strict";

return new Promise((resolve, reject) => {
const fieldName = fieldObject.field;
const fieldQniqueName = fieldObject.uniqueName;
cursor.then((documents) => {
let result = [];
let keyWithoutDots = fieldName.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
let keyWithoutDots = fieldQniqueName.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
documents.forEach((data) => {

@@ -126,3 +126,3 @@ let value = data["_id"][keyWithoutDots];

fields.push({
"field": fieldsFromQuery[i].field
"uniqueName": fieldsFromQuery[i].uniqueName
});

@@ -135,3 +135,3 @@ }

for (let i = 0; i < fieldsFromQuery.length; i++) {
const fieldKey = fieldsFromQuery[i].field;
const fieldKey = fieldsFromQuery[i].uniqueName;
hit.push(this._getNestedObjectValue(fieldKey, document));

@@ -138,0 +138,0 @@ }

@@ -91,3 +91,3 @@ "use strict";

}
stringFieldFilterQuery[fieldName.field] = fieldFilterObject;
stringFieldFilterQuery[fieldName.uniqueName] = fieldFilterObject;
}

@@ -140,3 +140,3 @@ _filterDateField(query, fieldName, dateFieldFilterQuery) {

}
dateFieldFilterQuery[dateFieldFilterUniquName.field] = mongoFilterQuery;
dateFieldFilterQuery[dateFieldFilterUniquName.uniqueName] = mongoFilterQuery;
}

@@ -143,0 +143,0 @@ }

@@ -6,3 +6,2 @@ "use strict";

const MongoPipelineStages_1 = require("../../utils/consts/MongoPipelineStages");
const ClientSideFieldType_1 = require("../../utils/consts/ClientSideFieldType");
class GroupingQueryBuilder {

@@ -22,8 +21,6 @@ constructor() {

fieldValueObject = value.field;
if (fieldValueObject.type != ClientSideFieldType_1.ClientSideFieldType.NUMBER)
continue;
key = SupportedAggregations_1.SupportedAggregations.aggregations[value.func];
keyValueField = fieldValueObject.field.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
key = SupportedAggregations_1.SupportedAggregations.numericFieldAggregations[value.func];
keyValueField = fieldValueObject.uniqueName.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
groupStage[keyValueField + Delimeters_1.Delimeter.FIELD_DELIMETER + value.func] = {};
groupStage[keyValueField + Delimeters_1.Delimeter.FIELD_DELIMETER + value.func][key] = value.func == "count" ? 1 : "$" + fieldValueObject.field;
groupStage[keyValueField + Delimeters_1.Delimeter.FIELD_DELIMETER + value.func][key] = value.func == "count" ? 1 : "$" + fieldValueObject.uniqueName;
}

@@ -47,4 +44,4 @@ }

fieldValueObject = query[i];
key = fieldValueObject.field.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
rowColumnsGroupQuery[key] = "$" + fieldValueObject.field;
key = fieldValueObject.uniqueName.replace(/\./g, Delimeters_1.Delimeter.DOTS_DELIMETER);
rowColumnsGroupQuery[key] = "$" + fieldValueObject.uniqueName;
}

@@ -51,0 +48,0 @@ return rowColumnsGroupQuery;

@@ -16,3 +16,8 @@ "use strict";

fieldValueObject = aggregationQuery["values"][i]["field"];
projection[fieldValueObject.field] = "$" + fieldValueObject.field;
if (fieldValueObject.type == ClientSideFieldType_1.ClientSideFieldType.DATE) {
this._buildProjectionForDateField(fieldValueObject, projection);
}
else {
projection[fieldValueObject.uniqueName] = "$" + fieldValueObject.uniqueName;
}
}

@@ -37,7 +42,7 @@ }

else {
projectionQuery[filterObject.field] = "$" + filterObject.field;
projectionQuery[filterObject.uniqueName] = "$" + filterObject.uniqueName;
}
if (filterObject.hasOwnProperty("value")) {
const fieldValueObject = filterObject.value.field;
projectionQuery[fieldValueObject.field] = "$" + fieldValueObject.field;
projectionQuery[fieldValueObject.uniqueName] = "$" + fieldValueObject.uniqueName;
}

@@ -53,3 +58,3 @@ }

fieldObject = rowsColumns[i];
fieldReference = "$" + fieldObject.field;
fieldReference = "$" + fieldObject.uniqueName;
if (fieldObject.type == ClientSideFieldType_1.ClientSideFieldType.DATE) {

@@ -59,3 +64,3 @@ this._buildProjectionForDateField(rowsColumns[i], projectionQuery);

else {
projectionQuery[fieldObject.field] = fieldReference;
projectionQuery[fieldObject.uniqueName] = fieldReference;
}

@@ -66,3 +71,3 @@ }

let timestampObject = {};
const fieldUniquename = fieldValueObject.field;
const fieldUniquename = fieldValueObject.uniqueName;
if (fieldValueObject.interval == null) {

@@ -69,0 +74,0 @@ projectionQuery[fieldUniquename] = { "$toLong": "$" + fieldUniquename };

@@ -7,5 +7,5 @@ export interface IRequestArgument {

export interface IRequestField {
field: string;
uniqueName: string;
type: string;
interval?: string;
}

@@ -60,9 +60,15 @@ "use strict";

if (ClientSideFieldType_1.ClientSideFieldType.NUMBER == type) {
shemaObject.aggregations = this._getAggregationList();
shemaObject.aggregations = this._getAggregationList(SupportedAggregations_1.SupportedAggregations.numericFieldAggregations);
}
else if (ClientSideFieldType_1.ClientSideFieldType.DATE == type) {
shemaObject.aggregations = this._getAggregationList(SupportedAggregations_1.SupportedAggregations.dateFieldAggregations);
}
else {
shemaObject.aggregations = this._getAggregationList(SupportedAggregations_1.SupportedAggregations.nonNumericFieldAggregations);
}
return shemaObject;
}
_getAggregationList() {
_getAggregationList(supportedAggregations) {
let aggregations = [];
for (let keys in SupportedAggregations_1.SupportedAggregations.aggregations) {
for (let keys in supportedAggregations) {
aggregations.push(keys.toString());

@@ -69,0 +75,0 @@ }

export declare class SchemaValueObject {
field: string;
uniqueName: string;
type: string;

@@ -8,5 +8,5 @@ caption: string;

aggregations: string[];
constructor(field: string, type: string, caption: string, folder?: string, aggregations?: string[]);
constructor(uniqueName: string, type: string, caption: string, folder?: string, aggregations?: string[]);
static fromObject(obj: any): SchemaValueObject;
toObject(): any;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class SchemaValueObject {
constructor(field, type, caption, folder = "", aggregations = []) {
this.field = "";
constructor(uniqueName, type, caption, folder = "", aggregations = []) {
this.uniqueName = "";
this.type = "";
this.caption = "";
this.interval = null;
this.field = field;
this.uniqueName = uniqueName;
this.type = type;

@@ -16,3 +16,3 @@ this.caption = caption;

static fromObject(obj) {
let field = "";
let uniqueName = "";
let type = "";

@@ -22,4 +22,4 @@ let caption = "";

let aggregations = [];
if (obj.hasOwnProject("field")) {
field = obj["field"];
if (obj.hasOwnProject("uniqueName")) {
uniqueName = obj["uniqueName"];
}

@@ -38,7 +38,7 @@ if (obj.hasOwnProject("type")) {

}
return new SchemaValueObject(field, type, caption, folder, aggregations);
return new SchemaValueObject(uniqueName, type, caption, folder, aggregations);
}
toObject() {
let resultObject = {
"field": this.field,
"uniqueName": this.uniqueName,
"type": this.type,

@@ -50,5 +50,2 @@ "caption": this.caption

}
if (this.interval != null) {
resultObject["interval"] = this.interval;
}
if (this.aggregations.length > 0) {

@@ -55,0 +52,0 @@ resultObject["aggregations"] = this.aggregations;

export declare class SupportedAggregations {
static aggregations: any;
static numericFieldAggregations: any;
static dateFieldAggregations: any;
static nonNumericFieldAggregations: any;
}

@@ -6,3 +6,3 @@ "use strict";

exports.SupportedAggregations = SupportedAggregations;
SupportedAggregations.aggregations = {
SupportedAggregations.numericFieldAggregations = {
"sum": "$sum",

@@ -16,2 +16,10 @@ "average": "$avg",

};
SupportedAggregations.dateFieldAggregations = {
"count": "$sum",
"min": "$min",
"max": "$max"
};
SupportedAggregations.nonNumericFieldAggregations = {
"count": "$sum"
};
//# sourceMappingURL=SupportedAggregations.js.map
{
"name": "flexmonster-mongo-connector",
"version": "0.0.1-beta",
"version": "0.0.2-beta",
"description": "Custom data source API implementation for MongoDB",

@@ -5,0 +5,0 @@ "main": "build/index.js",

@@ -70,6 +70,6 @@ import {SchemaBuilder} from '../schema/SchemaBuilder';

return new Promise((resolve, reject) => {
const fieldName: string = fieldObject.field;
const fieldQniqueName: string = fieldObject.uniqueName;
cursor.then((documents: any) => {
let result: any[] = [];
let keyWithoutDots: string = fieldName.replace(/\./g, Delimeter.DOTS_DELIMETER);
let keyWithoutDots: string = fieldQniqueName.replace(/\./g, Delimeter.DOTS_DELIMETER);
documents.forEach((data: any) => {

@@ -125,3 +125,3 @@ let value = data["_id"][keyWithoutDots];

fields.push({
"field": fieldsFromQuery[i].field
"uniqueName": fieldsFromQuery[i].uniqueName
});

@@ -135,3 +135,3 @@ }

for (let i = 0; i < fieldsFromQuery.length; i++) {
const fieldKey: string = fieldsFromQuery[i].field;
const fieldKey: string = fieldsFromQuery[i].uniqueName;
hit.push(this._getNestedObjectValue(fieldKey, document));

@@ -138,0 +138,0 @@ }

@@ -84,3 +84,3 @@ import {ClientSideFieldType} from '../../utils/consts/ClientSideFieldType';

stringFieldFilterQuery[fieldName.field] = fieldFilterObject;
stringFieldFilterQuery[fieldName.uniqueName] = fieldFilterObject;
}

@@ -129,5 +129,5 @@

dateFieldFilterQuery[dateFieldFilterUniquName.field] = mongoFilterQuery;
dateFieldFilterQuery[dateFieldFilterUniquName.uniqueName] = mongoFilterQuery;
}
}

@@ -24,7 +24,6 @@ import {SupportedAggregations} from '../../utils/consts/SupportedAggregations';

fieldValueObject = value.field;
if (fieldValueObject.type != ClientSideFieldType.NUMBER) continue;
key = SupportedAggregations.aggregations[value.func];
keyValueField = fieldValueObject.field.replace(/\./g, Delimeter.DOTS_DELIMETER);
key = SupportedAggregations.numericFieldAggregations[value.func];
keyValueField = fieldValueObject.uniqueName.replace(/\./g, Delimeter.DOTS_DELIMETER);
groupStage[keyValueField + Delimeter.FIELD_DELIMETER + value.func] = {};
groupStage[keyValueField + Delimeter.FIELD_DELIMETER + value.func][key] = value.func == "count" ? 1 : "$" + fieldValueObject.field;
groupStage[keyValueField + Delimeter.FIELD_DELIMETER + value.func][key] = value.func == "count" ? 1 : "$" + fieldValueObject.uniqueName;
}

@@ -49,4 +48,4 @@ }

fieldValueObject = query[i];
key = fieldValueObject.field.replace(/\./g, Delimeter.DOTS_DELIMETER);
rowColumnsGroupQuery[key] = "$" + fieldValueObject.field;
key = fieldValueObject.uniqueName.replace(/\./g, Delimeter.DOTS_DELIMETER);
rowColumnsGroupQuery[key] = "$" + fieldValueObject.uniqueName;
}

@@ -53,0 +52,0 @@ return rowColumnsGroupQuery;

@@ -19,3 +19,7 @@ import {ClientSideFieldType} from '../../utils/consts/ClientSideFieldType';

fieldValueObject = aggregationQuery["values"][i]["field"];
projection[fieldValueObject.field] = "$" + fieldValueObject.field;
if (fieldValueObject.type == ClientSideFieldType.DATE) {
this._buildProjectionForDateField(fieldValueObject, projection);
} else {
projection[fieldValueObject.uniqueName] = "$" + fieldValueObject.uniqueName;
}
}

@@ -39,3 +43,3 @@ }

} else {
projectionQuery[filterObject.field] = "$" + filterObject.field;
projectionQuery[filterObject.uniqueName] = "$" + filterObject.uniqueName;
}

@@ -45,3 +49,3 @@

const fieldValueObject: IRequestField = filterObject.value.field;
projectionQuery[fieldValueObject.field] = "$" + fieldValueObject.field;
projectionQuery[fieldValueObject.uniqueName] = "$" + fieldValueObject.uniqueName;
}

@@ -57,7 +61,7 @@ }

fieldObject = rowsColumns[i]
fieldReference = "$" + fieldObject.field;
fieldReference = "$" + fieldObject.uniqueName;
if (fieldObject.type == ClientSideFieldType.DATE) {
this._buildProjectionForDateField(rowsColumns[i], projectionQuery);
} else {
projectionQuery[fieldObject.field] = fieldReference;
projectionQuery[fieldObject.uniqueName] = fieldReference;
}

@@ -69,3 +73,3 @@ }

let timestampObject: any = {};
const fieldUniquename: string = fieldValueObject.field;
const fieldUniquename: string = fieldValueObject.uniqueName;
if (fieldValueObject.interval == null) {

@@ -72,0 +76,0 @@ projectionQuery[fieldUniquename] = {"$toLong": "$" + fieldUniquename};

@@ -11,5 +11,5 @@ export interface IRequestArgument {

export interface IRequestField {
field: string,
uniqueName: string,
type: string,
interval?: string
}

@@ -62,3 +62,7 @@ import {APISchema} from './APISchema';

if (ClientSideFieldType.NUMBER == type) {
shemaObject.aggregations = this._getAggregationList();
shemaObject.aggregations = this._getAggregationList(SupportedAggregations.numericFieldAggregations);
} else if (ClientSideFieldType.DATE == type) {
shemaObject.aggregations = this._getAggregationList(SupportedAggregations.dateFieldAggregations);
} else {
shemaObject.aggregations = this._getAggregationList(SupportedAggregations.nonNumericFieldAggregations);
}

@@ -68,5 +72,5 @@ return shemaObject;

private _getAggregationList() {
private _getAggregationList(supportedAggregations: any) {
let aggregations = [];
for (let keys in SupportedAggregations.aggregations) {
for (let keys in supportedAggregations) {
aggregations.push(keys.toString());

@@ -73,0 +77,0 @@ }

/**
* @class
* @property {string} field The uniquename of the field
* @property {string} uniqueName The uniquename of the field
* @property {string} type The type of the field

@@ -12,3 +12,3 @@ * @property {string} caption The caption of the field

public field = "";
public uniqueName = "";
public type = "";

@@ -20,4 +20,4 @@ public caption = "";

constructor(field: string, type: string, caption: string, folder: string = "", aggregations: string[] = []) {
this.field = field;
constructor(uniqueName: string, type: string, caption: string, folder: string = "", aggregations: string[] = []) {
this.uniqueName = uniqueName;
this.type = type;

@@ -30,3 +30,3 @@ this.caption = caption;

public static fromObject(obj: any) {
let field = "";
let uniqueName = "";
let type = "";

@@ -36,4 +36,4 @@ let caption = "";

let aggregations = [];
if (obj.hasOwnProject("field")) {
field = obj["field"];
if (obj.hasOwnProject("uniqueName")) {
uniqueName = obj["uniqueName"];
}

@@ -52,3 +52,3 @@ if (obj.hasOwnProject("type")) {

}
return new SchemaValueObject(field, type, caption, folder, aggregations);
return new SchemaValueObject(uniqueName, type, caption, folder, aggregations);
}

@@ -58,3 +58,3 @@

let resultObject: any = {
"field": this.field,
"uniqueName": this.uniqueName,
"type": this.type,

@@ -66,5 +66,5 @@ "caption": this.caption

}
if (this.interval != null) {
resultObject["interval"] = this.interval;
}
// if (this.interval != null) {
// resultObject["interval"] = this.interval;
// }
if (this.aggregations.length > 0) {

@@ -71,0 +71,0 @@ resultObject["aggregations"] = this.aggregations;

export class SupportedAggregations {
static aggregations: any = {
static numericFieldAggregations: any = {
"sum": "$sum",

@@ -12,2 +12,12 @@ "average": "$avg",

}
static dateFieldAggregations: any = {
"count": "$sum",
"min": "$min",
"max": "$max"
}
static nonNumericFieldAggregations: any = {
"count": "$sum"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc