@fibery/expression-utils 9.5.8 → 9.6.1
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/lib/index.d.ts +1 -0
- package/lib/src/context-variables.d.ts +9 -6
- package/lib/src/context-variables.js +42 -19
- package/lib/src/context-variables.js.map +1 -1
- package/lib/src/fieldExpressionVisitorTypeAware.js +6 -5
- package/lib/src/fieldExpressionVisitorTypeAware.js.map +1 -1
- package/lib/src/filter-expression/index.js.map +1 -1
- package/lib/src/filter-expression/operator-utils.d.ts +6 -1
- package/lib/src/filter-expression/operator-utils.js +19 -8
- package/lib/src/filter-expression/operator-utils.js.map +1 -1
- package/lib/src/filter-expression/operators.js +32 -14
- package/lib/src/filter-expression/operators.js.map +1 -1
- package/lib/src/filter-expression/pattern-match.js +14 -11
- package/lib/src/filter-expression/pattern-match.js.map +1 -1
- package/lib/src/filter-expression/patternMatchPlaceholders.js +15 -13
- package/lib/src/filter-expression/patternMatchPlaceholders.js.map +1 -1
- package/lib/src/filter-expression/patternToExpression.js +1 -5
- package/lib/src/filter-expression/patternToExpression.js.map +1 -1
- package/lib/src/params-placeholders.d.ts +1 -1
- package/lib/src/params-placeholders.js +6 -5
- package/lib/src/params-placeholders.js.map +1 -1
- package/lib/src/types.d.ts +16 -2
- package/lib/src/utils.d.ts +9 -7
- package/lib/src/utils.js +30 -21
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visitors.js +7 -5
- package/lib/src/visitors.js.map +1 -1
- package/package.json +5 -5
package/lib/index.d.ts
CHANGED
|
@@ -20,3 +20,4 @@ declare const filterExpression: {
|
|
|
20
20
|
export { utils, visitors, paramsPlaceholders, contextVariables, filterExpression };
|
|
21
21
|
export type { Expression, OrderBy, Query, Select, SubQuery, ExpressionVisitor, ExpressionVisitorWithDefault, } from "./src/types";
|
|
22
22
|
export type { Operator, ExpressionToFilterBy } from "./src/filter-expression/types";
|
|
23
|
+
export type { ContextVariable } from "./src/context-variables";
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { Schema, TypeObject } from "@fibery/schema";
|
|
2
|
-
type ContextVariable = {
|
|
3
|
-
|
|
2
|
+
export type ContextVariable = {
|
|
3
|
+
description: string;
|
|
4
4
|
id: string;
|
|
5
5
|
title: string;
|
|
6
|
+
typeObject: TypeObject;
|
|
6
7
|
isCollection: boolean;
|
|
7
|
-
description: string;
|
|
8
8
|
};
|
|
9
|
-
export declare const
|
|
9
|
+
export declare const triggeredEntityContextVariableId = "triggeredEntity";
|
|
10
|
+
export declare const previousTriggeredEntityContextVariableId = "previousTriggeredEntity";
|
|
11
|
+
export declare const currentUserContextVariableId = "currentUser";
|
|
12
|
+
export declare const triggeredCollectionItemContextVariableId = "triggered-collection-item";
|
|
13
|
+
export declare const getAutomationButtonContextVariables: (typeId: string, fiberySchema: Schema) => Array<ContextVariable>;
|
|
10
14
|
export declare const getTriggerCollectionFieldObject: (typeId: string, collectionFieldId: string, fiberySchema: Schema) => import("@fibery/schema").FieldObject | undefined;
|
|
11
15
|
export declare const getAutomationTriggersContextVariables: (triggers: Array<{
|
|
12
16
|
trigger: string;
|
|
13
17
|
args: Record<string, unknown>;
|
|
14
|
-
}>, typeId: string, fiberySchema: Schema) => Array<ContextVariable>;
|
|
18
|
+
}>, typeId: string, fiberySchema: Schema, allowPreviousContextVariable?: boolean) => Array<ContextVariable>;
|
|
15
19
|
export declare const getEntityQueryVariables: (schema: Schema) => {
|
|
16
20
|
typeObject: TypeObject;
|
|
17
21
|
id: string;
|
|
@@ -19,4 +23,3 @@ export declare const getEntityQueryVariables: (schema: Schema) => {
|
|
|
19
23
|
isCollection: boolean;
|
|
20
24
|
description: string;
|
|
21
25
|
}[];
|
|
22
|
-
export {};
|
|
@@ -3,9 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getEntityQueryVariables = exports.getAutomationTriggersContextVariables = exports.getTriggerCollectionFieldObject = exports.getAutomationButtonContextVariables = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
exports.getEntityQueryVariables = exports.getAutomationTriggersContextVariables = exports.getTriggerCollectionFieldObject = exports.getAutomationButtonContextVariables = exports.triggeredCollectionItemContextVariableId = exports.currentUserContextVariableId = exports.previousTriggeredEntityContextVariableId = exports.triggeredEntityContextVariableId = void 0;
|
|
7
|
+
const flatten_1 = __importDefault(require("lodash/flatten"));
|
|
8
|
+
const groupBy_1 = __importDefault(require("lodash/groupBy"));
|
|
9
|
+
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
10
|
+
exports.triggeredEntityContextVariableId = "triggeredEntity";
|
|
11
|
+
exports.previousTriggeredEntityContextVariableId = "previousTriggeredEntity";
|
|
12
|
+
exports.currentUserContextVariableId = "currentUser";
|
|
13
|
+
exports.triggeredCollectionItemContextVariableId = "triggered-collection-item";
|
|
14
|
+
const getAutomationButtonContextVariables = (typeId, fiberySchema) => {
|
|
9
15
|
if (!fiberySchema) {
|
|
10
16
|
return [];
|
|
11
17
|
}
|
|
@@ -13,14 +19,14 @@ const getAutomationButtonContextVariables = (typeId, typeName, fiberySchema) =>
|
|
|
13
19
|
const typeObject = fiberySchema.typeObjectsById[typeId];
|
|
14
20
|
return [
|
|
15
21
|
{
|
|
16
|
-
id:
|
|
22
|
+
id: exports.triggeredEntityContextVariableId,
|
|
17
23
|
title: `Step 1 ${typeObject.singularTitle}`,
|
|
18
24
|
typeObject,
|
|
19
25
|
isCollection: false,
|
|
20
26
|
description: `The ${typeObject.singularTitle} for which the Button was clicked`,
|
|
21
27
|
},
|
|
22
28
|
{
|
|
23
|
-
id:
|
|
29
|
+
id: exports.currentUserContextVariableId,
|
|
24
30
|
title: `User who clicked Button`,
|
|
25
31
|
typeObject: userTypeObject,
|
|
26
32
|
isCollection: false,
|
|
@@ -42,25 +48,25 @@ const getTriggerCollectionFieldObject = (typeId, collectionFieldId, fiberySchema
|
|
|
42
48
|
return fiberySchema.typeObjectsById[typeId].fieldObjectsById[collectionFieldId];
|
|
43
49
|
};
|
|
44
50
|
exports.getTriggerCollectionFieldObject = getTriggerCollectionFieldObject;
|
|
45
|
-
const getTriggerContextVariables = (trigger, typeId, fiberySchema) => {
|
|
51
|
+
const getTriggerContextVariables = (trigger, typeId, fiberySchema, allowPreviousContextVariable = false) => {
|
|
46
52
|
if (!fiberySchema) {
|
|
47
53
|
return [];
|
|
48
54
|
}
|
|
49
55
|
const typeObject = fiberySchema.typeObjectsById[typeId];
|
|
50
56
|
const userTypeObject = fiberySchema.typeObjectsByName["fibery/user"];
|
|
51
57
|
const triggeredEntityVar = {
|
|
52
|
-
id:
|
|
58
|
+
id: exports.triggeredEntityContextVariableId,
|
|
53
59
|
title: `Step 1 ${typeObject.singularTitle}`,
|
|
54
60
|
typeObject,
|
|
55
61
|
isCollection: false,
|
|
56
|
-
description: `The ${typeObject.singularTitle} from step 1 of this Rule`,
|
|
62
|
+
description: `The ${typeObject.singularTitle} from step 1 of this Automation Rule`,
|
|
57
63
|
};
|
|
58
64
|
const currentUserVar = {
|
|
59
|
-
id:
|
|
65
|
+
id: exports.currentUserContextVariableId,
|
|
60
66
|
title: `User who triggered Rule`,
|
|
61
67
|
typeObject: userTypeObject,
|
|
62
68
|
isCollection: false,
|
|
63
|
-
description: `The User who made the change which triggered this
|
|
69
|
+
description: `The User who made the change which triggered this Automation Rule. Empty in case the change was made by a formula or an integration.`,
|
|
64
70
|
};
|
|
65
71
|
if (trigger.trigger === "time-based") {
|
|
66
72
|
return [triggeredEntityVar];
|
|
@@ -69,8 +75,9 @@ const getTriggerContextVariables = (trigger, typeId, fiberySchema) => {
|
|
|
69
75
|
return typeObject.syncSource !== null ? [triggeredEntityVar] : [triggeredEntityVar, currentUserVar];
|
|
70
76
|
}
|
|
71
77
|
else if (trigger.trigger === "updated") {
|
|
78
|
+
const result = [triggeredEntityVar];
|
|
72
79
|
const disableCurrentUserVar = trigger.args.updatedField &&
|
|
73
|
-
|
|
80
|
+
Array.isArray(trigger.args.updatedField) &&
|
|
74
81
|
trigger.args.updatedField.some((fieldId) => {
|
|
75
82
|
if (!Object.hasOwn(typeObject.fieldObjectsById, fieldId)) {
|
|
76
83
|
return false;
|
|
@@ -78,7 +85,23 @@ const getTriggerContextVariables = (trigger, typeId, fiberySchema) => {
|
|
|
78
85
|
const fieldObject = typeObject.fieldObjectsById[fieldId];
|
|
79
86
|
return fieldObject?.isReadOnly || fieldObject?.type === "Collaboration~Documents/Document";
|
|
80
87
|
});
|
|
81
|
-
|
|
88
|
+
if (!disableCurrentUserVar) {
|
|
89
|
+
result.push(currentUserVar);
|
|
90
|
+
}
|
|
91
|
+
if (allowPreviousContextVariable &&
|
|
92
|
+
trigger.args.updatedField &&
|
|
93
|
+
Array.isArray(trigger.args.updatedField) &&
|
|
94
|
+
trigger.args.updatedField.length === 1) {
|
|
95
|
+
const previousTriggeredEntityContextVariable = {
|
|
96
|
+
id: exports.previousTriggeredEntityContextVariableId,
|
|
97
|
+
title: `Step 1 ${typeObject.singularTitle} (Previous)`,
|
|
98
|
+
typeObject,
|
|
99
|
+
isCollection: false,
|
|
100
|
+
description: `The previous value of ${typeObject.singularTitle} from step 1 of this Automation Rule`,
|
|
101
|
+
};
|
|
102
|
+
result.push(previousTriggeredEntityContextVariable);
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
82
105
|
}
|
|
83
106
|
else if (trigger.trigger === "collection-item-added" || trigger.trigger === "collection-item-removed") {
|
|
84
107
|
const collectionItemFieldObject = (0, exports.getTriggerCollectionFieldObject)(typeId, trigger.args.changedCollectionField, fiberySchema);
|
|
@@ -86,11 +109,11 @@ const getTriggerContextVariables = (trigger, typeId, fiberySchema) => {
|
|
|
86
109
|
const variables = [triggeredEntityVar];
|
|
87
110
|
collectionItemTypeObject &&
|
|
88
111
|
variables.push({
|
|
89
|
-
id:
|
|
112
|
+
id: exports.triggeredCollectionItemContextVariableId,
|
|
90
113
|
title: `Step 1 ${trigger.trigger === "collection-item-added" ? "linked" : "unlinked"} ${collectionItemTypeObject.singularTitle}`,
|
|
91
114
|
typeObject: collectionItemTypeObject,
|
|
92
115
|
isCollection: false,
|
|
93
|
-
description: `The ${collectionItemTypeObject.singularTitle} from step 1 of this Rule`,
|
|
116
|
+
description: `The ${collectionItemTypeObject.singularTitle} from step 1 of this Automation Rule`,
|
|
94
117
|
});
|
|
95
118
|
const disableCurrentUserVar = collectionItemFieldObject?.isReadOnly;
|
|
96
119
|
!disableCurrentUserVar && variables.push(currentUserVar);
|
|
@@ -100,16 +123,16 @@ const getTriggerContextVariables = (trigger, typeId, fiberySchema) => {
|
|
|
100
123
|
return [];
|
|
101
124
|
}
|
|
102
125
|
};
|
|
103
|
-
const getAutomationTriggersContextVariables = (triggers, typeId, fiberySchema) => {
|
|
126
|
+
const getAutomationTriggersContextVariables = (triggers, typeId, fiberySchema, allowPreviousContextVariable = false) => {
|
|
104
127
|
const triggerContextVars = triggers.flatMap((trigger) => {
|
|
105
|
-
return getTriggerContextVariables(trigger, typeId, fiberySchema);
|
|
128
|
+
return getTriggerContextVariables(trigger, typeId, fiberySchema, allowPreviousContextVariable);
|
|
106
129
|
});
|
|
107
|
-
return
|
|
130
|
+
return (0, uniqBy_1.default)(triggerContextVars, (variable) => `${variable.id}_${variable.typeObject.id}`);
|
|
108
131
|
};
|
|
109
132
|
exports.getAutomationTriggersContextVariables = getAutomationTriggersContextVariables;
|
|
110
133
|
const getEntityQueryVariables = (schema) => {
|
|
111
|
-
const grouped =
|
|
112
|
-
return
|
|
134
|
+
const grouped = (0, groupBy_1.default)(schema.typeObjects.filter((x) => x.isDomain), (typeObject) => typeObject.pluralTitle);
|
|
135
|
+
return (0, flatten_1.default)(Object.values(grouped).map((group) => {
|
|
113
136
|
return group.map((typeObject) => ({
|
|
114
137
|
typeObject,
|
|
115
138
|
id: `entityQuery_${typeObject.id}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-variables.js","sourceRoot":"","sources":["../../src/context-variables.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"context-variables.js","sourceRoot":"","sources":["../../src/context-variables.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.fieldAccessVisitorTypeAware = void 0;
|
|
7
|
-
const
|
|
7
|
+
const isPlainObject_1 = __importDefault(require("lodash/isPlainObject"));
|
|
8
|
+
const mapValues_1 = __importDefault(require("lodash/mapValues"));
|
|
8
9
|
const utils_1 = require("./utils");
|
|
9
10
|
const visitFieldExpression = ({ expression: fieldExpression, typeObject: initialTypeObject, onField, onFieldNotFound }) => fieldExpression.reduce(({ typeObject, expression }, fieldAccess) => {
|
|
10
|
-
if (typeObject && (0, utils_1.isMultiFieldAccess)(fieldAccess) && typeObject.fieldObjectsById
|
|
11
|
+
if (typeObject && (0, utils_1.isMultiFieldAccess)(fieldAccess) && Object.hasOwn(typeObject.fieldObjectsById, fieldAccess[0])) {
|
|
11
12
|
const typeId = fieldAccess[1];
|
|
12
13
|
const fieldObject = typeObject.fieldObjectsById[fieldAccess[0]];
|
|
13
14
|
const nextTypeObject = fieldObject.multiRelatedFieldObjects.find((f) => f.holderTypeObject.id === typeId)?.holderTypeObject;
|
|
@@ -39,7 +40,7 @@ const visitFieldExpression = ({ expression: fieldExpression, typeObject: initial
|
|
|
39
40
|
expression,
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
else if (typeObject && typeObject.fieldObjectsById
|
|
43
|
+
else if (typeObject && Object.hasOwn(typeObject.fieldObjectsById, fieldAccess)) {
|
|
43
44
|
const fieldObject = typeObject.fieldObjectsById[fieldAccess];
|
|
44
45
|
const onFieldResult = onField({
|
|
45
46
|
fieldAccess,
|
|
@@ -111,8 +112,8 @@ const fieldAccessVisitorTypeAwareInternal = ({ typeObject, rootTypeObject, onFie
|
|
|
111
112
|
...subQueryExpression,
|
|
112
113
|
...{
|
|
113
114
|
"q/from": fromVisitResult.expression,
|
|
114
|
-
"q/select":
|
|
115
|
-
?
|
|
115
|
+
"q/select": (0, isPlainObject_1.default)(selectExpression)
|
|
116
|
+
? (0, mapValues_1.default)(selectExpression, (val) => subQueryVisitor.visitExpression(val))
|
|
116
117
|
: subQueryVisitor.visitExpression(selectExpression),
|
|
117
118
|
},
|
|
118
119
|
...(whereExpression ? { "q/where": subQueryVisitor.visitExpression(whereExpression) } : null),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldExpressionVisitorTypeAware.js","sourceRoot":"","sources":["../../src/fieldExpressionVisitorTypeAware.js"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"fieldExpressionVisitorTypeAware.js","sourceRoot":"","sources":["../../src/fieldExpressionVisitorTypeAware.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/filter-expression/index.ts"],"names":[],"mappings":";;;AAGA,mDAA+C;AAE/C,+BAAkC;AAClC,sCAA8C;AAEvC,MAAM,iBAAiB,GAAG,CAC/B,gBAA4B,EAC5B,MAAgB,EAChB,SAA0B,EAC1B,MAAqB,EACrB,IAAY,EACZ,EAAE;IACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/E,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,OAAO;oBACL,QAAQ;oBACR,KAAK,EAAE,WAAW,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/filter-expression/index.ts"],"names":[],"mappings":";;;AAGA,mDAA+C;AAE/C,+BAAkC;AAClC,sCAA8C;AAEvC,MAAM,iBAAiB,GAAG,CAC/B,gBAA4B,EAC5B,MAAgB,EAChB,SAA0B,EAC1B,MAAqB,EACrB,IAAY,EACZ,EAAE;IACF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/E,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,OAAO;oBACL,QAAQ;oBACR,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,UAAU,EAAE,WAAW,CAAC,UAAU;oBAClC,IAAI;oBACJ,EAAE,EAAE,IAAA,SAAM,GAAE;iBACb,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,YAAY,EAAE,OAAO,EAAC,GAAG,IAAA,8BAAc,EAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACvG,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,8BAA8B,CAAC,CAAC;gBAC3F,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,mCAAmC,CAAC,CAAC;gBACrG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,4BAAmB,CAAC,kDAAkD,CAAC,CAAC;gBACpF,CAAC;gBACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,4BAAmB,CAAC,uDAAuD,CAAC,CAAC;gBACzF,CAAC;gBAED,OAAO;oBACL,QAAQ;oBACR,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;oBAC/C,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK;oBACtC,IAAI;oBACJ,EAAE,EAAE,IAAA,SAAM,GAAE;iBACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhDW,QAAA,iBAAiB,qBAgD5B"}
|
|
@@ -2,6 +2,11 @@ import { CustomMatchFn, Operator } from "./types";
|
|
|
2
2
|
import { $TSFixMe } from "../tsfixme";
|
|
3
3
|
import { Expression } from "../types";
|
|
4
4
|
export declare const isDateTime: (dateString: string) => boolean;
|
|
5
|
+
export declare const NO_VALUE: undefined;
|
|
6
|
+
export declare const isNoValue: (value: unknown) => boolean;
|
|
5
7
|
export declare const getCompareOperatorForDateTime: (id: string, title: string, operator: string, compareByStartInterval: boolean) => Operator;
|
|
6
|
-
export declare const getWithinOperatorCustomConvertFn: (leftPartExcluded: boolean) => (
|
|
8
|
+
export declare const getWithinOperatorCustomConvertFn: (leftPartExcluded: boolean) => (expression: Expression, value: {
|
|
9
|
+
withinRangeStart: unknown;
|
|
10
|
+
withinRangeEnd: unknown;
|
|
11
|
+
} | null, getNextParamName: () => string) => $TSFixMe;
|
|
7
12
|
export declare const getWithinOperatorCustomMatchFn: (fieldPlaceholder: $TSFixMe, leftPartExcluded: boolean) => CustomMatchFn;
|
|
@@ -3,8 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getWithinOperatorCustomMatchFn = exports.getWithinOperatorCustomConvertFn = exports.getCompareOperatorForDateTime = exports.isDateTime = void 0;
|
|
7
|
-
const
|
|
6
|
+
exports.getWithinOperatorCustomMatchFn = exports.getWithinOperatorCustomConvertFn = exports.getCompareOperatorForDateTime = exports.isNoValue = exports.NO_VALUE = exports.isDateTime = void 0;
|
|
7
|
+
const findKey_1 = __importDefault(require("lodash/findKey"));
|
|
8
|
+
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
9
|
+
const isString_1 = __importDefault(require("lodash/isString"));
|
|
8
10
|
const params_placeholders_1 = require("../params-placeholders");
|
|
9
11
|
const pattern_match_1 = require("./pattern-match");
|
|
10
12
|
const patternMatchPlaceholders_1 = require("./patternMatchPlaceholders");
|
|
@@ -16,6 +18,14 @@ const isoDateSample = "2018-05-30";
|
|
|
16
18
|
// and later moment.js parses date string as date-time
|
|
17
19
|
const isDateTime = (dateString) => dateString.length === isoDateTimeSample.length || dateString.length === isoDateSample.length;
|
|
18
20
|
exports.isDateTime = isDateTime;
|
|
21
|
+
exports.NO_VALUE = undefined;
|
|
22
|
+
const isNoValue = (value) => {
|
|
23
|
+
if (typeof value === "object" && value !== null && "withinRangeStart" in value && "withinRangeEnd" in value) {
|
|
24
|
+
return value.withinRangeStart === exports.NO_VALUE && value.withinRangeEnd === exports.NO_VALUE;
|
|
25
|
+
}
|
|
26
|
+
return value === exports.NO_VALUE;
|
|
27
|
+
};
|
|
28
|
+
exports.isNoValue = isNoValue;
|
|
19
29
|
const getCompareOperatorForDateTime = (id, title, operator, compareByStartInterval) => ({
|
|
20
30
|
id,
|
|
21
31
|
title,
|
|
@@ -25,8 +35,9 @@ const getCompareOperatorForDateTime = (id, title, operator, compareByStartInterv
|
|
|
25
35
|
patternMatchPlaceholders_1.dateTimeOrDateTimeRangeExpressionPlaceholder,
|
|
26
36
|
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) => {
|
|
27
37
|
return (Boolean(params_placeholders_1.paramsPlaceholdersLookup[x]) ||
|
|
28
|
-
(
|
|
29
|
-
Boolean((0, params_placeholders_1.parseRelativeDatePlaceholder)(x))
|
|
38
|
+
((0, isString_1.default)(x) && (0, exports.isDateTime)(x)) ||
|
|
39
|
+
Boolean((0, params_placeholders_1.parseRelativeDatePlaceholder)(x)) ||
|
|
40
|
+
(0, exports.isNoValue)(x));
|
|
30
41
|
}),
|
|
31
42
|
], typeObject);
|
|
32
43
|
if (matchSuccess) {
|
|
@@ -41,7 +52,7 @@ const getCompareOperatorForDateTime = (id, title, operator, compareByStartInterv
|
|
|
41
52
|
};
|
|
42
53
|
}
|
|
43
54
|
else if (params_placeholders_1.paramsPlaceholdersLookup[paramValue]) {
|
|
44
|
-
const value =
|
|
55
|
+
const value = (0, findKey_1.default)(params_placeholders_1.dateToDateTimeIntervalLookup, (val) => compareByStartInterval ? val.start === paramValue : val.end === paramValue);
|
|
45
56
|
return {
|
|
46
57
|
matchSuccess,
|
|
47
58
|
expression: fieldMatch.value,
|
|
@@ -104,11 +115,11 @@ const getWithinRangeParam = ({ withinRangeValue, getNextParamName, }) => {
|
|
|
104
115
|
const getWithinOperatorCustomConvertFn = (leftPartExcluded) => {
|
|
105
116
|
return (expression, value, getNextParamName) => {
|
|
106
117
|
const { key: startParamKey, value: startParamValue } = getWithinRangeParam({
|
|
107
|
-
withinRangeValue: value
|
|
118
|
+
withinRangeValue: value?.withinRangeStart,
|
|
108
119
|
getNextParamName,
|
|
109
120
|
});
|
|
110
121
|
const { key: endParamKey, value: endParamValue } = getWithinRangeParam({
|
|
111
|
-
withinRangeValue: value
|
|
122
|
+
withinRangeValue: value?.withinRangeEnd,
|
|
112
123
|
getNextParamName,
|
|
113
124
|
});
|
|
114
125
|
return {
|
|
@@ -152,7 +163,7 @@ const matchWithinOperator = (pattern, where, params, typeObject) => {
|
|
|
152
163
|
if (matchSuccess) {
|
|
153
164
|
const firstFieldValue = firstFieldMatch.value;
|
|
154
165
|
const secondFieldValue = secondFieldMatch.value;
|
|
155
|
-
if (
|
|
166
|
+
if ((0, isEqual_1.default)(firstFieldValue, secondFieldValue)) {
|
|
156
167
|
return {
|
|
157
168
|
matchSuccess,
|
|
158
169
|
expression: firstFieldValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-utils.js","sourceRoot":"","sources":["../../../src/filter-expression/operator-utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"operator-utils.js","sourceRoot":"","sources":["../../../src/filter-expression/operator-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.operatorDateIsWithin = exports.operatorDateIsNotEmptyV2 = exports.operatorDateIsNotEmptyV1 = exports.operatorDateIsEmptyV2 = exports.operatorDateIsEmptyV1 = exports.operatorDateIs = exports.operatorBoolIs = exports.operatorCollectionIsNotEmpty = exports.operatorCollectionIsEmpty = exports.operatorCollectionDoesNotContainAnyOf = exports.operatorCollectionDoesNotContainMe = exports.operatorCollectionDoesNotContain = exports.operatorCollectionContainsAnyOf = exports.withoutLastIdAccess = exports.operatorCollectionContainsMe = exports.operatorCollectionContains = exports.operatorLocationIsNotEmpty = exports.operatorLocationIsEmpty = exports.operatorLocationDoesNotContain = exports.operatorLocationContains = exports.operatorTextIsNotEmptyV2 = exports.operatorTextIsNotEmptyV1 = exports.operatorTextIsEmptyV2 = exports.operatorTextIsEmptyV1 = exports.operatorNumberIsNotEmptyV2 = exports.operatorNumberIsNotEmptyV1 = exports.operatorNumberIsEmptyV2 = exports.operatorNumberIsEmptyV1 = exports.operatorLessThanOrEqual = exports.operatorGreaterThanOrEqual = exports.operatorLessThan = exports.operatorGreaterThan = exports.operatorNumberDoesNotEqual = exports.operatorTextEndsWith = exports.operatorTextStartsWith = exports.operatorTextDoesNotContain = exports.operatorTextContains = exports.operatorTextIsNot = exports.operatorTextExactlyIs = exports.operatorTextIs = exports.operatorUserRoleIsAnyOf = exports.operatorNumberEquals = exports.operatorReferenceIsNotEmpty = exports.operatorReferenceIsEmpty = exports.operatorReferenceIsNoneOf = exports.operatorReferenceIsNot = exports.operatorReferenceIsAnyOf = exports.operatorReferenceIs = exports.operatorReferenceIsNotMe = exports.operatorReferenceIsMe = void 0;
|
|
7
7
|
exports.hiddenValidOperators = exports.operators = exports.operatorsGroups = exports.operatorsGroupsWithoutMe = exports.operatorDateTimeIsOnOrAfter = exports.operatorDateTimeIsOnOrBefore = exports.operatorDateTimeIsAfter = exports.operatorDateTimeIsBefore = exports.operatorDateTimeIsWithin = exports.operatorDateTimeIs = exports.operatorDateIsOnOrAfter = exports.operatorDateIsAfter = exports.operatorDateIsOnOrBefore = exports.operatorDateIsBefore = void 0;
|
|
8
8
|
/* eslint-disable max-lines */
|
|
9
|
-
const
|
|
9
|
+
const findKey_1 = __importDefault(require("lodash/findKey"));
|
|
10
|
+
const flatten_1 = __importDefault(require("lodash/flatten"));
|
|
11
|
+
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
12
|
+
const isString_1 = __importDefault(require("lodash/isString"));
|
|
13
|
+
const last_1 = __importDefault(require("lodash/last"));
|
|
14
|
+
const mapValues_1 = __importDefault(require("lodash/mapValues"));
|
|
15
|
+
const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
10
16
|
const uuid_1 = require("uuid");
|
|
11
17
|
const params_placeholders_1 = require("../params-placeholders");
|
|
12
18
|
const operator_utils_1 = require("./operator-utils");
|
|
@@ -50,12 +56,16 @@ function isValidReferenceUUID(val) {
|
|
|
50
56
|
// non-existing UUID for case when one type has enum type but another type does not
|
|
51
57
|
// temporary disable bcz fix opens up another bugs like unable to create entity with pre-set filters and so on
|
|
52
58
|
// return isUUID.anyNonNil(val) || val === "11111111-1111-1111-1111-111111111111";
|
|
53
|
-
return (0, uuid_1.validate)(val) || (
|
|
59
|
+
return (0, uuid_1.validate)(val) || ((0, isString_1.default)(val) && (0, params_placeholders_1.isDynamicFilterParam)(val));
|
|
54
60
|
}
|
|
55
61
|
exports.operatorReferenceIs = {
|
|
56
62
|
id: ":operator/reference-is",
|
|
57
63
|
title: "is",
|
|
58
|
-
pattern: [
|
|
64
|
+
pattern: [
|
|
65
|
+
"=",
|
|
66
|
+
patternMatchPlaceholders_1.referenceExpressionPlaceholder,
|
|
67
|
+
(0, patternMatchPlaceholders_1.getParamPlaceholder)((val) => isValidReferenceUUID(val) || (0, operator_utils_1.isNoValue)(val)),
|
|
68
|
+
],
|
|
59
69
|
type: ":operator-type/binary",
|
|
60
70
|
};
|
|
61
71
|
exports.operatorReferenceIsAnyOf = {
|
|
@@ -67,7 +77,11 @@ exports.operatorReferenceIsAnyOf = {
|
|
|
67
77
|
exports.operatorReferenceIsNot = {
|
|
68
78
|
id: ":operator/reference-is-not",
|
|
69
79
|
title: "is not",
|
|
70
|
-
pattern: [
|
|
80
|
+
pattern: [
|
|
81
|
+
"!=",
|
|
82
|
+
patternMatchPlaceholders_1.referenceExpressionPlaceholder,
|
|
83
|
+
(0, patternMatchPlaceholders_1.getParamPlaceholder)((val) => isValidReferenceUUID(val) || (0, operator_utils_1.isNoValue)(val)),
|
|
84
|
+
],
|
|
71
85
|
type: ":operator-type/binary",
|
|
72
86
|
};
|
|
73
87
|
exports.operatorReferenceIsNoneOf = {
|
|
@@ -100,7 +114,7 @@ exports.operatorUserRoleIsAnyOf = {
|
|
|
100
114
|
pattern: [
|
|
101
115
|
"q/in",
|
|
102
116
|
patternMatchPlaceholders_1.textFieldPlaceholder,
|
|
103
|
-
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) =>
|
|
117
|
+
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) => (Array.isArray(x) && x.every((item) => (0, isString_1.default)(item))) || (0, operator_utils_1.isNoValue)(x)),
|
|
104
118
|
],
|
|
105
119
|
type: ":operator-type/binary",
|
|
106
120
|
};
|
|
@@ -268,7 +282,7 @@ const getCollectionContainsAnyOfPattern = (comparisonOperator) => [
|
|
|
268
282
|
"q/where": [
|
|
269
283
|
"q/in",
|
|
270
284
|
["fibery/id"],
|
|
271
|
-
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) =>
|
|
285
|
+
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) => (Array.isArray(x) && x.every((item) => isValidReferenceUUID(item))) || (0, operator_utils_1.isNoValue)(x)),
|
|
272
286
|
],
|
|
273
287
|
"q/limit": "q/no-limit",
|
|
274
288
|
},
|
|
@@ -276,7 +290,7 @@ const getCollectionContainsAnyOfPattern = (comparisonOperator) => [
|
|
|
276
290
|
];
|
|
277
291
|
const collectionContainsAnyOfPattern = getCollectionContainsAnyOfPattern(">");
|
|
278
292
|
const collectionDoesNotContainAnyOfPattern = getCollectionContainsAnyOfPattern("=");
|
|
279
|
-
const collectionContainsPattern = getCollectionContainsPattern((x) => isValidReferenceUUID(x));
|
|
293
|
+
const collectionContainsPattern = getCollectionContainsPattern((x) => isValidReferenceUUID(x) || (0, operator_utils_1.isNoValue)(x));
|
|
280
294
|
const collectionContainsMePattern = getCollectionContainsPattern((x) => x === "$my-id");
|
|
281
295
|
const getCollectionDoesNotContainPattern = (paramMatchFn) => [
|
|
282
296
|
"=",
|
|
@@ -288,7 +302,7 @@ const getCollectionDoesNotContainPattern = (paramMatchFn) => [
|
|
|
288
302
|
},
|
|
289
303
|
(0, patternMatchPlaceholders_1.getConstantPlaceholder)(0),
|
|
290
304
|
];
|
|
291
|
-
const collectionDoesNotContainPattern = getCollectionDoesNotContainPattern((x) => isValidReferenceUUID(x));
|
|
305
|
+
const collectionDoesNotContainPattern = getCollectionDoesNotContainPattern((x) => isValidReferenceUUID(x) || (0, operator_utils_1.isNoValue)(x));
|
|
292
306
|
const collectionDoesNotContainMePattern = getCollectionDoesNotContainPattern((x) => x === "$my-id");
|
|
293
307
|
exports.operatorCollectionContains = {
|
|
294
308
|
id: ":operator/collection-contains",
|
|
@@ -333,7 +347,7 @@ exports.operatorCollectionContainsMe = getOperatorCollectionMe({
|
|
|
333
347
|
pattern: collectionContainsMePattern,
|
|
334
348
|
});
|
|
335
349
|
const withoutLastIdAccess = (expression) => {
|
|
336
|
-
if (
|
|
350
|
+
if ((0, last_1.default)(expression) !== "fibery/id") {
|
|
337
351
|
throw new Error("not supported");
|
|
338
352
|
}
|
|
339
353
|
return expression.slice(0, -1);
|
|
@@ -524,11 +538,11 @@ exports.operatorDateTimeIs = {
|
|
|
524
538
|
[">=", patternMatchPlaceholders_1.dateTimeOrDateTimeRangeExpressionPlaceholder, (0, patternMatchPlaceholders_1.getParamPlaceholder)()],
|
|
525
539
|
["<=", patternMatchPlaceholders_1.dateTimeOrDateTimeRangeExpressionPlaceholder, (0, patternMatchPlaceholders_1.getParamPlaceholder)()],
|
|
526
540
|
], typeObject);
|
|
527
|
-
if (matchSuccess &&
|
|
541
|
+
if (matchSuccess && (0, isEqual_1.default)(firstFieldMatch.value, secondFieldMatch.value)) {
|
|
528
542
|
const firstParamValue = firstParamMatch.value;
|
|
529
543
|
const secondParamValue = secondParamMatch.value;
|
|
530
544
|
if (params_placeholders_1.paramsPlaceholdersLookup[firstParamValue] && params_placeholders_1.paramsPlaceholdersLookup[secondParamValue]) {
|
|
531
|
-
const value =
|
|
545
|
+
const value = (0, findKey_1.default)(params_placeholders_1.dateToDateTimeIntervalLookup, (val) => val.start === firstParamValue && val.end === secondParamValue);
|
|
532
546
|
return {
|
|
533
547
|
matchSuccess,
|
|
534
548
|
expression: firstFieldMatch.value,
|
|
@@ -551,7 +565,11 @@ exports.operatorDateTimeIs = {
|
|
|
551
565
|
}
|
|
552
566
|
}
|
|
553
567
|
{
|
|
554
|
-
const { matchSuccess, matches: [fieldMatch, paramMatch], } = (0, pattern_match_1.doPatternMatch)(where, params, [
|
|
568
|
+
const { matchSuccess, matches: [fieldMatch, paramMatch], } = (0, pattern_match_1.doPatternMatch)(where, params, [
|
|
569
|
+
"=",
|
|
570
|
+
patternMatchPlaceholders_1.dateTimeOrDateTimeRangeExpressionPlaceholder,
|
|
571
|
+
(0, patternMatchPlaceholders_1.getParamPlaceholder)((x) => ((0, isString_1.default)(x) && (0, operator_utils_1.isDateTime)(x)) || (0, operator_utils_1.isNoValue)(x)),
|
|
572
|
+
], typeObject);
|
|
555
573
|
if (matchSuccess) {
|
|
556
574
|
return {
|
|
557
575
|
matchSuccess,
|
|
@@ -713,7 +731,7 @@ exports.operatorsGroupsWithoutMe = {
|
|
|
713
731
|
],
|
|
714
732
|
":filter-type/user-role": [exports.operatorUserRoleIsAnyOf],
|
|
715
733
|
};
|
|
716
|
-
exports.operatorsGroups =
|
|
734
|
+
exports.operatorsGroups = (0, mapValues_1.default)(exports.operatorsGroupsWithoutMe, (value, key) => {
|
|
717
735
|
if (key === ":filter-type/user-reference") {
|
|
718
736
|
return [exports.operatorReferenceIsMe, exports.operatorReferenceIsNotMe].concat(value);
|
|
719
737
|
}
|
|
@@ -724,7 +742,7 @@ exports.operatorsGroups = lodash_1.default.mapValues(exports.operatorsGroupsWith
|
|
|
724
742
|
return value;
|
|
725
743
|
}
|
|
726
744
|
});
|
|
727
|
-
exports.operators =
|
|
745
|
+
exports.operators = (0, uniq_1.default)((0, flatten_1.default)(Object.values(exports.operatorsGroups))).concat([
|
|
728
746
|
// these operators are used only for backward compatibility. You can't select them on UI.
|
|
729
747
|
// https://the.fibery.io/SoftDev/User~Story/Empty-operator-in-Filters-on-view-should-work-the-same-way-as-IsEmpty-in-formulas-1972
|
|
730
748
|
exports.operatorTextIsEmptyV1,
|