@reidelsaltres/pureper 0.1.180 → 0.1.181
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;IAmBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IA6B1C;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAkBlE;;OAEG;IACU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;IAmBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IA6B1C;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAkBlE;;OAEG;IACU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;YACW,qBAAqB;IAkDnC;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAInC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9E;;OAEG;WACW,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAKxF;;OAEG;WACiB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAI/G"}
|
|
@@ -158,9 +158,24 @@ export default class Expression {
|
|
|
158
158
|
* Выполнить в контексте (синхронно)
|
|
159
159
|
*/
|
|
160
160
|
executeInContext(context, codeOverride) {
|
|
161
|
-
|
|
161
|
+
// Handle reserved keywords used as variable names (e.g., "super")
|
|
162
|
+
const reservedKeywords = ['super', 'this', 'arguments'];
|
|
163
|
+
const keyMapping = {};
|
|
164
|
+
const keys = Object.keys(context).map(key => {
|
|
165
|
+
if (reservedKeywords.includes(key)) {
|
|
166
|
+
const safeKey = `__${key}__`;
|
|
167
|
+
keyMapping[key] = safeKey;
|
|
168
|
+
return safeKey;
|
|
169
|
+
}
|
|
170
|
+
return key;
|
|
171
|
+
});
|
|
162
172
|
const values = Object.values(context);
|
|
163
|
-
|
|
173
|
+
let codeToExecute = codeOverride ?? this.code;
|
|
174
|
+
// Replace reserved keywords in code with safe alternatives
|
|
175
|
+
for (const [original, safe] of Object.entries(keyMapping)) {
|
|
176
|
+
const regex = new RegExp(`\\b${original}\\b`, 'g');
|
|
177
|
+
codeToExecute = codeToExecute.replace(regex, safe);
|
|
178
|
+
}
|
|
164
179
|
let functionBody;
|
|
165
180
|
if (this.hasReturn) {
|
|
166
181
|
// Code contains return, wrap in function directly
|
|
@@ -193,9 +208,24 @@ export default class Expression {
|
|
|
193
208
|
* Выполнить в контексте (асинхронно)
|
|
194
209
|
*/
|
|
195
210
|
async executeInContextAsync(context, codeOverride) {
|
|
196
|
-
|
|
211
|
+
// Handle reserved keywords used as variable names (e.g., "super")
|
|
212
|
+
const reservedKeywords = ['super', 'this', 'arguments'];
|
|
213
|
+
const keyMapping = {};
|
|
214
|
+
const keys = Object.keys(context).map(key => {
|
|
215
|
+
if (reservedKeywords.includes(key)) {
|
|
216
|
+
const safeKey = `__${key}__`;
|
|
217
|
+
keyMapping[key] = safeKey;
|
|
218
|
+
return safeKey;
|
|
219
|
+
}
|
|
220
|
+
return key;
|
|
221
|
+
});
|
|
197
222
|
const values = Object.values(context);
|
|
198
|
-
|
|
223
|
+
let codeToExecute = codeOverride ?? this.code;
|
|
224
|
+
// Replace reserved keywords in code with safe alternatives
|
|
225
|
+
for (const [original, safe] of Object.entries(keyMapping)) {
|
|
226
|
+
const regex = new RegExp(`\\b${original}\\b`, 'g');
|
|
227
|
+
codeToExecute = codeToExecute.replace(regex, safe);
|
|
228
|
+
}
|
|
199
229
|
let functionBody;
|
|
200
230
|
if (this.hasReturn) {
|
|
201
231
|
functionBody = codeToExecute;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AACA,OAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACV,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,SAAS,CAAU;IAEpC,YAAY,IAAY;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,IAAY;QAC5B,iDAAiD;QACjD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAY;QAC7B,gEAAgE;QAChE,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,eAAe,CAAC,KAAY;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACrC,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;QAExC,wCAAwC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvD,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,IAAY;QACnC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,6CAA6C;QAC7C,MAAM,KAAK,GAAG,uCAAuC,CAAC;QAEtD,oEAAoE;QACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU;YACvD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;YACxE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU;YAC7C,oBAAoB,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW;YACpE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM;YACvC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;YACzE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY;YAC1E,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO;SACnE,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjD,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,KAAY;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC;QAEhC,gCAAgC;QAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,qDAAqD;QACrD,4CAA4C;QAC5C,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACnC,6CAA6C;YAC7C,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,wHAAwH,EAAE,GAAG,CAAC,CAAC;YACzK,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,OAAO,eAAe,CAAC,CAAC;YAEhF,+EAA+E;QACnF,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAY,EAAE,SAA+B;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAErC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACD,mEAAmE;YACnE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,KAAY,EAAE,SAA+B;QACnE,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAA4B,EAAE,YAAqB;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -182,9 +182,27 @@ export default class Expression {
|
|
|
182
182
|
* Выполнить в контексте (синхронно)
|
|
183
183
|
*/
|
|
184
184
|
private executeInContext(context: Record<string, any>, codeOverride?: string): any {
|
|
185
|
-
|
|
185
|
+
// Handle reserved keywords used as variable names (e.g., "super")
|
|
186
|
+
const reservedKeywords = ['super', 'this', 'arguments'];
|
|
187
|
+
const keyMapping: Record<string, string> = {};
|
|
188
|
+
|
|
189
|
+
const keys = Object.keys(context).map(key => {
|
|
190
|
+
if (reservedKeywords.includes(key)) {
|
|
191
|
+
const safeKey = `__${key}__`;
|
|
192
|
+
keyMapping[key] = safeKey;
|
|
193
|
+
return safeKey;
|
|
194
|
+
}
|
|
195
|
+
return key;
|
|
196
|
+
});
|
|
186
197
|
const values = Object.values(context);
|
|
187
|
-
|
|
198
|
+
|
|
199
|
+
let codeToExecute = codeOverride ?? this.code;
|
|
200
|
+
|
|
201
|
+
// Replace reserved keywords in code with safe alternatives
|
|
202
|
+
for (const [original, safe] of Object.entries(keyMapping)) {
|
|
203
|
+
const regex = new RegExp(`\\b${original}\\b`, 'g');
|
|
204
|
+
codeToExecute = codeToExecute.replace(regex, safe);
|
|
205
|
+
}
|
|
188
206
|
|
|
189
207
|
let functionBody: string;
|
|
190
208
|
|
|
@@ -218,9 +236,27 @@ export default class Expression {
|
|
|
218
236
|
* Выполнить в контексте (асинхронно)
|
|
219
237
|
*/
|
|
220
238
|
private async executeInContextAsync(context: Record<string, any>, codeOverride?: string): Promise<any> {
|
|
221
|
-
|
|
239
|
+
// Handle reserved keywords used as variable names (e.g., "super")
|
|
240
|
+
const reservedKeywords = ['super', 'this', 'arguments'];
|
|
241
|
+
const keyMapping: Record<string, string> = {};
|
|
242
|
+
|
|
243
|
+
const keys = Object.keys(context).map(key => {
|
|
244
|
+
if (reservedKeywords.includes(key)) {
|
|
245
|
+
const safeKey = `__${key}__`;
|
|
246
|
+
keyMapping[key] = safeKey;
|
|
247
|
+
return safeKey;
|
|
248
|
+
}
|
|
249
|
+
return key;
|
|
250
|
+
});
|
|
222
251
|
const values = Object.values(context);
|
|
223
|
-
|
|
252
|
+
|
|
253
|
+
let codeToExecute = codeOverride ?? this.code;
|
|
254
|
+
|
|
255
|
+
// Replace reserved keywords in code with safe alternatives
|
|
256
|
+
for (const [original, safe] of Object.entries(keyMapping)) {
|
|
257
|
+
const regex = new RegExp(`\\b${original}\\b`, 'g');
|
|
258
|
+
codeToExecute = codeToExecute.replace(regex, safe);
|
|
259
|
+
}
|
|
224
260
|
|
|
225
261
|
let functionBody: string;
|
|
226
262
|
|