@oneuptime/common 7.0.2976 → 7.0.2986
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.ts +8 -7
- package/Models/DatabaseModels/Monitor.ts +36 -0
- package/Server/API/BaseAnalyticsAPI.ts +2 -6
- package/Server/Infrastructure/Postgres/SchemaMigrations/1724078044172-MigrationName.ts +23 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AnalyticsDatabaseService.ts +2 -2
- package/Server/Services/DatabaseService.ts +2 -2
- package/Server/Services/MonitorService.ts +9 -0
- package/Server/Services/ProjectService.ts +16 -2
- package/Server/Services/StatusPageHeaderLinkService.ts +1 -1
- package/Server/Types/AnalyticsDatabase/QueryHelper.ts +8 -7
- package/Server/Types/Database/Query.ts +6 -20
- package/Server/Types/Database/QueryHelper.ts +59 -42
- package/Server/Types/Database/QueryUtil.ts +8 -7
- package/Server/Types/Workflow/Components/Conditions/IfElse.ts +17 -5
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +1 -1
- package/Tests/Types/Database/CompareBase.test.ts +6 -6
- package/Tests/Types/Database/Date.test.ts +1 -1
- package/Tests/Types/Database/EqualToOrNull.test.ts +14 -8
- package/Tests/Types/Database/InBetween.test.ts +8 -8
- package/Tests/Types/Database/NotEqual.test.ts +2 -2
- package/Types/BaseDatabase/AggregateBy.ts +1 -1
- package/Types/BaseDatabase/EqualToOrNull.ts +12 -16
- package/Types/BaseDatabase/GreaterThan.ts +8 -6
- package/Types/BaseDatabase/GreaterThanOrEqual.ts +10 -6
- package/Types/BaseDatabase/InBetween.ts +21 -23
- package/Types/BaseDatabase/Includes.ts +2 -2
- package/Types/BaseDatabase/IsNull.ts +3 -2
- package/Types/BaseDatabase/LessThan.ts +8 -6
- package/Types/BaseDatabase/LessThanOrEqual.ts +10 -6
- package/Types/BaseDatabase/NotEqual.ts +10 -17
- package/Types/BaseDatabase/NotNull.ts +3 -2
- package/Types/BaseDatabase/Query.ts +17 -6
- package/Types/BaseDatabase/QueryOperator.ts +11 -0
- package/Types/BaseDatabase/Search.ts +12 -10
- package/Types/BrandColors.ts +8 -0
- package/Types/Database/CompareBase.ts +10 -6
- package/Types/Database/Date.ts +1 -1
- package/Types/Date.ts +3 -1
- package/Types/Domain.ts +1 -1
- package/Types/JSON.ts +17 -16
- package/Types/JSONFunctions.ts +3 -2
- package/Types/Workflow/Components/Condition.ts +15 -1
- package/UI/Components/Charts/Line/LineChart.tsx +2 -2
- package/UI/Components/Date/StartAndEndDate.tsx +6 -8
- package/UI/Components/Filters/DateFilter.tsx +6 -3
- package/UI/Components/Filters/FilterViewer.tsx +3 -1
- package/UI/Components/Filters/JSONFilter.tsx +4 -1
- package/UI/Components/Filters/Types/FilterData.ts +1 -1
- package/UI/Components/HeaderAlert/HeaderModelAlert.tsx +1 -1
- package/UI/Components/ModelFilter/Filter.ts +1 -1
- package/UI/Components/ModelList/ModelList.tsx +1 -1
- package/UI/Components/ModelListModal/ModelListModal.tsx +1 -1
- package/UI/Components/ModelProgress/ModelProgress.tsx +1 -1
- package/UI/Components/ModelTable/AnalyticsModelTable.tsx +1 -1
- package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
- package/UI/Components/ModelTable/ModelTable.tsx +1 -1
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +1 -1
- package/UI/Components/Workflow/Utils.ts +23 -6
- package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +1 -1
- package/UI/Utils/ModelAPI/ModelAPI.ts +1 -1
- package/UI/Utils/Realtime.ts +1 -1
- package/Utils/CronTime.ts +1 -0
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +36 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724078044172-MigrationName.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1724078044172-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +2 -2
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +7 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +15 -2
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageHeaderLinkService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/QueryHelper.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js +18 -3
- package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Tests/Types/Database/CompareBase.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/InBetween.test.js.map +1 -1
- package/build/dist/Tests/Types/Database/NotEqual.test.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js +4 -10
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/GreaterThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/InBetween.js +2 -2
- package/build/dist/Types/BaseDatabase/InBetween.js.map +1 -1
- package/build/dist/Types/BaseDatabase/Includes.js +2 -2
- package/build/dist/Types/BaseDatabase/Includes.js.map +1 -1
- package/build/dist/Types/BaseDatabase/IsNull.js +2 -2
- package/build/dist/Types/BaseDatabase/IsNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThan.js.map +1 -1
- package/build/dist/Types/BaseDatabase/LessThanOrEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js +4 -11
- package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotNull.js +2 -2
- package/build/dist/Types/BaseDatabase/NotNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/QueryOperator.js +7 -0
- package/build/dist/Types/BaseDatabase/QueryOperator.js.map +1 -0
- package/build/dist/Types/BaseDatabase/Search.js +2 -2
- package/build/dist/Types/BaseDatabase/Search.js.map +1 -1
- package/build/dist/Types/BrandColors.js +7 -0
- package/build/dist/Types/BrandColors.js.map +1 -1
- package/build/dist/Types/Database/CompareBase.js +2 -2
- package/build/dist/Types/Database/CompareBase.js.map +1 -1
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Domain.js +1 -1
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/JSON.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Condition.js +14 -1
- package/build/dist/Types/Workflow/Components/Condition.js.map +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js +2 -2
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
- package/build/dist/UI/Components/Filters/DateFilter.js.map +1 -1
- package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
- package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
- package/build/dist/UI/Components/Workflow/Utils.js +23 -6
- package/build/dist/UI/Components/Workflow/Utils.js.map +1 -1
- package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/Realtime.js.map +1 -1
- package/build/dist/Utils/CronTime.js +1 -0
- package/build/dist/Utils/CronTime.js.map +1 -1
- package/package.json +2 -2
- package/UI/Utils/BaseDatabase/Query.ts +0 -25
- package/build/dist/UI/Utils/BaseDatabase/Query.js +0 -2
- package/build/dist/UI/Utils/BaseDatabase/Query.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import GenericObject from "../GenericObject";
|
|
2
|
+
import { JSONObject } from "../JSON";
|
|
3
|
+
import SerializableObject from "../SerializableObject";
|
|
4
|
+
|
|
5
|
+
export default class QueryOperator<
|
|
6
|
+
T extends GenericObject,
|
|
7
|
+
> extends SerializableObject {
|
|
8
|
+
public override fromJSON(json: JSONObject): QueryOperator<T> {
|
|
9
|
+
return SerializableObject.fromJSON(json) as QueryOperator<T>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
import BadDataException from "../Exception/BadDataException";
|
|
2
2
|
import { JSONObject, ObjectType } from "../JSON";
|
|
3
|
-
import
|
|
3
|
+
import QueryOperator from "./QueryOperator";
|
|
4
4
|
|
|
5
|
-
export default class Search extends
|
|
6
|
-
private _searchValue!:
|
|
5
|
+
export default class Search<T extends string> extends QueryOperator<T> {
|
|
6
|
+
private _searchValue!: T;
|
|
7
7
|
|
|
8
|
-
public get value():
|
|
8
|
+
public get value(): T {
|
|
9
9
|
return this._searchValue;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
public set value(v:
|
|
12
|
+
public set value(v: T) {
|
|
13
13
|
this._searchValue = v;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
public constructor(value:
|
|
16
|
+
public constructor(value: T) {
|
|
17
17
|
super();
|
|
18
18
|
this.value = value;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
public override toString():
|
|
21
|
+
public override toString(): T {
|
|
22
22
|
return this.value;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
public override toJSON(): JSONObject {
|
|
26
26
|
return {
|
|
27
27
|
_type: ObjectType.Search,
|
|
28
|
-
value: (this as Search).toString(),
|
|
28
|
+
value: (this as Search<T>).toString(),
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
public static override fromJSON
|
|
32
|
+
public static override fromJSON<T extends string>(
|
|
33
|
+
json: JSONObject,
|
|
34
|
+
): Search<T> {
|
|
33
35
|
if (json["_type"] === ObjectType.Search) {
|
|
34
|
-
return new Search((json["value"] as
|
|
36
|
+
return new Search<T>((json["value"] as T) || ("" as T));
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
throw new BadDataException("Invalid JSON: " + JSON.stringify(json));
|
package/Types/BrandColors.ts
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import QueryOperator from "../BaseDatabase/QueryOperator";
|
|
1
2
|
import BadDataException from "../Exception/BadDataException";
|
|
2
|
-
import SerializableObject from "../SerializableObject";
|
|
3
3
|
import Typeof from "../Typeof";
|
|
4
4
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export type CompareType = number | Date | string;
|
|
6
|
+
|
|
7
|
+
export default class CompareBase<
|
|
8
|
+
T extends CompareType,
|
|
9
|
+
> extends QueryOperator<T> {
|
|
10
|
+
private _value!: T;
|
|
11
|
+
public get value(): T {
|
|
8
12
|
return this._value;
|
|
9
13
|
}
|
|
10
|
-
public set value(v:
|
|
14
|
+
public set value(v: T) {
|
|
11
15
|
this._value = v;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
|
-
public constructor(value:
|
|
18
|
+
public constructor(value: T) {
|
|
15
19
|
super();
|
|
16
20
|
this.value = value;
|
|
17
21
|
}
|
package/Types/Database/Date.ts
CHANGED
|
@@ -4,7 +4,7 @@ import OneUptimeDate from "../Date";
|
|
|
4
4
|
export default class DatabaseDate {
|
|
5
5
|
public static asDateStartOfTheDayEndOfTheDayForDatabaseQuery(
|
|
6
6
|
date: string | Date,
|
|
7
|
-
): InBetween {
|
|
7
|
+
): InBetween<string> {
|
|
8
8
|
let startValue: string | Date = date;
|
|
9
9
|
|
|
10
10
|
if (!(startValue instanceof Date)) {
|
package/Types/Date.ts
CHANGED
|
@@ -1127,7 +1127,9 @@ export default class OneUptimeDate {
|
|
|
1127
1127
|
return moment(date).local().format(formatstring);
|
|
1128
1128
|
}
|
|
1129
1129
|
|
|
1130
|
-
public static asFilterDateForDatabaseQuery(
|
|
1130
|
+
public static asFilterDateForDatabaseQuery(
|
|
1131
|
+
date: string | Date,
|
|
1132
|
+
): InBetween<Date> {
|
|
1131
1133
|
date = this.fromString(date);
|
|
1132
1134
|
const formattedDate: Date = moment(date).toDate();
|
|
1133
1135
|
return new InBetween(
|
package/Types/Domain.ts
CHANGED
|
@@ -26,7 +26,7 @@ export default class Domain extends DatabaseProperty {
|
|
|
26
26
|
"|",
|
|
27
27
|
);
|
|
28
28
|
const secondTLDs: Array<string> =
|
|
29
|
-
"ac|academy|accountant|accountants|actor|adult|aero|ag|agency|ai|airforce|am|amsterdam|apartments|app|archi|army|art|asia|associates|at|attorney|au|auction|auto|autos|baby|band|bar|barcelona|bargains|basketball|bayern|be|beauty|beer|berlin|best|bet|bid|bike|bingo|bio|biz|biz.pl|black|blog|blue|boats|boston|boutique|broker|build|builders|business|buzz|bz|ca|cab|cafe|camera|camp|capital|car|cards|care|careers|cars|casa|cash|casino|catering|cc|center|ceo|ch|charity|chat|cheap|church|city|cl|claims|cleaning|clinic|clothing|cloud|club|cn|co|co.in|co.jp|co.kr|co.nz|co.uk|co.za|coach|codes|coffee|college|com|com.ag|com.au|com.br|com.bz|com.cn|com.co|com.es|com.ky|com.mx|com.pe|com.ph|com.pl|com.ru|com.tw|community|company|computer|condos|construction|consulting|contact|contractors|cooking|cool|country|coupons|courses|credit|creditcard|cricket|cruises|cymru|cz|dance|date|dating|de|deals|degree|delivery|democrat|dental|dentist|design|dev|diamonds|digital|direct|directory|discount|dk|doctor|dog|domains|download|earth|education|email|energy|engineer|engineering|enterprises|equipment|es|estate|eu|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|film|finance|financial|firm.in|fish|fishing|fit|fitness|flights|florist|fm|football|forsale|foundation|fr|fun|fund|furniture|futbol|fyi|gallery|games|garden|gay|gen.in|gg|gifts|gives|giving|glass|global|gmbh|gold|golf|graphics|gratis|green|gripe|group|gs|guide|guru|hair|haus|health|healthcare|hockey|holdings|holiday|homes|horse|hospital|host|house|idv.tw|immo|immobilien|in|inc|ind.in|industries|info|info.pl|ink|institute|insure|international|investments|io|irish|ist|istanbul|it|jetzt|jewelry|jobs|jp|kaufen|kids|kim|kitchen|kiwi|kr|ky|la|land|lat|law|lawyer|lease|legal|lgbt|life|lighting|limited|limo|live|llc|llp|loan|loans|london|love|ltd|ltda|luxury|maison|makeup|management|market|marketing|mba|me|me.uk|media|melbourne|memorial|men|menu|miami|mobi|moda|moe|money|monster|mortgage|motorcycles|movie|ms|music|mx|nagoya|name|navy|ne.kr|net|net.ag|net.au|net.br|net.bz|net.cn|net.co|net.in|net.ky|net.nz|net.pe|net.ph|net.pl|net.ru|network|news|ninja|nl|no|nom.co|nom.es|nom.pe|nrw|nyc|okinawa|one|onl|online|org|org.ag|org.au|org.cn|org.es|org.in|org.ky|org.nz|org.pe|org.ph|org.pl|org.ru|org.uk|organic|page|paris|partners|parts|party|pe|pet|ph|photography|photos|pictures|pink|pizza|pl|place|plumbing|plus|poker|porn|press|pro|productions|promo|properties|protection|pub|pw|quebec|quest|racing|re.kr|realestate|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rich|rip|rocks|rodeo|rugby|run|ryukyu|sale|salon|sarl|school|schule|science|se|security|services|sex|sg|sh|shiksha|shoes|shop|shopping|show|singles|site|ski|skin|soccer|social|software|solar|solutions|space|storage|store|stream|studio|study|style|supplies|supply|support|surf|surgery|sydney|systems|tax|taxi|team|tech|technology|tel|tennis|theater|theatre|tickets|tienda|tips|tires|today|tokyo|tools|tours|town|toys|trade|trading|training|travel|tube|tv|tw|uk|university|uno|us|vacations|vc|vegas|ventures|vet|viajes|video|villas|vin|vip|vision|vodka|vote|voto|voyage|wales|watch|web|webcam|website|wedding|wiki|win|wine|work|works|world|ws|wtf|xxx|xyz|yachts|yoga|yokohama|zone|移动|dev|com|edu|gov|net|mil|org|nom|sch|sbs|caa|res|off|gob|int|tur|ip6|uri|urn|asn|act|nsw|qld|tas|vic|pro|biz|adm|adv|agr|arq|art|ato|bio|bmd|cim|cng|cnt|ecn|eco|emp|eng|esp|etc|eti|far|fnd|fot|fst|g12|ggf|imb|ind|inf|jor|jus|leg|lel|mat|med|mus|not|ntr|odo|ppg|psc|psi|qsl|rec|slg|srv|teo|tmp|trd|vet|zlg|web|ltd|sld|pol|fin|k12|lib|pri|aip|fie|eun|sci|prd|cci|pvt|mod|idv|rel|sex|gen|nic|abr|bas|cal|cam|emr|fvg|laz|lig|lom|mar|mol|pmn|pug|sar|sic|taa|tos|umb|vao|vda|ven|mie|北海道|和歌山|神奈川|鹿児島|ass|rep|tra|per|ngo|soc|grp|plc|its|air|and|bus|can|ddr|jfk|mad|nrw|nyc|ski|spy|tcm|ulm|usa|war|fhs|vgs|dep|eid|fet|fla|flå|gol|hof|hol|sel|vik|cri|iwi|ing|abo|fam|gok|gon|gop|gos|aid|atm|gsm|sos|elk|waw|est|aca|bar|cpa|jur|law|sec|plo|www|bir|cbg|jar|khv|msk|nov|nsk|ptz|rnd|spb|stv|tom|tsk|udm|vrn|cmw|kms|nkz|snz|pub|fhv|red|ens|nat|rns|rnu|bbs|tel|bel|kep|nhs|dni|fed|isa|nsn|gub|e12|tec|орг|обр|упр|alt|nis|jpn|mex|ath|iki|nid|gda|inc|za|ovh|lol".split(
|
|
29
|
+
"ac|academy|accountant|accountants|actor|adult|aero|ag|agency|ai|airforce|am|amsterdam|apartments|app|archi|army|art|asia|associates|at|attorney|au|auction|auto|autos|baby|band|bar|barcelona|bargains|basketball|bayern|be|beauty|beer|berlin|best|bet|bid|bike|bingo|bio|biz|biz.pl|black|blog|blue|boats|boston|boutique|broker|build|builders|business|buzz|bz|ca|cab|cafe|camera|camp|capital|car|cards|care|careers|cars|casa|cash|casino|catering|cc|center|ceo|ch|charity|chat|cheap|church|city|cl|claims|cleaning|clinic|clothing|cloud|club|cn|co|co.in|co.jp|co.kr|co.nz|co.uk|co.za|coach|codes|coffee|college|com|com.ag|com.au|com.br|com.bz|com.cn|com.co|com.es|com.ky|com.mx|com.pe|com.ph|com.pl|com.ru|com.tw|community|company|computer|condos|construction|consulting|contact|contractors|cooking|cool|country|coupons|courses|credit|creditcard|cricket|cruises|cymru|cz|dance|date|dating|de|deals|degree|delivery|democrat|dental|dentist|design|dev|diamonds|digital|direct|directory|discount|dk|doctor|dog|domains|download|earth|education|email|energy|engineer|engineering|enterprises|equipment|es|estate|eu|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|film|finance|financial|firm.in|fish|fishing|fit|fitness|flights|florist|fm|football|forsale|foundation|fr|fun|fund|furniture|futbol|fyi|gallery|games|garden|gay|gen.in|gg|gifts|gives|giving|glass|global|gmbh|gold|golf|graphics|gratis|green|gripe|group|gs|guide|guru|hair|haus|health|healthcare|hockey|holdings|holiday|homes|horse|hospital|host|house|idv.tw|immo|immobilien|in|inc|ind.in|industries|info|info.pl|ink|institute|insure|international|investments|io|irish|ist|istanbul|it|jetzt|jewelry|jobs|jp|kaufen|kids|kim|kitchen|kiwi|kr|ky|la|land|lat|law|lawyer|lease|legal|lgbt|life|lighting|limited|limo|live|llc|llp|loan|loans|london|love|ltd|ltda|luxury|maison|makeup|management|market|marketing|mba|me|me.uk|media|melbourne|memorial|men|menu|miami|mobi|moda|moe|money|monster|mortgage|motorcycles|movie|ms|music|mx|nagoya|name|navy|ne.kr|net|net.ag|net.au|net.br|net.bz|net.cn|net.co|net.in|net.ky|net.nz|net.pe|net.ph|net.pl|net.ru|network|news|ninja|nl|no|nom.co|nom.es|nom.pe|nrw|nyc|okinawa|one|onl|online|org|org.ag|org.au|org.cn|org.es|org.in|org.ky|org.nz|org.pe|org.ph|org.pl|org.ru|org.uk|organic|page|paris|partners|parts|party|pe|pet|ph|photography|photos|pictures|pink|pizza|pl|place|plumbing|plus|poker|porn|press|pro|productions|promo|properties|protection|pub|pw|quebec|quest|racing|re.kr|realestate|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rich|rip|rocks|rodeo|rugby|run|ryukyu|sale|salon|sarl|school|schule|science|se|security|services|sex|sg|sh|shiksha|shoes|shop|shopping|show|singles|site|ski|skin|soccer|social|software|solar|solutions|space|storage|store|stream|studio|study|style|supplies|supply|support|surf|surgery|sydney|systems|tax|taxi|team|tech|technology|tel|tennis|theater|theatre|tickets|tienda|tips|tires|today|tokyo|tools|tours|town|toys|trade|trading|training|travel|tube|tv|tw|uk|university|uno|us|vacations|vc|vegas|ventures|vet|viajes|video|villas|vin|vip|vision|vodka|vote|voto|voyage|wales|watch|web|webcam|website|wedding|wiki|win|wine|work|works|world|ws|wtf|xxx|xyz|yachts|yoga|yokohama|zone|移动|dev|com|edu|gov|net|mil|org|nom|sch|sbs|caa|res|off|gob|int|tur|ip6|uri|urn|asn|act|nsw|qld|tas|vic|pro|biz|adm|adv|agr|arq|art|ato|bio|bmd|cim|cng|cnt|ecn|eco|emp|eng|esp|etc|eti|far|fnd|fot|fst|g12|ggf|imb|ind|inf|jor|jus|leg|lel|mat|med|mus|not|ntr|odo|ppg|psc|psi|qsl|rec|slg|srv|teo|tmp|trd|vet|zlg|web|ltd|sld|pol|fin|k12|lib|pri|aip|fie|eun|sci|prd|cci|pvt|mod|idv|rel|sex|gen|nic|abr|bas|cal|cam|emr|fvg|laz|lig|lom|mar|mol|pmn|pug|sar|sic|taa|tos|umb|vao|vda|ven|mie|北海道|和歌山|神奈川|鹿児島|ass|rep|tra|per|ngo|soc|grp|plc|its|air|and|bus|can|ddr|jfk|mad|nrw|nyc|ski|spy|tcm|ulm|usa|war|fhs|vgs|dep|eid|fet|fla|flå|gol|hof|hol|sel|vik|cri|iwi|ing|abo|fam|gok|gon|gop|gos|aid|atm|gsm|sos|elk|waw|est|aca|bar|cpa|jur|law|sec|plo|www|bir|cbg|jar|khv|msk|nov|nsk|ptz|rnd|spb|stv|tom|tsk|udm|vrn|cmw|kms|nkz|snz|pub|fhv|red|ens|nat|rns|rnu|bbs|tel|bel|kep|nhs|dni|fed|isa|nsn|gub|e12|tec|орг|обр|упр|alt|nis|jpn|mex|ath|iki|nid|gda|inc|za|ovh|lol|africa".split(
|
|
30
30
|
"|",
|
|
31
31
|
);
|
|
32
32
|
|
package/Types/JSON.ts
CHANGED
|
@@ -13,6 +13,7 @@ import NotNull from "./BaseDatabase/NotNull";
|
|
|
13
13
|
import Search from "./BaseDatabase/Search";
|
|
14
14
|
import CallRequest from "./Call/CallRequest";
|
|
15
15
|
import Color from "./Color";
|
|
16
|
+
import { CompareType } from "./Database/CompareBase";
|
|
16
17
|
import Domain from "./Domain";
|
|
17
18
|
import Email from "./Email";
|
|
18
19
|
import HashedString from "./HashedString";
|
|
@@ -102,28 +103,28 @@ export type JSONValue =
|
|
|
102
103
|
| Array<CheckOn>
|
|
103
104
|
| FilterType
|
|
104
105
|
| Array<FilterType>
|
|
105
|
-
| Search
|
|
106
|
+
| Search<string>
|
|
106
107
|
| Domain
|
|
107
108
|
| Array<Domain>
|
|
108
|
-
| Array<Search
|
|
109
|
-
| EqualToOrNull
|
|
110
|
-
| Array<EqualToOrNull
|
|
111
|
-
| NotEqual
|
|
112
|
-
| Array<NotEqual
|
|
113
|
-
| GreaterThan
|
|
114
|
-
| Array<GreaterThan
|
|
115
|
-
| GreaterThanOrEqual
|
|
116
|
-
| Array<GreaterThanOrEqual
|
|
109
|
+
| Array<Search<string>>
|
|
110
|
+
| EqualToOrNull<CompareType>
|
|
111
|
+
| Array<EqualToOrNull<CompareType>>
|
|
112
|
+
| NotEqual<CompareType>
|
|
113
|
+
| Array<NotEqual<CompareType>>
|
|
114
|
+
| GreaterThan<CompareType>
|
|
115
|
+
| Array<GreaterThan<CompareType>>
|
|
116
|
+
| GreaterThanOrEqual<CompareType>
|
|
117
|
+
| Array<GreaterThanOrEqual<CompareType>>
|
|
117
118
|
| PositiveNumber
|
|
118
119
|
| Array<PositiveNumber>
|
|
119
|
-
| LessThan
|
|
120
|
-
| Array<LessThan
|
|
121
|
-
| InBetween
|
|
122
|
-
| Array<InBetween
|
|
120
|
+
| LessThan<CompareType>
|
|
121
|
+
| Array<LessThan<CompareType>>
|
|
122
|
+
| InBetween<CompareType>
|
|
123
|
+
| Array<InBetween<CompareType>>
|
|
123
124
|
| NotNull
|
|
124
125
|
| Array<NotNull>
|
|
125
|
-
| LessThanOrEqual
|
|
126
|
-
| Array<LessThanOrEqual
|
|
126
|
+
| LessThanOrEqual<CompareType>
|
|
127
|
+
| Array<LessThanOrEqual<CompareType>>
|
|
127
128
|
| Port
|
|
128
129
|
| Array<Port>
|
|
129
130
|
| HashedString
|
package/Types/JSONFunctions.ts
CHANGED
|
@@ -2,6 +2,7 @@ import BaseModel from "../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseMo
|
|
|
2
2
|
import DatabaseProperty from "./Database/DatabaseProperty";
|
|
3
3
|
import OneUptimeDate from "./Date";
|
|
4
4
|
import DiskSize from "./DiskSize";
|
|
5
|
+
import GenericObject from "./GenericObject";
|
|
5
6
|
import { JSONArray, JSONObject, JSONValue, ObjectType } from "./JSON";
|
|
6
7
|
import SerializableObject from "./SerializableObject";
|
|
7
8
|
import SerializableObjectDictionary from "./SerializableObjectDictionary";
|
|
@@ -16,8 +17,8 @@ export default class JSONFunctions {
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
public static isJSONObjectDifferent(
|
|
19
|
-
obj1:
|
|
20
|
-
obj2:
|
|
20
|
+
obj1: GenericObject,
|
|
21
|
+
obj2: GenericObject,
|
|
21
22
|
): boolean {
|
|
22
23
|
return JSON.stringify(obj1) !== JSON.stringify(obj2);
|
|
23
24
|
}
|
|
@@ -5,6 +5,19 @@ import ComponentMetadata, {
|
|
|
5
5
|
ComponentType,
|
|
6
6
|
} from "./../Component";
|
|
7
7
|
|
|
8
|
+
export enum ConditionOperator {
|
|
9
|
+
EqualTo = "==",
|
|
10
|
+
NotEqualTo = "!=",
|
|
11
|
+
GreaterThan = ">",
|
|
12
|
+
GreaterThanOrEqualTo = ">=",
|
|
13
|
+
LessThan = "<",
|
|
14
|
+
LessThanOrEqualTo = "<=",
|
|
15
|
+
Contains = "contains",
|
|
16
|
+
DoesNotContain = "does not contain",
|
|
17
|
+
StartsWith = "starts with",
|
|
18
|
+
EndsWith = "ends with",
|
|
19
|
+
}
|
|
20
|
+
|
|
8
21
|
const components: Array<ComponentMetadata> = [
|
|
9
22
|
{
|
|
10
23
|
id: ComponentID.IfElse,
|
|
@@ -33,7 +46,8 @@ const components: Array<ComponentMetadata> = [
|
|
|
33
46
|
{
|
|
34
47
|
type: ComponentInputType.Text,
|
|
35
48
|
name: "Input 2",
|
|
36
|
-
description:
|
|
49
|
+
description:
|
|
50
|
+
"This fields takes number, text, boolean, null, undefined as values.",
|
|
37
51
|
placeholder: "x",
|
|
38
52
|
required: true,
|
|
39
53
|
id: "input-2",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Box, CartesianMarkerProps } from "@nivo/core";
|
|
2
2
|
import { LegendProps } from "@nivo/legends";
|
|
3
3
|
import { Point, ResponsiveLine } from "@nivo/line";
|
|
4
|
-
import {
|
|
4
|
+
import { ChartColors } from "Common/Types/BrandColors";
|
|
5
5
|
import Color from "Common/Types/Color";
|
|
6
6
|
import OneUptimeDate from "Common/Types/Date";
|
|
7
7
|
import React, { FunctionComponent, ReactElement } from "react";
|
|
@@ -228,7 +228,7 @@ const LineChart: FunctionComponent<ComponentProps> = (
|
|
|
228
228
|
}),
|
|
229
229
|
});
|
|
230
230
|
}}
|
|
231
|
-
colors={
|
|
231
|
+
colors={ChartColors.map((item: Color) => {
|
|
232
232
|
return item.toString();
|
|
233
233
|
})}
|
|
234
234
|
legends={legends}
|
|
@@ -10,8 +10,8 @@ export enum StartAndEndDateType {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export interface ComponentProps {
|
|
13
|
-
initialValue?: InBetween | undefined;
|
|
14
|
-
onValueChanged: (value: InBetween | null) => void;
|
|
13
|
+
initialValue?: InBetween<Date> | undefined;
|
|
14
|
+
onValueChanged: (value: InBetween<Date> | null) => void;
|
|
15
15
|
type: StartAndEndDateType;
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -41,16 +41,14 @@ const StartAndEndDate: DateFilterFunction = (
|
|
|
41
41
|
// prefill the date filter if it is already set
|
|
42
42
|
|
|
43
43
|
if (!didSetInitialValue && props.initialValue instanceof InBetween) {
|
|
44
|
-
const inBetween: InBetween = props.initialValue as InBetween
|
|
44
|
+
const inBetween: InBetween<Date> = props.initialValue as InBetween<Date>;
|
|
45
45
|
|
|
46
46
|
if (inBetween.startValue) {
|
|
47
|
-
setStartDateTime(
|
|
48
|
-
OneUptimeDate.fromString(inBetween.startValue as string),
|
|
49
|
-
);
|
|
47
|
+
setStartDateTime(OneUptimeDate.fromString(inBetween.startValue));
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
if (inBetween.endValue) {
|
|
53
|
-
setEndDateTime(OneUptimeDate.fromString(inBetween.endValue
|
|
51
|
+
setEndDateTime(OneUptimeDate.fromString(inBetween.endValue));
|
|
54
52
|
}
|
|
55
53
|
|
|
56
54
|
setDidSetInitialValue(true);
|
|
@@ -70,7 +68,7 @@ const StartAndEndDate: DateFilterFunction = (
|
|
|
70
68
|
return;
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
const value: InBetween = new InBetween(startDateTime, endDateTime);
|
|
71
|
+
const value: InBetween<Date> = new InBetween(startDateTime, endDateTime);
|
|
74
72
|
props.onValueChanged && props.onValueChanged(value);
|
|
75
73
|
|
|
76
74
|
return;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FindWhereProperty } from "../../../Types/BaseDatabase/Query";
|
|
1
2
|
import StartAndEndDate, { StartAndEndDateType } from "../Date/StartAndEndDate";
|
|
2
3
|
import FieldType from "../Types/FieldType";
|
|
3
4
|
import Filter from "./Types/Filter";
|
|
@@ -28,9 +29,11 @@ const DateFilter: DateFilterFunction = <T extends GenericObject>(
|
|
|
28
29
|
|
|
29
30
|
return (
|
|
30
31
|
<StartAndEndDate
|
|
31
|
-
initialValue={filterData[filter.key] as InBetween}
|
|
32
|
-
onValueChanged={(inBetween: InBetween | null) => {
|
|
33
|
-
filterData[filter.key] = inBetween
|
|
32
|
+
initialValue={filterData[filter.key] as InBetween<Date>}
|
|
33
|
+
onValueChanged={(inBetween: InBetween<Date> | null) => {
|
|
34
|
+
filterData[filter.key] = inBetween as FindWhereProperty<
|
|
35
|
+
NonNullable<T[keyof T]>
|
|
36
|
+
>;
|
|
34
37
|
|
|
35
38
|
if (!filterData[filter.key]) {
|
|
36
39
|
delete filterData[filter.key];
|
|
@@ -204,7 +204,9 @@ const FilterComponent: FilterComponentFunction = <T extends GenericObject>(
|
|
|
204
204
|
) {
|
|
205
205
|
const key: keyof T = data.filter.key;
|
|
206
206
|
|
|
207
|
-
const startAndEndDates: InBetween = data.filterData[
|
|
207
|
+
const startAndEndDates: InBetween<Date> = data.filterData[
|
|
208
|
+
key
|
|
209
|
+
] as InBetween<Date>;
|
|
208
210
|
|
|
209
211
|
const shouldOnlyShowDate: boolean = data.filter.type === FieldType.Date;
|
|
210
212
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FindWhereProperty } from "../../../Types/BaseDatabase/Query";
|
|
1
2
|
import DictionaryForm from "../Dictionary/Dictionary";
|
|
2
3
|
import FieldType from "../Types/FieldType";
|
|
3
4
|
import Filter from "./Types/Filter";
|
|
@@ -36,7 +37,9 @@ const JSONFilter: JSONFilterFunction = <T extends GenericObject>(
|
|
|
36
37
|
// if no keys in the dictionary, remove the filter
|
|
37
38
|
|
|
38
39
|
if (Object.keys(value).length > 0) {
|
|
39
|
-
filterData[filter.key] = value
|
|
40
|
+
filterData[filter.key] = value as FindWhereProperty<
|
|
41
|
+
NonNullable<T[keyof T]>
|
|
42
|
+
>;
|
|
40
43
|
} else {
|
|
41
44
|
delete filterData[filter.key];
|
|
42
45
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import API from "../../Utils/API/API";
|
|
2
|
-
import Query from "
|
|
2
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
3
3
|
import ModelAPI, { RequestOptions } from "../../Utils/ModelAPI/ModelAPI";
|
|
4
4
|
import HeaderAlert from "./HeaderAlert";
|
|
5
5
|
import BaseModel from "Common/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import SelectEntityField from "../../Types/SelectEntityField";
|
|
2
|
-
import Query from "
|
|
2
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
3
3
|
import { DropdownOption } from "../Dropdown/Dropdown";
|
|
4
4
|
import FieldType from "../Types/FieldType";
|
|
5
5
|
import AnalyticsBaseModel, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import API from "../../Utils/API/API";
|
|
2
|
-
import Query from "
|
|
2
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
3
3
|
import ModelAPI from "../../Utils/ModelAPI/ModelAPI";
|
|
4
4
|
import Card from "../Card/Card";
|
|
5
5
|
import ComponentLoader from "../ComponentLoader/ComponentLoader";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ModelAPI from "../../Utils/AnalyticsModelAPI/AnalyticsModelAPI";
|
|
2
2
|
import GroupBy from "../../Utils/BaseDatabase/GroupBy";
|
|
3
|
-
import Query from "
|
|
3
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
4
4
|
import RequestOptions from "../../Utils/BaseDatabase/RequestOptions";
|
|
5
5
|
import Select from "../../Utils/BaseDatabase/Select";
|
|
6
6
|
import Sort from "../../Utils/BaseDatabase/Sort";
|
|
@@ -5,7 +5,7 @@ import SelectEntityField from "../../Types/SelectEntityField";
|
|
|
5
5
|
import API from "../../Utils/API/API";
|
|
6
6
|
import GroupBy from "../../Utils/BaseDatabase/GroupBy";
|
|
7
7
|
import ListResult from "../../Utils/BaseDatabase/ListResult";
|
|
8
|
-
import Query from "
|
|
8
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
9
9
|
import RequestOptions from "../../Utils/BaseDatabase/RequestOptions";
|
|
10
10
|
import Select from "../../Utils/BaseDatabase/Select";
|
|
11
11
|
import Sort from "../../Utils/BaseDatabase/Sort";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import GroupBy from "../../Utils/BaseDatabase/GroupBy";
|
|
2
|
-
import Query from "
|
|
2
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
3
3
|
import Select from "../../Utils/BaseDatabase/Select";
|
|
4
4
|
import Sort from "../../Utils/BaseDatabase/Sort";
|
|
5
5
|
import ModelAPI, { RequestOptions } from "../../Utils/ModelAPI/ModelAPI";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import API from "../../Utils/API/API";
|
|
2
|
-
import Query from "
|
|
2
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
3
3
|
import ModelAPI, { RequestOptions } from "../../Utils/ModelAPI/ModelAPI";
|
|
4
4
|
import { BadgeType } from "../Badge/Badge";
|
|
5
5
|
import SideMenuItem from "./SideMenuItem";
|
|
@@ -9,6 +9,7 @@ import ComponentMetadata, {
|
|
|
9
9
|
import Components, { Categories } from "Common/Types/Workflow/Components";
|
|
10
10
|
import BaseModelComponentFactory from "Common/Types/Workflow/Components/BaseModel";
|
|
11
11
|
import Entities from "Common/Models/DatabaseModels/Index";
|
|
12
|
+
import { ConditionOperator } from "../../../Types/Workflow/Components/Condition";
|
|
12
13
|
|
|
13
14
|
type LoadComponentsAndCategoriesFunction = () => {
|
|
14
15
|
components: Array<ComponentMetadata>;
|
|
@@ -192,27 +193,43 @@ export const componentInputTypeToFormFieldType: ComponentInputTypeToFormFieldTyp
|
|
|
192
193
|
dropdownOptions: [
|
|
193
194
|
{
|
|
194
195
|
label: "Equal To",
|
|
195
|
-
value:
|
|
196
|
+
value: ConditionOperator.EqualTo,
|
|
196
197
|
},
|
|
197
198
|
{
|
|
198
199
|
label: "Not Equal To",
|
|
199
|
-
value:
|
|
200
|
+
value: ConditionOperator.NotEqualTo,
|
|
200
201
|
},
|
|
201
202
|
{
|
|
202
203
|
label: "Greater Than",
|
|
203
|
-
value:
|
|
204
|
+
value: ConditionOperator.GreaterThan,
|
|
204
205
|
},
|
|
205
206
|
{
|
|
206
207
|
label: "Less Than",
|
|
207
|
-
value:
|
|
208
|
+
value: ConditionOperator.LessThan,
|
|
208
209
|
},
|
|
209
210
|
{
|
|
210
211
|
label: "Greater Than or Equal",
|
|
211
|
-
value:
|
|
212
|
+
value: ConditionOperator.GreaterThanOrEqualTo,
|
|
212
213
|
},
|
|
213
214
|
{
|
|
214
215
|
label: "Less Than or Equal",
|
|
215
|
-
value:
|
|
216
|
+
value: ConditionOperator.LessThanOrEqualTo,
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
label: "Contains",
|
|
220
|
+
value: ConditionOperator.Contains,
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
label: "Does Not Contain",
|
|
224
|
+
value: ConditionOperator.DoesNotContain,
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
label: "Starts With",
|
|
228
|
+
value: ConditionOperator.StartsWith,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
label: "Ends With",
|
|
232
|
+
value: ConditionOperator.EndsWith,
|
|
216
233
|
},
|
|
217
234
|
],
|
|
218
235
|
};
|
|
@@ -3,7 +3,6 @@ import { APP_API_URL } from "../../Config";
|
|
|
3
3
|
import API from "../API/API";
|
|
4
4
|
import GroupBy from "../BaseDatabase/GroupBy";
|
|
5
5
|
import BaseListResult from "../BaseDatabase/ListResult";
|
|
6
|
-
import Query from "../BaseDatabase/Query";
|
|
7
6
|
import RequestOptions from "../BaseDatabase/RequestOptions";
|
|
8
7
|
import Select from "../BaseDatabase/Select";
|
|
9
8
|
import Sort from "../BaseDatabase/Sort";
|
|
@@ -23,6 +22,7 @@ import ObjectID from "Common/Types/ObjectID";
|
|
|
23
22
|
import Project from "Common/Models/DatabaseModels/Project";
|
|
24
23
|
import AggregateBy from "Common/Types/BaseDatabase/AggregateBy";
|
|
25
24
|
import AggregatedResult from "Common/Types/BaseDatabase/AggregatedResult";
|
|
25
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
26
26
|
|
|
27
27
|
export interface ListResult<TAnalyticsBaseModel extends AnalyticsBaseModel>
|
|
28
28
|
extends BaseListResult<TAnalyticsBaseModel> {}
|
|
@@ -3,7 +3,6 @@ import { APP_API_URL } from "../../Config";
|
|
|
3
3
|
import API from "../../Utils/API/API";
|
|
4
4
|
import GroupBy from "../BaseDatabase/GroupBy";
|
|
5
5
|
import BaseListResult from "../BaseDatabase/ListResult";
|
|
6
|
-
import Query from "../BaseDatabase/Query";
|
|
7
6
|
import BaseRequestOptions from "../BaseDatabase/RequestOptions";
|
|
8
7
|
import Select from "../BaseDatabase/Select";
|
|
9
8
|
import Sort from "../BaseDatabase/Sort";
|
|
@@ -21,6 +20,7 @@ import { JSONArray, JSONObject } from "Common/Types/JSON";
|
|
|
21
20
|
import JSONFunctions from "Common/Types/JSONFunctions";
|
|
22
21
|
import ObjectID from "Common/Types/ObjectID";
|
|
23
22
|
import Project from "Common/Models/DatabaseModels/Project";
|
|
23
|
+
import Query from "../../../Types/BaseDatabase/Query";
|
|
24
24
|
|
|
25
25
|
export class ModelAPIHttpResponse<
|
|
26
26
|
TBaseModel extends BaseModel,
|
package/UI/Utils/Realtime.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { HOST, HTTP_PROTOCOL } from "../Config";
|
|
2
|
-
import Query from "./BaseDatabase/Query";
|
|
3
2
|
import Select from "./BaseDatabase/Select";
|
|
4
3
|
import AnalyticsBaseModel from "Common/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel";
|
|
5
4
|
import BaseModel from "Common/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
@@ -15,6 +14,7 @@ import RealtimeUtil, {
|
|
|
15
14
|
ModelEventType,
|
|
16
15
|
} from "Common/Utils/Realtime";
|
|
17
16
|
import SocketIO, { Socket } from "socket.io-client";
|
|
17
|
+
import Query from "../../Types/BaseDatabase/Query";
|
|
18
18
|
|
|
19
19
|
export interface ListenToModelEvent<
|
|
20
20
|
Model extends AnalyticsBaseModel | BaseModel,
|
package/Utils/CronTime.ts
CHANGED
|
@@ -5,3 +5,4 @@ export const EVERY_FIVE_MINUTE: string = "*/5 * * * *";
|
|
|
5
5
|
export const EVERY_FIVE_SECONDS: string = "*/5 * * * * *";
|
|
6
6
|
export const EVERY_WEEK: string = "0 0 * * 0";
|
|
7
7
|
export const EVERY_FIFTEEN_MINUTE: string = "*/15 * * * *";
|
|
8
|
+
export const EVERY_THIRTY_SECONDS: string = "*/30 * * * * *";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonModel.js","sourceRoot":"","sources":["../../../../../Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"CommonModel.js","sourceRoot":"","sources":["../../../../../Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ let Monitor = class Monitor extends BaseModel {
|
|
|
54
54
|
this.isOwnerNotifiedOfResourceCreation = undefined;
|
|
55
55
|
this.disableActiveMonitoring = undefined;
|
|
56
56
|
this.incomingRequestReceivedAt = undefined;
|
|
57
|
+
this.incomingRequestMonitorHeartbeatCheckedAt = undefined;
|
|
57
58
|
this.telemetryMonitorNextMonitorAt = undefined;
|
|
58
59
|
this.telemetryMonitorLastMonitorAt = undefined;
|
|
59
60
|
this.disableActiveMonitoringBecauseOfScheduledMaintenanceEvent = undefined;
|
|
@@ -691,6 +692,41 @@ __decorate([
|
|
|
691
692
|
}),
|
|
692
693
|
__metadata("design:type", Date)
|
|
693
694
|
], Monitor.prototype, "incomingRequestReceivedAt", void 0);
|
|
695
|
+
__decorate([
|
|
696
|
+
ColumnAccessControl({
|
|
697
|
+
create: [
|
|
698
|
+
Permission.ProjectOwner,
|
|
699
|
+
Permission.ProjectAdmin,
|
|
700
|
+
Permission.ProjectMember,
|
|
701
|
+
Permission.CreateProjectMonitor,
|
|
702
|
+
],
|
|
703
|
+
read: [
|
|
704
|
+
Permission.ProjectOwner,
|
|
705
|
+
Permission.ProjectAdmin,
|
|
706
|
+
Permission.ProjectMember,
|
|
707
|
+
Permission.ReadProjectMonitor,
|
|
708
|
+
],
|
|
709
|
+
update: [
|
|
710
|
+
Permission.ProjectOwner,
|
|
711
|
+
Permission.ProjectAdmin,
|
|
712
|
+
Permission.ProjectMember,
|
|
713
|
+
Permission.CreateProjectMonitor,
|
|
714
|
+
],
|
|
715
|
+
}),
|
|
716
|
+
Index(),
|
|
717
|
+
TableColumn({
|
|
718
|
+
type: TableColumnType.Date,
|
|
719
|
+
required: false,
|
|
720
|
+
isDefaultValueColumn: false,
|
|
721
|
+
title: "When was the last time we checked the heartbeat for incoming request?",
|
|
722
|
+
description: "This field is for Incoming Request monitor only. When was the last time we checked the heartbeat?",
|
|
723
|
+
}),
|
|
724
|
+
Column({
|
|
725
|
+
type: ColumnType.Date,
|
|
726
|
+
nullable: true,
|
|
727
|
+
}),
|
|
728
|
+
__metadata("design:type", Date)
|
|
729
|
+
], Monitor.prototype, "incomingRequestMonitorHeartbeatCheckedAt", void 0);
|
|
694
730
|
__decorate([
|
|
695
731
|
ColumnAccessControl({
|
|
696
732
|
create: [
|