@memberjunction/global 2.75.0 → 2.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SafeExpressionEvaluator.d.ts +141 -0
- package/dist/SafeExpressionEvaluator.d.ts.map +1 -0
- package/dist/SafeExpressionEvaluator.js +316 -0
- package/dist/SafeExpressionEvaluator.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +14 -0
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +159 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Safe expression evaluator for conditional logic in MemberJunction.
|
|
3
|
+
*
|
|
4
|
+
* This module provides a secure way to evaluate boolean expressions against
|
|
5
|
+
* context objects without allowing arbitrary code execution. It supports
|
|
6
|
+
* dot notation for nested property access and common comparison operations.
|
|
7
|
+
*
|
|
8
|
+
* @module @memberjunction/global
|
|
9
|
+
* @author MemberJunction.com
|
|
10
|
+
* @since 2.76.0
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Result of expression evaluation including success status and diagnostics
|
|
14
|
+
*/
|
|
15
|
+
export interface ExpressionEvaluationResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
value?: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
diagnostics?: {
|
|
20
|
+
expression: string;
|
|
21
|
+
context: Record<string, any>;
|
|
22
|
+
evaluationTime: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Safe expression evaluator that prevents arbitrary code execution while
|
|
27
|
+
* supporting common boolean expressions and property access patterns.
|
|
28
|
+
*
|
|
29
|
+
* Supported operations:
|
|
30
|
+
* - Comparison: ==, ===, !=, !==, <, >, <=, >=
|
|
31
|
+
* - Logical: &&, ||, !
|
|
32
|
+
* - Property access: dot notation (e.g., payload.customer.name)
|
|
33
|
+
* - Array access: bracket notation (e.g., items[0])
|
|
34
|
+
* - Safe methods: .length, .includes(), .startsWith(), .endsWith()
|
|
35
|
+
* - Array methods: .some(), .every(), .find(), .filter()
|
|
36
|
+
* - Type checking: typeof, instanceof (limited to safe types)
|
|
37
|
+
*
|
|
38
|
+
* @class SafeExpressionEvaluator
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const evaluator = new SafeExpressionEvaluator();
|
|
43
|
+
*
|
|
44
|
+
* // Simple comparison
|
|
45
|
+
* const result1 = evaluator.evaluate(
|
|
46
|
+
* "status == 'active'",
|
|
47
|
+
* { status: 'active' }
|
|
48
|
+
* );
|
|
49
|
+
*
|
|
50
|
+
* // Nested property access
|
|
51
|
+
* const result2 = evaluator.evaluate(
|
|
52
|
+
* "payload.customer.tier == 'premium' && payload.order.total > 1000",
|
|
53
|
+
* { payload: { customer: { tier: 'premium' }, order: { total: 1500 } } }
|
|
54
|
+
* );
|
|
55
|
+
*
|
|
56
|
+
* // Array methods
|
|
57
|
+
* const result3 = evaluator.evaluate(
|
|
58
|
+
* "items.some(item => item.price > 100)",
|
|
59
|
+
* { items: [{ price: 50 }, { price: 150 }] }
|
|
60
|
+
* );
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare class SafeExpressionEvaluator {
|
|
64
|
+
/**
|
|
65
|
+
* Patterns that indicate potentially dangerous code
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
private static readonly DANGEROUS_PATTERNS;
|
|
69
|
+
/**
|
|
70
|
+
* Safe methods that can be called on objects
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
private static readonly SAFE_METHODS;
|
|
74
|
+
/**
|
|
75
|
+
* Evaluates a boolean expression against a context object
|
|
76
|
+
*
|
|
77
|
+
* @param {string} expression - The boolean expression to evaluate
|
|
78
|
+
* @param {Record<string, any>} context - The context object containing variables
|
|
79
|
+
* @param {boolean} [enableDiagnostics=false] - Whether to include diagnostic information
|
|
80
|
+
*
|
|
81
|
+
* @returns {ExpressionEvaluationResult} The evaluation result
|
|
82
|
+
*/
|
|
83
|
+
evaluate(expression: string, context: Record<string, any>, enableDiagnostics?: boolean): ExpressionEvaluationResult;
|
|
84
|
+
/**
|
|
85
|
+
* Validates an expression for safety
|
|
86
|
+
*
|
|
87
|
+
* @param {string} expression - The expression to validate
|
|
88
|
+
*
|
|
89
|
+
* @returns {string | null} Error message if invalid, null if valid
|
|
90
|
+
*
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
private validateExpression;
|
|
94
|
+
/**
|
|
95
|
+
* Creates a safe context object with only allowed properties
|
|
96
|
+
*
|
|
97
|
+
* @param {Record<string, any>} context - The original context
|
|
98
|
+
*
|
|
99
|
+
* @returns {Record<string, any>} The safe context
|
|
100
|
+
*
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
private createSafeContext;
|
|
104
|
+
/**
|
|
105
|
+
* Checks if a property name is potentially dangerous
|
|
106
|
+
*
|
|
107
|
+
* @param {string} name - The property name
|
|
108
|
+
*
|
|
109
|
+
* @returns {boolean} True if dangerous
|
|
110
|
+
*
|
|
111
|
+
* @private
|
|
112
|
+
*/
|
|
113
|
+
private isDangerousPropertyName;
|
|
114
|
+
/**
|
|
115
|
+
* Safely clones a value for use in evaluation context
|
|
116
|
+
*
|
|
117
|
+
* @param {any} value - The value to clone
|
|
118
|
+
*
|
|
119
|
+
* @returns {any} The cloned value
|
|
120
|
+
*
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
private cloneValue;
|
|
124
|
+
/**
|
|
125
|
+
* Evaluates multiple expressions and returns all results
|
|
126
|
+
*
|
|
127
|
+
* @param {Array<{expression: string, name?: string}>} expressions - Array of expressions to evaluate
|
|
128
|
+
* @param {Record<string, any>} context - The context object
|
|
129
|
+
*
|
|
130
|
+
* @returns {Record<string, ExpressionEvaluationResult>} Map of results by name or index
|
|
131
|
+
*/
|
|
132
|
+
evaluateMultiple(expressions: Array<{
|
|
133
|
+
expression: string;
|
|
134
|
+
name?: string;
|
|
135
|
+
}>, context: Record<string, any>): Record<string, ExpressionEvaluationResult>;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Default instance for convenience
|
|
139
|
+
*/
|
|
140
|
+
export declare const defaultExpressionEvaluator: SafeExpressionEvaluator;
|
|
141
|
+
//# sourceMappingURL=SafeExpressionEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafeExpressionEvaluator.d.ts","sourceRoot":"","sources":["../src/SafeExpressionEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,uBAAuB;IAChC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CA4BxC;IAEF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAoBlC;IAEF;;;;;;;;OAQG;IACI,QAAQ,CACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,iBAAiB,GAAE,OAAe,GACnC,0BAA0B;IA8D7B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;;;;OAQG;IACH,OAAO,CAAC,UAAU;IAqClB;;;;;;;OAOG;IACI,gBAAgB,CACnB,WAAW,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,EACvD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAUhD;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B,yBAAgC,CAAC"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Safe expression evaluator for conditional logic in MemberJunction.
|
|
4
|
+
*
|
|
5
|
+
* This module provides a secure way to evaluate boolean expressions against
|
|
6
|
+
* context objects without allowing arbitrary code execution. It supports
|
|
7
|
+
* dot notation for nested property access and common comparison operations.
|
|
8
|
+
*
|
|
9
|
+
* @module @memberjunction/global
|
|
10
|
+
* @author MemberJunction.com
|
|
11
|
+
* @since 2.76.0
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.defaultExpressionEvaluator = exports.SafeExpressionEvaluator = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Safe expression evaluator that prevents arbitrary code execution while
|
|
17
|
+
* supporting common boolean expressions and property access patterns.
|
|
18
|
+
*
|
|
19
|
+
* Supported operations:
|
|
20
|
+
* - Comparison: ==, ===, !=, !==, <, >, <=, >=
|
|
21
|
+
* - Logical: &&, ||, !
|
|
22
|
+
* - Property access: dot notation (e.g., payload.customer.name)
|
|
23
|
+
* - Array access: bracket notation (e.g., items[0])
|
|
24
|
+
* - Safe methods: .length, .includes(), .startsWith(), .endsWith()
|
|
25
|
+
* - Array methods: .some(), .every(), .find(), .filter()
|
|
26
|
+
* - Type checking: typeof, instanceof (limited to safe types)
|
|
27
|
+
*
|
|
28
|
+
* @class SafeExpressionEvaluator
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const evaluator = new SafeExpressionEvaluator();
|
|
33
|
+
*
|
|
34
|
+
* // Simple comparison
|
|
35
|
+
* const result1 = evaluator.evaluate(
|
|
36
|
+
* "status == 'active'",
|
|
37
|
+
* { status: 'active' }
|
|
38
|
+
* );
|
|
39
|
+
*
|
|
40
|
+
* // Nested property access
|
|
41
|
+
* const result2 = evaluator.evaluate(
|
|
42
|
+
* "payload.customer.tier == 'premium' && payload.order.total > 1000",
|
|
43
|
+
* { payload: { customer: { tier: 'premium' }, order: { total: 1500 } } }
|
|
44
|
+
* );
|
|
45
|
+
*
|
|
46
|
+
* // Array methods
|
|
47
|
+
* const result3 = evaluator.evaluate(
|
|
48
|
+
* "items.some(item => item.price > 100)",
|
|
49
|
+
* { items: [{ price: 50 }, { price: 150 }] }
|
|
50
|
+
* );
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
class SafeExpressionEvaluator {
|
|
54
|
+
/**
|
|
55
|
+
* Evaluates a boolean expression against a context object
|
|
56
|
+
*
|
|
57
|
+
* @param {string} expression - The boolean expression to evaluate
|
|
58
|
+
* @param {Record<string, any>} context - The context object containing variables
|
|
59
|
+
* @param {boolean} [enableDiagnostics=false] - Whether to include diagnostic information
|
|
60
|
+
*
|
|
61
|
+
* @returns {ExpressionEvaluationResult} The evaluation result
|
|
62
|
+
*/
|
|
63
|
+
evaluate(expression, context, enableDiagnostics = false) {
|
|
64
|
+
const startTime = Date.now();
|
|
65
|
+
try {
|
|
66
|
+
// Validate expression safety
|
|
67
|
+
const validationError = this.validateExpression(expression);
|
|
68
|
+
if (validationError) {
|
|
69
|
+
return {
|
|
70
|
+
success: false,
|
|
71
|
+
error: validationError,
|
|
72
|
+
diagnostics: enableDiagnostics ? {
|
|
73
|
+
expression,
|
|
74
|
+
context,
|
|
75
|
+
evaluationTime: Date.now() - startTime
|
|
76
|
+
} : undefined
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Prepare safe context
|
|
80
|
+
const safeContext = this.createSafeContext(context);
|
|
81
|
+
// Create evaluation function
|
|
82
|
+
const contextKeys = Object.keys(safeContext);
|
|
83
|
+
const contextValues = contextKeys.map(key => safeContext[key]);
|
|
84
|
+
// Build function body with strict mode
|
|
85
|
+
const functionBody = `
|
|
86
|
+
"use strict";
|
|
87
|
+
try {
|
|
88
|
+
return Boolean(${expression});
|
|
89
|
+
} catch (e) {
|
|
90
|
+
throw new Error('Expression evaluation failed: ' + e.message);
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
// Create and execute function
|
|
94
|
+
const evaluator = new Function(...contextKeys, functionBody);
|
|
95
|
+
const result = evaluator(...contextValues);
|
|
96
|
+
return {
|
|
97
|
+
success: true,
|
|
98
|
+
value: Boolean(result),
|
|
99
|
+
diagnostics: enableDiagnostics ? {
|
|
100
|
+
expression,
|
|
101
|
+
context,
|
|
102
|
+
evaluationTime: Date.now() - startTime
|
|
103
|
+
} : undefined
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return {
|
|
108
|
+
success: false,
|
|
109
|
+
error: error instanceof Error ? error.message : String(error),
|
|
110
|
+
diagnostics: enableDiagnostics ? {
|
|
111
|
+
expression,
|
|
112
|
+
context,
|
|
113
|
+
evaluationTime: Date.now() - startTime
|
|
114
|
+
} : undefined
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Validates an expression for safety
|
|
120
|
+
*
|
|
121
|
+
* @param {string} expression - The expression to validate
|
|
122
|
+
*
|
|
123
|
+
* @returns {string | null} Error message if invalid, null if valid
|
|
124
|
+
*
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
validateExpression(expression) {
|
|
128
|
+
if (!expression || typeof expression !== 'string') {
|
|
129
|
+
return 'Expression must be a non-empty string';
|
|
130
|
+
}
|
|
131
|
+
if (expression.length > 1000) {
|
|
132
|
+
return 'Expression exceeds maximum length of 1000 characters';
|
|
133
|
+
}
|
|
134
|
+
// Check for dangerous patterns
|
|
135
|
+
for (const pattern of SafeExpressionEvaluator.DANGEROUS_PATTERNS) {
|
|
136
|
+
if (pattern.test(expression)) {
|
|
137
|
+
return `Expression contains forbidden construct: ${pattern.source}`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Basic syntax validation - ensure balanced parentheses
|
|
141
|
+
let parenCount = 0;
|
|
142
|
+
for (const char of expression) {
|
|
143
|
+
if (char === '(')
|
|
144
|
+
parenCount++;
|
|
145
|
+
if (char === ')')
|
|
146
|
+
parenCount--;
|
|
147
|
+
if (parenCount < 0) {
|
|
148
|
+
return 'Unbalanced parentheses in expression';
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (parenCount !== 0) {
|
|
152
|
+
return 'Unbalanced parentheses in expression';
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Creates a safe context object with only allowed properties
|
|
158
|
+
*
|
|
159
|
+
* @param {Record<string, any>} context - The original context
|
|
160
|
+
*
|
|
161
|
+
* @returns {Record<string, any>} The safe context
|
|
162
|
+
*
|
|
163
|
+
* @private
|
|
164
|
+
*/
|
|
165
|
+
createSafeContext(context) {
|
|
166
|
+
// Deep clone to prevent modifications to original
|
|
167
|
+
const safeContext = {};
|
|
168
|
+
for (const [key, value] of Object.entries(context)) {
|
|
169
|
+
// Skip dangerous property names
|
|
170
|
+
if (this.isDangerousPropertyName(key)) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
// Clone value safely
|
|
174
|
+
safeContext[key] = this.cloneValue(value);
|
|
175
|
+
}
|
|
176
|
+
return safeContext;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Checks if a property name is potentially dangerous
|
|
180
|
+
*
|
|
181
|
+
* @param {string} name - The property name
|
|
182
|
+
*
|
|
183
|
+
* @returns {boolean} True if dangerous
|
|
184
|
+
*
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
isDangerousPropertyName(name) {
|
|
188
|
+
const dangerous = [
|
|
189
|
+
'__proto__',
|
|
190
|
+
'constructor',
|
|
191
|
+
'prototype',
|
|
192
|
+
'eval',
|
|
193
|
+
'Function'
|
|
194
|
+
];
|
|
195
|
+
return dangerous.includes(name);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Safely clones a value for use in evaluation context
|
|
199
|
+
*
|
|
200
|
+
* @param {any} value - The value to clone
|
|
201
|
+
*
|
|
202
|
+
* @returns {any} The cloned value
|
|
203
|
+
*
|
|
204
|
+
* @private
|
|
205
|
+
*/
|
|
206
|
+
cloneValue(value) {
|
|
207
|
+
if (value === null || value === undefined) {
|
|
208
|
+
return value;
|
|
209
|
+
}
|
|
210
|
+
const type = typeof value;
|
|
211
|
+
// Primitives are safe
|
|
212
|
+
if (type === 'string' || type === 'number' || type === 'boolean') {
|
|
213
|
+
return value;
|
|
214
|
+
}
|
|
215
|
+
// Arrays
|
|
216
|
+
if (Array.isArray(value)) {
|
|
217
|
+
return value.map(item => this.cloneValue(item));
|
|
218
|
+
}
|
|
219
|
+
// Plain objects
|
|
220
|
+
if (type === 'object' && value.constructor === Object) {
|
|
221
|
+
const cloned = {};
|
|
222
|
+
for (const [key, val] of Object.entries(value)) {
|
|
223
|
+
if (!this.isDangerousPropertyName(key)) {
|
|
224
|
+
cloned[key] = this.cloneValue(val);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return cloned;
|
|
228
|
+
}
|
|
229
|
+
// Dates
|
|
230
|
+
if (value instanceof Date) {
|
|
231
|
+
return new Date(value);
|
|
232
|
+
}
|
|
233
|
+
// For other types, return a safe representation
|
|
234
|
+
return String(value);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Evaluates multiple expressions and returns all results
|
|
238
|
+
*
|
|
239
|
+
* @param {Array<{expression: string, name?: string}>} expressions - Array of expressions to evaluate
|
|
240
|
+
* @param {Record<string, any>} context - The context object
|
|
241
|
+
*
|
|
242
|
+
* @returns {Record<string, ExpressionEvaluationResult>} Map of results by name or index
|
|
243
|
+
*/
|
|
244
|
+
evaluateMultiple(expressions, context) {
|
|
245
|
+
const results = {};
|
|
246
|
+
expressions.forEach((expr, index) => {
|
|
247
|
+
const key = expr.name || `expression_${index}`;
|
|
248
|
+
results[key] = this.evaluate(expr.expression, context);
|
|
249
|
+
});
|
|
250
|
+
return results;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
exports.SafeExpressionEvaluator = SafeExpressionEvaluator;
|
|
254
|
+
/**
|
|
255
|
+
* Patterns that indicate potentially dangerous code
|
|
256
|
+
* @private
|
|
257
|
+
*/
|
|
258
|
+
SafeExpressionEvaluator.DANGEROUS_PATTERNS = [
|
|
259
|
+
/\beval\s*\(/i,
|
|
260
|
+
/\bnew\s+Function/i,
|
|
261
|
+
/\bFunction\s*\(/i,
|
|
262
|
+
/\bimport\s+/i,
|
|
263
|
+
/\brequire\s*\(/i,
|
|
264
|
+
/\bprocess\./i,
|
|
265
|
+
/\bglobal\./i,
|
|
266
|
+
/\bwindow\./i,
|
|
267
|
+
/\bdocument\./i,
|
|
268
|
+
/\b__proto__\b/i,
|
|
269
|
+
/\bconstructor\b/i,
|
|
270
|
+
/\bprototype\b/i,
|
|
271
|
+
/\.\s*constructor/i,
|
|
272
|
+
/\bthis\b/,
|
|
273
|
+
/\bawait\b/i,
|
|
274
|
+
/\basync\b/i,
|
|
275
|
+
/\bclass\b/i,
|
|
276
|
+
/\bextends\b/i,
|
|
277
|
+
/\bthrow\b/i,
|
|
278
|
+
/\btry\b/i,
|
|
279
|
+
/\bcatch\b/i,
|
|
280
|
+
/\bfinally\b/i,
|
|
281
|
+
/;/, // No semicolons to prevent multiple statements
|
|
282
|
+
/{/, // No curly braces to prevent code blocks
|
|
283
|
+
/}/, // No curly braces
|
|
284
|
+
/`/, // No template literals
|
|
285
|
+
/\$\{/, // No template expressions
|
|
286
|
+
];
|
|
287
|
+
/**
|
|
288
|
+
* Safe methods that can be called on objects
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
SafeExpressionEvaluator.SAFE_METHODS = [
|
|
292
|
+
'length',
|
|
293
|
+
'includes',
|
|
294
|
+
'startsWith',
|
|
295
|
+
'endsWith',
|
|
296
|
+
'indexOf',
|
|
297
|
+
'lastIndexOf',
|
|
298
|
+
'toLowerCase',
|
|
299
|
+
'toUpperCase',
|
|
300
|
+
'trim',
|
|
301
|
+
'trimStart',
|
|
302
|
+
'trimEnd',
|
|
303
|
+
'toString',
|
|
304
|
+
'valueOf',
|
|
305
|
+
'some',
|
|
306
|
+
'every',
|
|
307
|
+
'find',
|
|
308
|
+
'filter',
|
|
309
|
+
'map',
|
|
310
|
+
'reduce'
|
|
311
|
+
];
|
|
312
|
+
/**
|
|
313
|
+
* Default instance for convenience
|
|
314
|
+
*/
|
|
315
|
+
exports.defaultExpressionEvaluator = new SafeExpressionEvaluator();
|
|
316
|
+
//# sourceMappingURL=SafeExpressionEvaluator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafeExpressionEvaluator.js","sourceRoot":"","sources":["../src/SafeExpressionEvaluator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './ClassUtils';
|
|
|
8
8
|
export * from './util/PatternUtils';
|
|
9
9
|
export * from './ValidationTypes';
|
|
10
10
|
export * from './JSONValidator';
|
|
11
|
+
export * from './SafeExpressionEvaluator';
|
|
11
12
|
export * from './Global';
|
|
12
13
|
export * from './RegisterClass';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAGzC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __exportStar(require("./ClassUtils"), exports);
|
|
|
28
28
|
__exportStar(require("./util/PatternUtils"), exports);
|
|
29
29
|
__exportStar(require("./ValidationTypes"), exports);
|
|
30
30
|
__exportStar(require("./JSONValidator"), exports);
|
|
31
|
+
__exportStar(require("./SafeExpressionEvaluator"), exports);
|
|
31
32
|
// Export the main classes
|
|
32
33
|
__exportStar(require("./Global"), exports);
|
|
33
34
|
__exportStar(require("./RegisterClass"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,+CAAgE;AAAvD,4GAAA,YAAY,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AACxC,8CAA2B;AAC3B,yCAAsB;AACtB,gDAA6B;AAC7B,kDAA+B;AAC/B,6CAA0B;AAC1B,+CAA4B;AAC5B,sDAAoC;AACpC,oDAAiC;AACjC,kDAA+B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,+CAAgE;AAAvD,4GAAA,YAAY,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AACxC,8CAA2B;AAC3B,yCAAsB;AACtB,gDAA6B;AAC7B,kDAA+B;AAC/B,6CAA0B;AAC1B,+CAA4B;AAC5B,sDAAoC;AACpC,oDAAiC;AACjC,kDAA+B;AAC/B,4DAAyC;AAEzC,0BAA0B;AAC1B,2CAAwB;AACxB,kDAA+B"}
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,oBAAoB,sBA4BnC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,GAAE,OAAe,GAAG,CAAC,CAKpG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,oBAAoB,sBA4BnC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,GAAE,OAAe,GAAG,CAAC,CAKpG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAmInE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAe9D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,CAAC,CAYxF;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,SAAS,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAa3G;AAOD;;;;;EAKE;AACF,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAc9D;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjD;AAuED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAuCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAG;IAAE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAwCnJ;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IACjD,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAuBhD;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAG,MAAM,CAerG;AAGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAalD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,MAAW,EAAE,SAAS,GAAE,GAAU,QAS3E;AAED;;;GAGG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAGD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,GAAE,OAAc,GAAG,MAAM,EAAE,CA4CvG;AASD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oHAAoH;IACpH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,gBAAqB,GAAG,GAAG,CAUhF"}
|
package/dist/util.js
CHANGED
|
@@ -146,6 +146,7 @@ function CleanJSON(inputString) {
|
|
|
146
146
|
}
|
|
147
147
|
catch (e) {
|
|
148
148
|
// If direct parsing fails, continue with cleanup logic
|
|
149
|
+
const x = e; // for breakpoints, does nothing
|
|
149
150
|
}
|
|
150
151
|
// Handle double-escaped characters
|
|
151
152
|
// This converts \\n to actual \n, \\" to actual ", etc.
|
|
@@ -212,6 +213,19 @@ function CleanJSON(inputString) {
|
|
|
212
213
|
}
|
|
213
214
|
}
|
|
214
215
|
else {
|
|
216
|
+
// sometimes LLMs mistakenly add one extra } at the very end of the string so let's
|
|
217
|
+
// handle that case and check for an extra closing brace
|
|
218
|
+
const trim1 = jsonString.trim();
|
|
219
|
+
if (trim1.endsWith('}')) {
|
|
220
|
+
const trim2 = trim1.substring(0, trim1.length - 1);
|
|
221
|
+
try {
|
|
222
|
+
const parsed = JSON.parse(trim2);
|
|
223
|
+
return JSON.stringify(parsed, null, 2);
|
|
224
|
+
}
|
|
225
|
+
catch (e) {
|
|
226
|
+
const x = e; // for breakpoints, does nothing
|
|
227
|
+
}
|
|
228
|
+
}
|
|
215
229
|
// If there are no Markdown code fences, we could have a string that contains JSON, or is JUST JSON
|
|
216
230
|
// Attempt to extract JSON from a mixed string
|
|
217
231
|
const firstBracketIndex = jsonString.indexOf('[');
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -650,6 +650,165 @@ const html = ConvertMarkdownStringToHtmlList('Unordered', '- Item 1\n- Item 2\n-
|
|
|
650
650
|
// Returns: <ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>
|
|
651
651
|
```
|
|
652
652
|
|
|
653
|
+
### Safe Expression Evaluator
|
|
654
|
+
|
|
655
|
+
Secure boolean expression evaluation for conditional logic without allowing arbitrary code execution:
|
|
656
|
+
|
|
657
|
+
```typescript
|
|
658
|
+
import { SafeExpressionEvaluator } from '@memberjunction/global';
|
|
659
|
+
|
|
660
|
+
// Create evaluator instance
|
|
661
|
+
const evaluator = new SafeExpressionEvaluator();
|
|
662
|
+
|
|
663
|
+
// Simple comparisons
|
|
664
|
+
const result1 = evaluator.evaluate(
|
|
665
|
+
"status == 'active' && score > 80",
|
|
666
|
+
{ status: 'active', score: 95 }
|
|
667
|
+
);
|
|
668
|
+
console.log(result1.success); // true
|
|
669
|
+
console.log(result1.value); // true
|
|
670
|
+
|
|
671
|
+
// Nested property access with dot notation
|
|
672
|
+
const result2 = evaluator.evaluate(
|
|
673
|
+
"user.role == 'admin' && user.permissions.includes('write')",
|
|
674
|
+
{
|
|
675
|
+
user: {
|
|
676
|
+
role: 'admin',
|
|
677
|
+
permissions: ['read', 'write', 'delete']
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
);
|
|
681
|
+
console.log(result2.value); // true
|
|
682
|
+
|
|
683
|
+
// Array methods and complex conditions
|
|
684
|
+
const result3 = evaluator.evaluate(
|
|
685
|
+
"items.some(item => item.price > 100) && items.length >= 2",
|
|
686
|
+
{
|
|
687
|
+
items: [
|
|
688
|
+
{ name: 'Item 1', price: 50 },
|
|
689
|
+
{ name: 'Item 2', price: 150 }
|
|
690
|
+
]
|
|
691
|
+
}
|
|
692
|
+
);
|
|
693
|
+
console.log(result3.value); // true
|
|
694
|
+
|
|
695
|
+
// Error handling for invalid expressions
|
|
696
|
+
const result4 = evaluator.evaluate(
|
|
697
|
+
"eval('malicious code')", // Dangerous patterns are blocked
|
|
698
|
+
{ data: 'test' }
|
|
699
|
+
);
|
|
700
|
+
console.log(result4.success); // false
|
|
701
|
+
console.log(result4.error); // "Expression contains forbidden construct: /\beval\s*\(/i"
|
|
702
|
+
|
|
703
|
+
// With diagnostics enabled
|
|
704
|
+
const result5 = evaluator.evaluate(
|
|
705
|
+
"payload.status == 'complete'",
|
|
706
|
+
{ payload: { status: 'complete' } },
|
|
707
|
+
true // Enable diagnostics
|
|
708
|
+
);
|
|
709
|
+
console.log(result5.diagnostics);
|
|
710
|
+
// {
|
|
711
|
+
// expression: "payload.status == 'complete'",
|
|
712
|
+
// context: { payload: { status: 'complete' } },
|
|
713
|
+
// evaluationTime: 2
|
|
714
|
+
// }
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
#### Supported Operations
|
|
718
|
+
|
|
719
|
+
**Comparison Operators:**
|
|
720
|
+
- `==`, `===`, `!=`, `!==`
|
|
721
|
+
- `<`, `>`, `<=`, `>=`
|
|
722
|
+
|
|
723
|
+
**Logical Operators:**
|
|
724
|
+
- `&&`, `||`, `!`
|
|
725
|
+
|
|
726
|
+
**Property Access:**
|
|
727
|
+
- Dot notation: `object.property.nested`
|
|
728
|
+
- Array access: `array[0]`, `array[index]`
|
|
729
|
+
|
|
730
|
+
**Safe Methods:**
|
|
731
|
+
- String: `.length`, `.includes()`, `.startsWith()`, `.endsWith()`, `.toLowerCase()`, `.toUpperCase()`, `.trim()`
|
|
732
|
+
- Array: `.length`, `.includes()`, `.some()`, `.every()`, `.find()`, `.filter()`, `.map()`
|
|
733
|
+
- Type checking: `typeof`, limited `instanceof`
|
|
734
|
+
|
|
735
|
+
**Type Coercion:**
|
|
736
|
+
- `Boolean(value)`
|
|
737
|
+
- String concatenation with `+`
|
|
738
|
+
|
|
739
|
+
#### Security Features
|
|
740
|
+
|
|
741
|
+
The evaluator blocks dangerous patterns including:
|
|
742
|
+
- `eval()`, `Function()`, `new Function()`
|
|
743
|
+
- `require()`, `import` statements
|
|
744
|
+
- Access to `global`, `window`, `document`, `process`
|
|
745
|
+
- Template literals and string interpolation
|
|
746
|
+
- Code blocks with `{}` and `;`
|
|
747
|
+
- `this` keyword usage
|
|
748
|
+
- `constructor`, `prototype`, `__proto__` access
|
|
749
|
+
|
|
750
|
+
#### Use Cases
|
|
751
|
+
|
|
752
|
+
1. **Workflow Conditions:**
|
|
753
|
+
```typescript
|
|
754
|
+
// Evaluate workflow paths
|
|
755
|
+
const canProceed = evaluator.evaluate(
|
|
756
|
+
"order.status == 'approved' && order.total < budget",
|
|
757
|
+
{ order: { status: 'approved', total: 500 }, budget: 1000 }
|
|
758
|
+
).value;
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
2. **Feature Flags:**
|
|
762
|
+
```typescript
|
|
763
|
+
// Check feature availability
|
|
764
|
+
const featureEnabled = evaluator.evaluate(
|
|
765
|
+
"user.tier == 'premium' || user.roles.includes('beta')",
|
|
766
|
+
{ user: { tier: 'standard', roles: ['beta', 'tester'] } }
|
|
767
|
+
).value;
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
3. **Validation Rules:**
|
|
771
|
+
```typescript
|
|
772
|
+
// Dynamic validation
|
|
773
|
+
const isValid = evaluator.evaluate(
|
|
774
|
+
"form.password.length >= 8 && form.password != form.username",
|
|
775
|
+
{ form: { username: 'john', password: 'secretpass123' } }
|
|
776
|
+
).value;
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
4. **Agent Decision Logic:**
|
|
780
|
+
```typescript
|
|
781
|
+
// AI agent path selection
|
|
782
|
+
const shouldDelegate = evaluator.evaluate(
|
|
783
|
+
"confidence < 0.7 || taskComplexity > 8",
|
|
784
|
+
{ confidence: 0.6, taskComplexity: 5 }
|
|
785
|
+
).value;
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
#### Batch Evaluation
|
|
789
|
+
|
|
790
|
+
Evaluate multiple expressions at once:
|
|
791
|
+
|
|
792
|
+
```typescript
|
|
793
|
+
const results = evaluator.evaluateMultiple([
|
|
794
|
+
{ expression: "status == 'active'", name: 'isActive' },
|
|
795
|
+
{ expression: "score > threshold", name: 'passedThreshold' },
|
|
796
|
+
{ expression: "tags.includes('priority')", name: 'isPriority' }
|
|
797
|
+
], {
|
|
798
|
+
status: 'active',
|
|
799
|
+
score: 85,
|
|
800
|
+
threshold: 80,
|
|
801
|
+
tags: ['urgent', 'priority']
|
|
802
|
+
});
|
|
803
|
+
|
|
804
|
+
// Results:
|
|
805
|
+
// {
|
|
806
|
+
// isActive: { success: true, value: true },
|
|
807
|
+
// passedThreshold: { success: true, value: true },
|
|
808
|
+
// isPriority: { success: true, value: true }
|
|
809
|
+
// }
|
|
810
|
+
```
|
|
811
|
+
|
|
653
812
|
### Pattern Matching Utilities
|
|
654
813
|
|
|
655
814
|
Convert string patterns to RegExp objects with support for simple wildcards and full regex syntax:
|