@vixoniccom/modules 2.25.0-dev.8 → 2.25.0-dev.9

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/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [2.25.0-dev.9](https://github.com/Vixonic/store-modules/compare/v2.25.0-dev.8...v2.25.0-dev.9) (2026-03-31)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * optimize duration formula evaluation and simplify input exports ([b853e52](https://github.com/Vixonic/store-modules/commit/b853e52d3aa70f2e68c50c028e323c84e0d146a5))
11
+
5
12
  ## [2.25.0-dev.8](https://github.com/Vixonic/store-modules/compare/v2.25.0-dev.7...v2.25.0-dev.8) (2026-03-31)
6
13
 
7
14
 
@@ -1,5 +1,5 @@
1
1
  import { List, Group, DynamicMatrix } from './containers';
2
- export { Group, List, DynamicMatrix } from './containers';
2
+ export { Group, List, DynamicMatrix };
3
3
  import { InputValue } from './inputs';
4
4
  import { ErrorsMap } from './errors';
5
5
  export declare namespace Configuration {
package/dist/lib/index.js CHANGED
@@ -17,10 +17,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Configuration = exports.DynamicMatrix = exports.List = exports.Group = void 0;
18
18
  var vm = require("vm");
19
19
  var containers_1 = require("./containers");
20
- var containers_2 = require("./containers");
21
- Object.defineProperty(exports, "Group", { enumerable: true, get: function () { return containers_2.Group; } });
22
- Object.defineProperty(exports, "List", { enumerable: true, get: function () { return containers_2.List; } });
23
- Object.defineProperty(exports, "DynamicMatrix", { enumerable: true, get: function () { return containers_2.DynamicMatrix; } });
20
+ Object.defineProperty(exports, "List", { enumerable: true, get: function () { return containers_1.List; } });
21
+ Object.defineProperty(exports, "Group", { enumerable: true, get: function () { return containers_1.Group; } });
22
+ Object.defineProperty(exports, "DynamicMatrix", { enumerable: true, get: function () { return containers_1.DynamicMatrix; } });
24
23
  var typeDefs_1 = require("./utils/typeDefs");
25
24
  var inputs_1 = require("./inputs");
26
25
  var Configuration = /** @class */ (function () {
@@ -79,10 +78,28 @@ var Configuration = /** @class */ (function () {
79
78
  if (!this.durationFormula)
80
79
  return undefined;
81
80
  try {
82
- var regexp = /{{([^}]*)}}/ig;
83
- var jsEval = this.durationFormula.replace(regexp, "_values.$1");
81
+ // Linear string scan to replace {{key}} → _values.key, avoids regex ReDoS
82
+ var jsEval = '';
83
+ var i = 0;
84
+ var f = this.durationFormula;
85
+ while (i < f.length) {
86
+ if (f[i] === '{' && f[i + 1] === '{') {
87
+ var end = f.indexOf('}}', i + 2);
88
+ if (end !== -1) {
89
+ jsEval += "_values.".concat(f.slice(i + 2, end));
90
+ i = end + 2;
91
+ }
92
+ else {
93
+ jsEval += f[i++];
94
+ }
95
+ }
96
+ else {
97
+ jsEval += f[i++];
98
+ }
99
+ }
84
100
  // Run in an isolated context: no access to require, process, or any Node global
85
- var time = vm.runInNewContext(jsEval, { _values: _values });
101
+ // Provide a timeout to prevent untrusted formulas from blocking the event loop
102
+ var time = vm.runInNewContext(jsEval, { _values: _values }, { timeout: 100 });
86
103
  if (typeof time === 'number') {
87
104
  // validate number
88
105
  if (Number.isNaN(time) || time < 4 || time >= 86400) {
@@ -12,20 +12,7 @@ import { DateInput } from './date-input';
12
12
  import { SelectAssetKna } from './select-asset-kna';
13
13
  import { Slider } from './slider';
14
14
  import { ServiceInput } from './service-input';
15
- export { TextArea } from './text-area';
16
- export { BitlyInput } from './bitly-input';
17
- export { TextFormat } from './text-format';
18
- export { TextInput } from './text-input';
19
- export { Autocomplete } from './autocomplete';
20
- export { SelectInput } from './select-input';
21
- export { Switch } from './switch';
22
- export { NumberInput } from './number-input';
23
- export { RedirectButton } from './redirect-button';
24
- export { ColorPicker } from './color-picker';
25
- export { DateInput } from './date-input';
26
- export { SelectAssetKna } from './select-asset-kna';
27
- export { Slider } from './slider';
28
- export { ServiceInput } from './service-input';
15
+ export { TextArea, BitlyInput, TextFormat, TextInput, Autocomplete, SelectInput, Switch, NumberInput, RedirectButton, ColorPicker, DateInput, SelectAssetKna, Slider, ServiceInput, };
29
16
  export type AnyJson = boolean | number | string | null | JsonArray | JsonMap | undefined;
30
17
  export interface JsonMap {
31
18
  [key: string]: AnyJson | undefined;
@@ -2,47 +2,33 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isInputInstance = exports.isInput = exports.allInputs = exports.ServiceInput = exports.Slider = exports.SelectAssetKna = exports.DateInput = exports.ColorPicker = exports.RedirectButton = exports.NumberInput = exports.Switch = exports.SelectInput = exports.Autocomplete = exports.TextInput = exports.TextFormat = exports.BitlyInput = exports.TextArea = void 0;
4
4
  var text_area_1 = require("./text-area");
5
+ Object.defineProperty(exports, "TextArea", { enumerable: true, get: function () { return text_area_1.TextArea; } });
5
6
  var bitly_input_1 = require("./bitly-input");
7
+ Object.defineProperty(exports, "BitlyInput", { enumerable: true, get: function () { return bitly_input_1.BitlyInput; } });
6
8
  var text_format_1 = require("./text-format");
9
+ Object.defineProperty(exports, "TextFormat", { enumerable: true, get: function () { return text_format_1.TextFormat; } });
7
10
  var text_input_1 = require("./text-input");
11
+ Object.defineProperty(exports, "TextInput", { enumerable: true, get: function () { return text_input_1.TextInput; } });
8
12
  var autocomplete_1 = require("./autocomplete");
13
+ Object.defineProperty(exports, "Autocomplete", { enumerable: true, get: function () { return autocomplete_1.Autocomplete; } });
9
14
  var select_input_1 = require("./select-input");
15
+ Object.defineProperty(exports, "SelectInput", { enumerable: true, get: function () { return select_input_1.SelectInput; } });
10
16
  var switch_1 = require("./switch");
17
+ Object.defineProperty(exports, "Switch", { enumerable: true, get: function () { return switch_1.Switch; } });
11
18
  var number_input_1 = require("./number-input");
19
+ Object.defineProperty(exports, "NumberInput", { enumerable: true, get: function () { return number_input_1.NumberInput; } });
12
20
  var redirect_button_1 = require("./redirect-button");
21
+ Object.defineProperty(exports, "RedirectButton", { enumerable: true, get: function () { return redirect_button_1.RedirectButton; } });
13
22
  var color_picker_1 = require("./color-picker");
23
+ Object.defineProperty(exports, "ColorPicker", { enumerable: true, get: function () { return color_picker_1.ColorPicker; } });
14
24
  var date_input_1 = require("./date-input");
25
+ Object.defineProperty(exports, "DateInput", { enumerable: true, get: function () { return date_input_1.DateInput; } });
15
26
  var select_asset_kna_1 = require("./select-asset-kna");
27
+ Object.defineProperty(exports, "SelectAssetKna", { enumerable: true, get: function () { return select_asset_kna_1.SelectAssetKna; } });
16
28
  var slider_1 = require("./slider");
29
+ Object.defineProperty(exports, "Slider", { enumerable: true, get: function () { return slider_1.Slider; } });
17
30
  var service_input_1 = require("./service-input");
18
- var text_area_2 = require("./text-area");
19
- Object.defineProperty(exports, "TextArea", { enumerable: true, get: function () { return text_area_2.TextArea; } });
20
- var bitly_input_2 = require("./bitly-input");
21
- Object.defineProperty(exports, "BitlyInput", { enumerable: true, get: function () { return bitly_input_2.BitlyInput; } });
22
- var text_format_2 = require("./text-format");
23
- Object.defineProperty(exports, "TextFormat", { enumerable: true, get: function () { return text_format_2.TextFormat; } });
24
- var text_input_2 = require("./text-input");
25
- Object.defineProperty(exports, "TextInput", { enumerable: true, get: function () { return text_input_2.TextInput; } });
26
- var autocomplete_2 = require("./autocomplete");
27
- Object.defineProperty(exports, "Autocomplete", { enumerable: true, get: function () { return autocomplete_2.Autocomplete; } });
28
- var select_input_2 = require("./select-input");
29
- Object.defineProperty(exports, "SelectInput", { enumerable: true, get: function () { return select_input_2.SelectInput; } });
30
- var switch_2 = require("./switch");
31
- Object.defineProperty(exports, "Switch", { enumerable: true, get: function () { return switch_2.Switch; } });
32
- var number_input_2 = require("./number-input");
33
- Object.defineProperty(exports, "NumberInput", { enumerable: true, get: function () { return number_input_2.NumberInput; } });
34
- var redirect_button_2 = require("./redirect-button");
35
- Object.defineProperty(exports, "RedirectButton", { enumerable: true, get: function () { return redirect_button_2.RedirectButton; } });
36
- var color_picker_2 = require("./color-picker");
37
- Object.defineProperty(exports, "ColorPicker", { enumerable: true, get: function () { return color_picker_2.ColorPicker; } });
38
- var date_input_2 = require("./date-input");
39
- Object.defineProperty(exports, "DateInput", { enumerable: true, get: function () { return date_input_2.DateInput; } });
40
- var select_asset_kna_2 = require("./select-asset-kna");
41
- Object.defineProperty(exports, "SelectAssetKna", { enumerable: true, get: function () { return select_asset_kna_2.SelectAssetKna; } });
42
- var slider_2 = require("./slider");
43
- Object.defineProperty(exports, "Slider", { enumerable: true, get: function () { return slider_2.Slider; } });
44
- var service_input_2 = require("./service-input");
45
- Object.defineProperty(exports, "ServiceInput", { enumerable: true, get: function () { return service_input_2.ServiceInput; } });
31
+ Object.defineProperty(exports, "ServiceInput", { enumerable: true, get: function () { return service_input_1.ServiceInput; } });
46
32
  exports.allInputs = [
47
33
  bitly_input_1.BitlyInput,
48
34
  text_format_1.TextFormat,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vixoniccom/modules",
3
- "version": "2.25.0-dev.8",
3
+ "version": "2.25.0-dev.9",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",