diff --git a/application/source/data/transformer.mjs b/application/source/data/transformer.mjs
index 235e975ea5d31df2bf5f3cc491db285f29fdcc71..bc8b8a0aede714e3f5e171dc4c0f4ce9bc4ab46f 100644
--- a/application/source/data/transformer.mjs
+++ b/application/source/data/transformer.mjs
@@ -186,6 +186,33 @@ function transform(value) {
         case "tolowercase":
             validateString(value);
             return value.toLowerCase();
+            
+        case "contains":
+            if (isString(value)) {
+                return value.includes(args[0]);    
+            }
+            
+            if (isArray(value)) {
+                return value.includes(args[0]);
+            }
+            
+            if (isObject(value)) {
+                return value.hasOwnProperty(args[0]);
+            }
+            
+            return false;
+            
+            case "has-entries":
+            case "hasentries":
+                if (isObject(value)) {
+                    return Object.keys(value).length > 0;
+                }
+                
+                if (isArray(value)) {
+                    return value.length > 0;
+                }
+                
+                return false;
 
         case "isundefined":
         case "is-undefined":
diff --git a/development/package.json b/development/package.json
index c3586a6098ce73608e78a5936c804fd555fd9954..65ab785b43138062d462871704f519ed36ed6399 100644
--- a/development/package.json
+++ b/development/package.json
@@ -33,9 +33,9 @@
     "crypt": "^0.0.2",
     "cssnano": "^5.1.15",
     "esbuild": "^0.17.10",
-    "flow-bin": "^0.200.0",
+    "flow-bin": "^0.200.1",
     "fs": "0.0.1-security",
-    "glob": "^8.1.0",
+    "glob": "^9.0.1",
     "graphviz": "^0.0.9",
     "jsdoc": "^4.0.2",
     "jsdoc-external-example": "github:volker-schukai/jsdoc-external-example",
@@ -65,7 +65,7 @@
     "vite-plugin-banner": "^0.7.0",
     "vite-plugin-list-directory-contents": "^1.4.5",
     "vite-plugin-minify": "^1.5.2",
-    "vite-plugin-mkcert": "^1.13.2",
+    "vite-plugin-mkcert": "^1.13.3",
     "ws": "^8.12.1"
   }
 }
diff --git a/development/pnpm-lock.yaml b/development/pnpm-lock.yaml
index 528c24cebc2d9cf27e09e3f3a7b2a118f914ab6a..5d82fc78aef57fc882192a33b6485c01d9ddf6f2 100644
--- a/development/pnpm-lock.yaml
+++ b/development/pnpm-lock.yaml
@@ -14,9 +14,9 @@ specifiers:
   crypt: ^0.0.2
   cssnano: ^5.1.15
   esbuild: ^0.17.10
-  flow-bin: ^0.200.0
+  flow-bin: ^0.200.1
   fs: 0.0.1-security
-  glob: ^8.1.0
+  glob: ^9.0.1
   graphviz: ^0.0.9
   jsdoc: ^4.0.2
   jsdoc-external-example: github:volker-schukai/jsdoc-external-example
@@ -46,7 +46,7 @@ specifiers:
   vite-plugin-banner: ^0.7.0
   vite-plugin-list-directory-contents: ^1.4.5
   vite-plugin-minify: ^1.5.2
-  vite-plugin-mkcert: ^1.13.2
+  vite-plugin-mkcert: ^1.13.3
   ws: ^8.12.1
 
 devDependencies:
@@ -63,9 +63,9 @@ devDependencies:
   crypt: 0.0.2
   cssnano: 5.1.15_postcss@8.4.21
   esbuild: 0.17.10
-  flow-bin: 0.200.0
+  flow-bin: 0.200.1
   fs: 0.0.1-security
-  glob: 8.1.0
+  glob: 9.0.1
   graphviz: 0.0.9
   jsdoc: 4.0.2
   jsdoc-external-example: github.com/volker-schukai/jsdoc-external-example/e039186b531487bd1b1d5e2e1586a396b910c9d9
@@ -95,7 +95,7 @@ devDependencies:
   vite-plugin-banner: 0.7.0
   vite-plugin-list-directory-contents: 1.4.5
   vite-plugin-minify: 1.5.2_vite@4.1.4
-  vite-plugin-mkcert: 1.13.2_vite@4.1.4
+  vite-plugin-mkcert: 1.13.3_vite@4.1.4
   ws: 8.12.1
 
 packages:
@@ -808,12 +808,12 @@ packages:
       - '@types/node'
     dev: true
 
-  /@microsoft/api-extractor-model/7.26.4_@types+node@18.14.1:
+  /@microsoft/api-extractor-model/7.26.4_@types+node@18.14.2:
     resolution: {integrity: sha512-PDCgCzXDo+SLY5bsfl4bS7hxaeEtnXj7XtuzEE+BtALp7B5mK/NrS2kHWU69pohgsRmEALycQdaQPXoyT2i5MQ==}
     dependencies:
       '@microsoft/tsdoc': 0.14.2
       '@microsoft/tsdoc-config': 0.16.2
-      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.1
+      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.2
     transitivePeerDependencies:
       - '@types/node'
     dev: true
@@ -838,14 +838,14 @@ packages:
       - '@types/node'
     dev: true
 
-  /@microsoft/api-extractor/7.34.4_@types+node@18.14.1:
+  /@microsoft/api-extractor/7.34.4_@types+node@18.14.2:
     resolution: {integrity: sha512-HOdcci2nT40ejhwPC3Xja9G+WSJmWhCUKKryRfQYsmE9cD+pxmBaKBKCbuS9jUcl6bLLb4Gz+h7xEN5r0QiXnQ==}
     hasBin: true
     dependencies:
-      '@microsoft/api-extractor-model': 7.26.4_@types+node@18.14.1
+      '@microsoft/api-extractor-model': 7.26.4_@types+node@18.14.2
       '@microsoft/tsdoc': 0.14.2
       '@microsoft/tsdoc-config': 0.16.2
-      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.1
+      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.2
       '@rushstack/rig-package': 0.3.18
       '@rushstack/ts-command-line': 4.13.2
       colors: 1.2.5
@@ -1117,7 +1117,7 @@ packages:
       z-schema: 5.0.5
     dev: true
 
-  /@rushstack/node-core-library/3.55.2_@types+node@18.14.1:
+  /@rushstack/node-core-library/3.55.2_@types+node@18.14.2:
     resolution: {integrity: sha512-SaLe/x/Q/uBVdNFK5V1xXvsVps0y7h1sN7aSJllQyFbugyOaxhNRF25bwEDnicARNEjJw0pk0lYnJQ9Kr6ev0A==}
     peerDependencies:
       '@types/node': '*'
@@ -1125,7 +1125,7 @@ packages:
       '@types/node':
         optional: true
     dependencies:
-      '@types/node': 18.14.1
+      '@types/node': 18.14.2
       colors: 1.2.5
       fs-extra: 7.0.1
       import-lazy: 4.0.0
@@ -1225,16 +1225,16 @@ packages:
     resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==}
     dev: true
 
-  /@types/node/18.14.1:
-    resolution: {integrity: sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==}
+  /@types/node/18.14.2:
+    resolution: {integrity: sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA==}
     dev: true
 
   /@wesbos/code-icons/1.2.4:
     resolution: {integrity: sha512-ZiU0xf7epnCRrLDQIPnFstzoNWDvcUTtKoDU3VhpjsaGRzVClSmsi39c4kHxIOdfxvg4zwdW+goH96xr/vMTQQ==}
     dependencies:
-      '@types/node': 18.14.1
-      vite: 4.1.4_@types+node@18.14.1
-      vite-plugin-dts: 1.7.3_75ucbpp7logpdg7n5tkyaoxqqm
+      '@types/node': 18.14.2
+      vite: 4.1.4_@types+node@18.14.2
+      vite-plugin-dts: 1.7.3_2r2lhzpsyiotool4a27bb3llsy
       vscode-icons-js: 11.6.1
     transitivePeerDependencies:
       - less
@@ -1380,7 +1380,7 @@ packages:
       postcss: ^8.1.0
     dependencies:
       browserslist: 4.21.5
-      caniuse-lite: 1.0.30001457
+      caniuse-lite: 1.0.30001458
       fraction.js: 4.2.0
       normalize-range: 0.1.2
       picocolors: 1.0.0
@@ -1453,8 +1453,8 @@ packages:
     engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
     hasBin: true
     dependencies:
-      caniuse-lite: 1.0.30001457
-      electron-to-chromium: 1.4.308
+      caniuse-lite: 1.0.30001458
+      electron-to-chromium: 1.4.313
       node-releases: 2.0.10
       update-browserslist-db: 1.0.10_browserslist@4.21.5
     dev: true
@@ -1528,13 +1528,13 @@ packages:
     resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
     dependencies:
       browserslist: 4.21.5
-      caniuse-lite: 1.0.30001457
+      caniuse-lite: 1.0.30001458
       lodash.memoize: 4.1.2
       lodash.uniq: 4.5.0
     dev: true
 
-  /caniuse-lite/1.0.30001457:
-    resolution: {integrity: sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==}
+  /caniuse-lite/1.0.30001458:
+    resolution: {integrity: sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==}
     dev: true
 
   /catharsis/0.9.0:
@@ -1750,7 +1750,7 @@ packages:
       execa: 4.1.0
       polyfill-library: 3.111.0
       semver: 7.3.8
-      snyk: 1.1108.0
+      snyk: 1.1109.0
       yargs: 15.4.1
     transitivePeerDependencies:
       - supports-color
@@ -2012,8 +2012,8 @@ packages:
       tslib: 2.5.0
     dev: true
 
-  /electron-to-chromium/1.4.308:
-    resolution: {integrity: sha512-qyTx2aDFjEni4UnRWEME9ubd2Xc9c0zerTUl/ZinvD4QPsF0S7kJTV/Es/lPCTkNX6smyYar+z/n8Cl6pFr8yQ==}
+  /electron-to-chromium/1.4.313:
+    resolution: {integrity: sha512-QckB9OVqr2oybjIrbMI99uF+b9+iTja5weFe0ePbqLb5BHqXOJUO1SG6kDj/1WtWPRIBr51N153AEq8m7HuIaA==}
     dev: true
 
   /emoji-regex/7.0.3:
@@ -2248,8 +2248,8 @@ packages:
     hasBin: true
     dev: true
 
-  /flow-bin/0.200.0:
-    resolution: {integrity: sha512-4KquALYPkCCTCZ43GIqTDZDOf4znU3/kXsigpiwwORV8l/ctqwvKkqCOhjqvGy5DtbiL6WTPBqLwGAlxeGeNIA==}
+  /flow-bin/0.200.1:
+    resolution: {integrity: sha512-0VCo3uZb0XIYF/sNFuLsGRpsUWnXbPi27MQ3AW7F1n7yAy2FEgMxDS/XQ3ubh5ga4M+yKrdeDsZ3IXwYyRNXMQ==}
     engines: {node: '>=0.10.0'}
     hasBin: true
     dev: true
@@ -2408,15 +2408,14 @@ packages:
       path-is-absolute: 1.0.1
     dev: true
 
-  /glob/8.1.0:
-    resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
-    engines: {node: '>=12'}
+  /glob/9.0.1:
+    resolution: {integrity: sha512-psRdn8MI0gRcH0xow0VOhYxXD/6ZaRGmgtfN0oWN/hCgjxpRQBMCl7wE4JRJSAUTdJsW+FmD0EtE0CgJhKqSVw==}
+    engines: {node: '>=16 || 14 >=14.17'}
     dependencies:
       fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 5.1.6
-      once: 1.4.0
+      minimatch: 7.3.0
+      minipass: 4.2.4
+      path-scurry: 1.5.0
     dev: true
 
   /globals/11.12.0:
@@ -2985,6 +2984,11 @@ packages:
       yallist: 4.0.0
     dev: true
 
+  /lru-cache/7.17.0:
+    resolution: {integrity: sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==}
+    engines: {node: '>=12'}
+    dev: true
+
   /make-dir/3.1.0:
     resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
     engines: {node: '>=8'}
@@ -3081,6 +3085,18 @@ packages:
       brace-expansion: 2.0.1
     dev: true
 
+  /minimatch/7.3.0:
+    resolution: {integrity: sha512-WaMDuhKa7a6zKiwplR1AOz+zGvJba24k5VU1Cy6NhEguavT2YRlHxuINUgTas4wiS6fwBpYq4TcA1XIECSntyw==}
+    engines: {node: '>=10'}
+    dependencies:
+      brace-expansion: 2.0.1
+    dev: true
+
+  /minipass/4.2.4:
+    resolution: {integrity: sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==}
+    engines: {node: '>=8'}
+    dev: true
+
   /mkdirp/1.0.4:
     resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
     engines: {node: '>=10'}
@@ -3386,6 +3402,14 @@ packages:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     dev: true
 
+  /path-scurry/1.5.0:
+    resolution: {integrity: sha512-hJ8rODLI9B2qwsYAd32rrI76gwVUPeu5kq/do6URDj2bJCVH3ilyT978Mv/NLuFMaqzHrn3XtiDLMZHaTTh4vA==}
+    engines: {node: '>=14'}
+    dependencies:
+      lru-cache: 7.17.0
+      minipass: 4.2.4
+    dev: true
+
   /path-to-regexp/1.8.0:
     resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==}
     dependencies:
@@ -4048,8 +4072,8 @@ packages:
       glob: 7.2.0
     dev: true
 
-  /rollup/3.17.2:
-    resolution: {integrity: sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA==}
+  /rollup/3.17.3:
+    resolution: {integrity: sha512-p5LaCXiiOL/wrOkj8djsIDFmyU9ysUxcyW+EKRLHb6TKldJzXpImjcRSR+vgo09DBdofGcOoLOsRyxxG2n5/qQ==}
     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
     hasBin: true
     optionalDependencies:
@@ -4167,8 +4191,8 @@ packages:
       supports-color: 7.2.0
     dev: true
 
-  /snyk/1.1108.0:
-    resolution: {integrity: sha512-HThKYgmcZgNG9ONuGUtJ/JuUaDzyqRHbPljJc50dtU9nEBmUc915jtPfrKKITdn6K+Ap9Rs8eVqnXWq0MGW0hA==}
+  /snyk/1.1109.0:
+    resolution: {integrity: sha512-sBcibkAfcq6nXr6t0GieDjdc8kQfEf429+M1VKavGfLaJPQNIqSjtOhQJ5FcZqaB/mCWa1szektkHeyAiB4m9A==}
     engines: {node: '>=12'}
     hasBin: true
     dev: true
@@ -4553,21 +4577,21 @@ packages:
     resolution: {integrity: sha512-g0cm0wbrR6b6wR8FWtfD1RSDPacdumKEOAnneXv+NpJ9ez+j6rklRv6lMOO+aPf+Y6Zb8OzgIk0FXBZ6h+DeZQ==}
     dev: true
 
-  /vite-plugin-dts/1.7.3_75ucbpp7logpdg7n5tkyaoxqqm:
+  /vite-plugin-dts/1.7.3_2r2lhzpsyiotool4a27bb3llsy:
     resolution: {integrity: sha512-u3t45p6fTbzUPMkwYe0ESwuUeiRMlwdPfD3dRyDKUwLe2WmEYcFyVp2o9/ke2EMrM51lQcmNWdV9eLcgjD1/ng==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
       vite: '>=2.9.0'
     dependencies:
-      '@microsoft/api-extractor': 7.34.4_@types+node@18.14.1
+      '@microsoft/api-extractor': 7.34.4_@types+node@18.14.2
       '@rollup/pluginutils': 5.0.2
-      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.1
+      '@rushstack/node-core-library': 3.55.2_@types+node@18.14.2
       debug: 4.3.4
       fast-glob: 3.2.12
       fs-extra: 10.1.0
       kolorist: 1.7.0
       ts-morph: 17.0.1
-      vite: 4.1.4_@types+node@18.14.1
+      vite: 4.1.4_@types+node@18.14.2
     transitivePeerDependencies:
       - '@types/node'
       - rollup
@@ -4622,8 +4646,8 @@ packages:
       vite: 4.1.4
     dev: true
 
-  /vite-plugin-mkcert/1.13.2_vite@4.1.4:
-    resolution: {integrity: sha512-zna6J66cgCaNt2vAP/kDLuBbzr3kivwS4wjBxGvoKK61PBdvlPW2M+vxEGEpuRrrW7X4vQAX9JzmXk1QSAI4Eg==}
+  /vite-plugin-mkcert/1.13.3_vite@4.1.4:
+    resolution: {integrity: sha512-cuAbOb6bHyTMhha9YimL6ZB/WoCcFy8d3uaf5n5Ovgybix1yvEu3pxARy2HjC5LJIS1qq6fFXG0+oj6/XMUapA==}
     engines: {node: '>=v16.7.0'}
     peerDependencies:
       vite: '>=3'
@@ -4666,12 +4690,12 @@ packages:
       esbuild: 0.16.17
       postcss: 8.4.21
       resolve: 1.22.1
-      rollup: 3.17.2
+      rollup: 3.17.3
     optionalDependencies:
       fsevents: 2.3.2
     dev: true
 
-  /vite/4.1.4_@types+node@18.14.1:
+  /vite/4.1.4_@types+node@18.14.2:
     resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -4696,11 +4720,11 @@ packages:
       terser:
         optional: true
     dependencies:
-      '@types/node': 18.14.1
+      '@types/node': 18.14.2
       esbuild: 0.16.17
       postcss: 8.4.21
       resolve: 1.22.1
-      rollup: 3.17.2
+      rollup: 3.17.3
     optionalDependencies:
       fsevents: 2.3.2
     dev: true
diff --git a/development/test/cases/data/transformer.mjs b/development/test/cases/data/transformer.mjs
index 65e6e4d6324e0702846d2190de392b70f98558c4..84e2e536ad7b7af9b18d2871d9ce450f277e8ad4 100644
--- a/development/test/cases/data/transformer.mjs
+++ b/development/test/cases/data/transformer.mjs
@@ -28,6 +28,18 @@ describe('Transformer', function () {
     describe('Transformer.run()', function () {
 
         [
+            ['has-entries', {}, false],
+            ['has-entries', {a:4}, true],
+            ['has-entries', [], false],
+            ['has-entries', "", false],
+            ['has-entries', [1,2,3], true],
+            ['has-entries', [1], true],
+            ['has-entries', ["1"], true],
+            ['has-entries', [true], true],
+            ['contains:x', "asd wxd sdf", true],
+            ['contains:x', "asd wd sdf", false],
+            ['contains:b', ["a","b","c"], true],
+            ['contains:x', ["a","b","c"], false],
             ['isundefined', "a", false],
             ['isundefined', null, false],
             ['isundefined', undefined, true],