nebius/SWE-rebench-V2-PRs huggingface dataset:
Repository: jsx-eslint/eslint-plugin-react
Pull request #3530 (2023-02-11 09:10:35)

consider flatMap for no-array-index-key
The rule currently considers `.map()` but not `.flatMap()`



Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e5d07e8..fac36a0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 
 ## Unreleased
 
+### Fixed
+* [`no-array-index-key`]: consider flatMap ([#3530][] @k-yle)
+
+[#3530]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3530
+
 ## [7.32.2] - 2023.01.28
 
 ### Fixed
diff --git a/docs/rules/no-array-index-key.md b/docs/rules/no-array-index-key.md
index f9481156..37f2652d 100644
--- a/docs/rules/no-array-index-key.md
+++ b/docs/rules/no-array-index-key.md
@@ -45,6 +45,10 @@ things.findIndex((thing, index) => {
   otherThings.push(<Hello key={index} />);
 });
 
+things.flatMap((thing, index) => (
+  <Hello key={index} />
+));
+
 things.reduce((collection, thing, index) => (
   collection.concat(<Hello key={index} />)
 ), []);
diff --git a/lib/rules/no-array-index-key.js b/lib/rules/no-array-index-key.js
index 0e641b58..08ecd7a6 100644
--- a/lib/rules/no-array-index-key.js
+++ b/lib/rules/no-array-index-key.js
@@ -65,6 +65,7 @@ module.exports = {
       filter: 1,
       find: 1,
       findIndex: 1,
+      flatMap: 1,
       forEach: 1,
       map: 1,
       reduce: 2,


Test patch:
diff --git a/tests/lib/rules/no-array-index-key.js b/tests/lib/rules/no-array-index-key.js
index e765d001..dc5364f4 100644
--- a/tests/lib/rules/no-array-index-key.js
+++ b/tests/lib/rules/no-array-index-key.js
@@ -93,6 +93,9 @@ ruleTester.run('no-array-index-key', rule, {
     {
       code: 'foo.map((bar, i) => <Foo key={String(baz)} />)',
     },
+    {
+      code: 'foo.flatMap((a) => <Foo key={a} />)',
+    },
     {
       code: 'foo.reduce((a, b) => a.concat(<Foo key={b.id} />), [])',
     },
@@ -226,6 +229,10 @@ ruleTester.run('no-array-index-key', rule, {
       code: 'foo.reduce((a, b, i) => a.concat(<Foo key={i} />), [])',
       errors: [{ messageId: 'noArrayIndex' }],
     },
+    {
+      code: 'foo.flatMap((a, i) => <Foo key={i} />)',
+      errors: [{ messageId: 'noArrayIndex' }],
+    },
     {
       code: 'foo.reduceRight((a, b, i) => a.concat(<Foo key={i} />), [])',
       errors: [{ messageId: 'noArrayIndex' }],
Repository: jsx-eslint/eslint-plugin-react
Pull request #3555 (2023-03-20 21:27:12)

[Fix] `no-unknown-property`: allow `fill` prop on `<symbol>`
this adds `fill` to the list of allowed props for `<symbol>` in `no-unknown-props`. see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/symbol#global_attributes


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e47612de..aeeae53a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,7 +15,9 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 * [`jsx-curly-brace-presence`]: handle single and only expression template literals ([#3538][] @taozhou-glean)
 * [`no-unknown-property`]: allow `onLoad` on `source` (@ljharb)
 * [`jsx-first-prop-new-line`]: ensure autofix preserves generics in component name ([#3546][] @ljharb)
+* [`no-unknown-property`]: allow `fill` prop on `<symbol>` ([#3555][] @stefanprobst)
 
+[#3555]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3555
 [#3548]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3548
 [#3546]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3546
 [#3538]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3538
diff --git a/lib/rules/no-unknown-property.js b/lib/rules/no-unknown-property.js
index dbb111a0..fc573366 100644
--- a/lib/rules/no-unknown-property.js
+++ b/lib/rules/no-unknown-property.js
@@ -49,6 +49,7 @@ const ATTRIBUTE_TAGS_MAP = {
     'polyline',
     'rect',
     'svg',
+    'symbol',
     'text',
     'textPath',
     'tref',


Test patch:
diff --git a/tests/lib/rules/no-unknown-property.js b/tests/lib/rules/no-unknown-property.js
index 97fb9f3d..0fc510e3 100644
--- a/tests/lib/rules/no-unknown-property.js
+++ b/tests/lib/rules/no-unknown-property.js
@@ -58,6 +58,7 @@ ruleTester.run('no-unknown-property', rule, {
     { code: '<svg key="lock" viewBox="box" fill={10} d="d" stroke={1} strokeWidth={2} strokeLinecap={3} strokeLinejoin={4} transform="something" clipRule="else" x1={5} x2="6" y1="7" y2="8"></svg>' },
     { code: '<g fill="#7B82A0" fillRule="evenodd"></g>' },
     { code: '<mask fill="#7B82A0"></mask>' },
+    { code: '<symbol fill="#7B82A0"></symbol>' },
     { code: '<meta property="og:type" content="website" />' },
     { code: '<input type="checkbox" checked={checked} disabled={disabled} id={id} onChange={onChange} />' },
     { code: '<video playsInline />' },
@@ -472,7 +473,7 @@ ruleTester.run('no-unknown-property', rule, {
           data: {
             name: 'fill',
             tagName: 'div',
-            allowedTags: 'altGlyph, circle, ellipse, g, line, marker, mask, path, polygon, polyline, rect, svg, text, textPath, tref, tspan, use, animate, animateColor, animateMotion, animateTransform, set',
+            allowedTags: 'altGlyph, circle, ellipse, g, line, marker, mask, path, polygon, polyline, rect, svg, symbol, text, textPath, tref, tspan, use, animate, animateColor, animateMotion, animateTransform, set',
           },
         },
       ],
Repository: jsx-eslint/eslint-plugin-react
Pull request #3652 (2023-11-13 16:04:19)

Add displaystyle as known property on math elements
The `math` element supports a property called `displaystyle` which is not currently recognized by the `no-unknown-property` rule.

https://developer.mozilla.org/en-US/docs/Web/MathML/Global_attributes/displaystyle


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f76e6f37..bdb2d0e8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 * [`sort-prop-types`]: give errors on TS types ([#3615][] @akulsr0)
 * [`no-invalid-html-attribute`]: add support for `apple-touch-startup-image` `rel` attributes in `link` tags ([#3638][] @thomashockaday)
 * [`no-unknown-property`]: add requireDataLowercase option ([#3645][] @HermanBilous)
+* [`no-unknown-property`]: add `displaystyle` on `<math>` ([#3652][] @lounsbrough)
 
 ### Fixed
 * [`jsx-no-leaked-render`]: preserve RHS parens for multiline jsx elements while fixing ([#3623][] @akulsr0)
@@ -21,6 +22,7 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 * [Refactor] [`function-component-definition`]: exit early if no type params ([#3634][] @HenryBrown0)
 * [Refactor] [`jsx-props-no-multi-spaces`]: extract type parameters to var ([#3634][] @HenryBrown0)
 
+[#3652]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3652
 [#3645]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3645
 [#3638]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3638
 [#3634]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3634
diff --git a/lib/rules/no-unknown-property.js b/lib/rules/no-unknown-property.js
index 069596d7..2fc127b1 100644
--- a/lib/rules/no-unknown-property.js
+++ b/lib/rules/no-unknown-property.js
@@ -34,6 +34,7 @@ const ATTRIBUTE_TAGS_MAP = {
   checked: ['input'],
   // image is required for SVG support, all other tags are HTML.
   crossOrigin: ['script', 'img', 'video', 'audio', 'link', 'image'],
+  displaystyle: ['math'],
   // https://html.spec.whatwg.org/multipage/links.html#downloading-resources
   download: ['a', 'area'],
   fill: [ // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill


Test patch:
diff --git a/tests/lib/rules/no-unknown-property.js b/tests/lib/rules/no-unknown-property.js
index d6713286..54c23785 100644
--- a/tests/lib/rules/no-unknown-property.js
+++ b/tests/lib/rules/no-unknown-property.js
@@ -161,6 +161,7 @@ ruleTester.run('no-unknown-property', rule, {
     { code: '<fbt desc="foo" doNotExtract />;' },
     // fbs
     { code: '<fbs desc="foo" doNotExtract />;' },
+    { code: '<math displaystyle="true" />;' },
   ]),
   invalid: parsers.all([
     {
Repository: jsx-eslint/eslint-plugin-react
Pull request #3704 (2024-03-07 13:15:33)

[Fix] `boolean-prop-naming`: literalType error fix
related #3285 As mentioned in #3701, the rule is modified to apply even when the type of props is directly specified.

```
const Hello = (props: {enabled:boolean}) => <div />;
```


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cb5e6fbb..e22a6c8e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,9 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 ### Fixed
 * [`jsx-no-leaked-render`]: prevent wrongly adding parens ([#3700][] @developer-bandi)
 * [`boolean-prop-naming`]: detect TS interfaces ([#3701][] @developer-bandi)
+* [`boolean-prop-naming`]: literalType error fix ([#3704][] @developer-bandi)
 
+[#3704]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3704
 [#3701]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3701
 [#3700]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3700
 
diff --git a/lib/rules/boolean-prop-naming.js b/lib/rules/boolean-prop-naming.js
index 62b687b6..cc41537f 100644
--- a/lib/rules/boolean-prop-naming.js
+++ b/lib/rules/boolean-prop-naming.js
@@ -380,7 +380,7 @@ module.exports = {
             let propType;
             if (annotation.type === 'GenericTypeAnnotation') {
               propType = objectTypeAnnotations.get(annotation.id.name);
-            } else if (annotation.type === 'ObjectTypeAnnotation') {
+            } else if (annotation.type === 'ObjectTypeAnnotation' || annotation.type === 'TSTypeLiteral') {
               propType = annotation;
             } else if (annotation.type === 'TSTypeReference') {
               propType = objectTypeAnnotations.get(annotation.typeName.name);


Test patch:
diff --git a/tests/lib/rules/boolean-prop-naming.js b/tests/lib/rules/boolean-prop-naming.js
index 4cd01d6f..0ce676f9 100644
--- a/tests/lib/rules/boolean-prop-naming.js
+++ b/tests/lib/rules/boolean-prop-naming.js
@@ -1254,5 +1254,15 @@ ruleTester.run('boolean-prop-naming', rule, {
         },
       ],
     },
+    {
+      code: 'const Hello = (props: {enabled:boolean}) => <div />;',
+      options: [{ rule: '^(is|has)[A-Z]([A-Za-z0-9]?)+' }],
+      features: ['ts', 'no-babel'],
+      errors: [
+        {
+          message: 'Prop name (enabled) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)',
+        },
+      ],
+    },
   ]),
 });
Repository: jsx-eslint/eslint-plugin-react
Pull request #3757 (2024-05-14 08:56:07)

[Fix] `jsx-boolean-value`: `assumeUndefinedIsFalse` with `never` must not allow explicit `true` value
assumeUndefinedIsFalse should not affect the behaviour of props with true values when we have the "never" setting 


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bef2238f..3b9d9ed0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,8 +8,10 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 ### Fixed
 * [`prop-types`]: null-check rootNode before calling getScope ([#3762][] @crnhrv)
 * [`boolean-prop-naming`]: avoid a crash with a spread prop ([#3733][] @ljharb)
+* [`jsx-boolean-value`]: `assumeUndefinedIsFalse` with `never` must not allow explicit `true` value ([#3757][] @6uliver)
 
 [#3762]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3762
+[#3757]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3757
 [#3733]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3733
 
 ## [7.34.2] - 2024.05.24
diff --git a/lib/rules/jsx-boolean-value.js b/lib/rules/jsx-boolean-value.js
index 1cff1711..4572e7ff 100644
--- a/lib/rules/jsx-boolean-value.js
+++ b/lib/rules/jsx-boolean-value.js
@@ -132,7 +132,6 @@ module.exports = {
         }
         if (
           isNever(configuration, exceptions, propName)
-          && !configObject.assumeUndefinedIsFalse
           && value
           && value.type === 'JSXExpressionContainer'
           && value.expression.value === true


Test patch:
diff --git a/tests/lib/rules/jsx-boolean-value.js b/tests/lib/rules/jsx-boolean-value.js
index e8cbbb3e..f4216f2c 100644
--- a/tests/lib/rules/jsx-boolean-value.js
+++ b/tests/lib/rules/jsx-boolean-value.js
@@ -52,6 +52,10 @@ ruleTester.run('jsx-boolean-value', rule, {
       code: '<App />;',
       options: ['never', { assumeUndefinedIsFalse: true }],
     },
+    {
+      code: '<App foo={false} />;',
+      options: ['never', { assumeUndefinedIsFalse: false }],
+    },
     {
       code: '<App foo={false} />;',
       options: ['never', { assumeUndefinedIsFalse: true, always: ['foo'] }],
@@ -145,6 +149,21 @@ ruleTester.run('jsx-boolean-value', rule, {
         },
       ],
     },
+    {
+      code: '<App foo={true} bak={false} />;',
+      output: '<App foo  />;',
+      options: ['never', { assumeUndefinedIsFalse: true }],
+      errors: [
+        {
+          messageId: 'omitBoolean',
+          data: { propName: 'foo' },
+        },
+        {
+          messageId: 'omitPropAndBoolean',
+          data: { propName: 'bak' },
+        },
+      ],
+    },
     {
       code: '<App foo={true} bar={false} baz={false} bak={false} />;',
       output: '<App foo={true} bar={false}   />;',
Repository: jsx-eslint/eslint-plugin-react
Pull request #3923 (2025-05-05 19:46:58)

[Fix] `no-unknown-property`: allow `onLoad` on `body`
They body tag supports an onload event

https://www.w3schools.com/jsref/event_onload.asp


Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 002a1ed9..ddbbfef5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,11 @@ This change log adheres to standards from [Keep a CHANGELOG](https://keepachange
 
 ## Unreleased
 
+### Fixed
+* [`no-unknown-property`]: allow `onLoad` on `body` ([#3923][] @DerekStapleton)
+
+[#3923]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3923
+
 ## [7.37.5] - 2025.04.03
 
 ### Fixed
diff --git a/lib/rules/no-unknown-property.js b/lib/rules/no-unknown-property.js
index d702cc43..ff87d2f0 100644
--- a/lib/rules/no-unknown-property.js
+++ b/lib/rules/no-unknown-property.js
@@ -85,7 +85,7 @@ const ATTRIBUTE_TAGS_MAP = {
   onEncrypted: ['audio', 'video'],
   onEnded: ['audio', 'video'],
   onError: ['audio', 'video', 'img', 'link', 'source', 'script', 'picture', 'iframe'],
-  onLoad: ['script', 'img', 'link', 'picture', 'iframe', 'object', 'source'],
+  onLoad: ['script', 'img', 'link', 'picture', 'iframe', 'object', 'source', 'body'],
   onLoadedData: ['audio', 'video'],
   onLoadedMetadata: ['audio', 'video'],
   onLoadStart: ['audio', 'video'],


Test patch:
diff --git a/tests/lib/rules/no-unknown-property.js b/tests/lib/rules/no-unknown-property.js
index f24257a0..ab0d5fb6 100644
--- a/tests/lib/rules/no-unknown-property.js
+++ b/tests/lib/rules/no-unknown-property.js
@@ -74,6 +74,7 @@ ruleTester.run('no-unknown-property', rule, {
     { code: '<link onLoad={bar} onError={foo} />' },
     { code: '<link rel="preload" as="image" href="someHref" imageSrcSet="someImageSrcSet" imageSizes="someImageSizes" />' },
     { code: '<object onLoad={bar} />' },
+    { code: '<body onLoad={bar} />' },
     { code: '<video allowFullScreen webkitAllowFullScreen mozAllowFullScreen />' },
     { code: '<iframe allowFullScreen webkitAllowFullScreen mozAllowFullScreen />' },
     { code: '<table border="1" />' },
@@ -509,7 +510,7 @@ ruleTester.run('no-unknown-property', rule, {
           data: {
             name: 'onLoad',
             tagName: 'div',
-            allowedTags: 'script, img, link, picture, iframe, object, source',
+            allowedTags: 'script, img, link, picture, iframe, object, source, body',
           },
         },
       ],
Repository: pactumjs/pactum
Pull request #60 (2021-04-25 09:39:49)

#59 Support adding multiple interactions


Patch:
diff --git a/src/exports/mock.js b/src/exports/mock.js
index f3e117f..2cd6d01 100644
--- a/src/exports/mock.js
+++ b/src/exports/mock.js
@@ -45,9 +45,14 @@ const mock = {
       } else if (typeof raw === 'object' && typeof raw.name === 'string') {
         raw = hr.interaction(raw.name, raw.data || data);
       }
-      const interaction = new Interaction(raw, true);
-      this._server.addInteraction(interaction.id, interaction);
-      ids.push(interaction.id);
+      if (!Array.isArray(raw)) {
+        raw = [raw];
+      }
+      for (let j = 0; j < raw.length; j++) {
+        const interaction = new Interaction(raw[j], true);
+        this._server.addInteraction(interaction.id, interaction);
+        ids.push(interaction.id);
+      }
     }
     return alone ? ids[0] : ids;
   },


Test patch:
diff --git a/test/component/mock.handler.spec.js b/test/component/mock.handler.spec.js
index 7f95759..1db424f 100644
--- a/test/component/mock.handler.spec.js
+++ b/test/component/mock.handler.spec.js
@@ -50,6 +50,33 @@ describe('Mock Interactions - Handler', () => {
         data: 'child/sub'
       };
     });
+    handler.addInteractionHandler('get sub child', () => {
+      return {
+        name: 'get child',
+        data: 'child/sub'
+      };
+    });
+    handler.addInteractionHandler('get users with id 1 & 2', (ctx) => {
+      return [
+      {
+        request: {
+          method: 'GET',
+          path: `/api/users/${ctx.data[0]}`
+        },
+        response: {
+          status: 200
+        }
+      },
+      {
+        request: {
+          method: 'GET',
+          path: `/api/users/${ctx.data[1]}`
+        },
+        response: {
+          status: 200
+        }
+      }];
+    });
   });
 
   it('GET - with handler name', async () => {
@@ -88,4 +115,16 @@ describe('Mock Interactions - Handler', () => {
     mock.clearInteractions();
   });
 
+  it('GET - multiple interactions', async () => {
+    const specWait = pactum.spec()
+    .get('http://localhost:9393/api/users/1')
+    .expectStatus(200)
+    await pactum.spec()
+      .useInteraction('get users with id 1 & 2', [1, 2])
+      .get('http://localhost:9393/api/users/2')
+      .expectStatus(200)
+      .wait(specWait);
+    mock.clearInteractions();
+  });
+
 });
Repository: pactumjs/pactum
Pull request #140 (2022-04-12 16:53:31)

feat: add helper functions to get data management keys
Three new utility functions for getting keys for data management functions, and a few constants to ensure that devs don't end up messing up tokens anymore

Relates to #135 


Patch:
diff --git a/src/exports/stash.d.ts b/src/exports/stash.d.ts
index bb48348..4f39e68 100644
--- a/src/exports/stash.d.ts
+++ b/src/exports/stash.d.ts
@@ -34,4 +34,7 @@ export function addDataTemplate(templates: object[]): void;
 
 export function getDataMap(): object;
 export function getDataTemplate(): object;
-export function getDataStore(): object;
\ No newline at end of file
+export function getDataStore(): object;
+export function getStoreKey(key: string): string;
+export function getMapKey(key: string): string;
+export function getFunctionKey(key: string): string;
\ No newline at end of file
diff --git a/src/exports/stash.js b/src/exports/stash.js
index 5268e6b..a48da8a 100644
--- a/src/exports/stash.js
+++ b/src/exports/stash.js
@@ -88,6 +88,18 @@ const stash = {
   clearDataStores() {
     dataStore = {};
     config.data.ref.spec.enabled = false;
+  },
+
+  getStoreKey(key) {
+    return `$S{${key}}`;
+  },
+
+  getMapKey(key) {
+    return `$M{${key}}`;
+  },
+
+  getFunctionKey(key) {
+    return `$F{${key}}`;
   }
 
 };
diff --git a/src/index.js b/src/index.js
index d20047f..452d2ad 100644
--- a/src/index.js
+++ b/src/index.js
@@ -69,8 +69,12 @@ const pactum = {
     return klona(value);
   },
 
-  parse
+  parse,
 
+  constants: {
+    override: '@OVERRIDES@',
+    template: '@DATA:TEMPLATE@',
+  }
 };
 
 module.exports = pactum;
\ No newline at end of file


Test patch:
diff --git a/test/unit/pactum.spec.js b/test/unit/pactum.spec.js
index 8baa5b1..c7c849f 100644
--- a/test/unit/pactum.spec.js
+++ b/test/unit/pactum.spec.js
@@ -23,4 +23,18 @@ describe('pactum', () => {
     await sleep(1);
   });
 
+  it('getStoreKey - returns the key as a stash key', () => {
+    const { getStoreKey } = pactum.stash;
+    expect(getStoreKey('stash-key'), '$S{stash-key}');
+  });
+  it('getMapKey - returns the key as a map key', () => {
+    const { getMapKey } = pactum.stash;
+    expect(getMapKey('map-key'), '$M{map-key}');
+  });
+  it('getFunctionKey - returns the key as a function key', () => {
+    const { getFunctionKey } = pactum.stash;
+    expect(getFunctionKey('function-key'), '$S{function-key}');
+  });
+
+
 });
\ No newline at end of file
Repository: pactumjs/pactum
Pull request #307 (2024-01-11 16:28:20)

Modified data processor functional param splitting logic
Reference issue: #305 

When providing parameters to function mapping (ie: `$F{sum:1,2}`), if the parameter includes a : character, the rest of the parameter is cut off from being included in the arguments.

In dataProcessor.js line 104, the `FunctionName:param1,param2` string is being split up by the : character for all instances of the character, causing arguments which include a : to be split and not passed to the function when it is filtered out on line 106.

I modified the behavior by changing the `refValue.split(':')` on line 104 to use a regex expression to only split by the first instance of the : character like so `refValue.split(/:(.*)/)` so params including the ':' character can be passed to functions 


Patch:
diff --git a/src/helpers/dataProcessor.js b/src/helpers/dataProcessor.js
index 67db491..5df6d27 100644
--- a/src/helpers/dataProcessor.js
+++ b/src/helpers/dataProcessor.js
@@ -101,7 +101,7 @@ const dataProcessor = {
           values.push(typeof value === 'undefined' ? raw : value);
         }
         if (refType === 'F') {
-          const [handlerName, ..._args] = refValue.split(':');
+          const [handlerName, ..._args] = refValue.split(/:(.*)/);
           const handlerFun = handler.getDataFuncHandler(handlerName);
           const handler_data = handlerFun({ args: _args.length > 0 ? _args[0].split(',') : _args });
           values.push(this.processDataRefs(handler_data));


Test patch:
diff --git a/test/unit/dataProcessor.spec.js b/test/unit/dataProcessor.spec.js
index 7e6a12e..8b6c1d3 100644
--- a/test/unit/dataProcessor.spec.js
+++ b/test/unit/dataProcessor.spec.js
@@ -963,6 +963,24 @@ describe('Data Processing - Functions', () => {
     expect(data).deep.equals({ name: 'Jon' });
   });
 
+  it('should return data passed in as parameter', () => {
+    handler.addDataFuncHandler('GetParam', (ctx) => {
+      return ctx.args[0]
+    });
+
+    const data = dp.processData('$F{GetParam:Jon}');
+    expect(data).equals('Jon');
+  });
+
+  it('should return data passed in as parameter with semicolon', () => {
+    handler.addDataFuncHandler('GetParam', (ctx) => {
+      return ctx.args[0]
+    });
+
+    const data = dp.processData('$F{GetParam:Jon:Doe}');
+    expect(data).equals('Jon:Doe');
+  });
+
   afterEach(() => {
     config.data.ref.map.enabled = false;
     config.data.ref.map.processed = false;