This run took 62 seconds.
$ date
--- stdout ---
Wed Jun 3 02:17:47 UTC 2026
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-JsonForms.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/repo'...
--- stdout ---
--- end ---
$ git config user.name libraryupgrader
--- stdout ---
--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---
--- end ---
$ git submodule update --init
--- stdout ---
--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.
--- end ---
$ git show-ref refs/heads/master
--- stdout ---
35907ada3098d06028ad15086c355a8ec9604f63 refs/heads/master
--- end ---
$ /usr/bin/npm i --package-lock-only
--- stdout ---
up to date, audited 472 packages in 8s
115 packages are looking for funding
run `npm fund` for details
2 high severity vulnerabilities
To address all issues, run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
Editing .gitignore to remove package-lock.json
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"grunt": {
"name": "grunt",
"severity": "high",
"isDirect": true,
"via": [
"minimatch"
],
"effects": [],
"range": "0.4.0-a - 1.6.1",
"nodes": [
"node_modules/grunt"
],
"fixAvailable": {
"name": "grunt",
"version": "1.6.2",
"isSemVerMajor": false
}
},
"minimatch": {
"name": "minimatch",
"severity": "high",
"isDirect": false,
"via": [
{
"source": 1113459,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has a ReDoS via repeated wildcards with non-matching literal in pattern",
"url": "https://github.com/advisories/GHSA-3ppc-4f35-3m26",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 0,
"vectorString": null
},
"range": "<3.1.3"
},
{
"source": 1113538,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch has ReDoS: matchOne() combinatorial backtracking via multiple non-adjacent GLOBSTAR segments",
"url": "https://github.com/advisories/GHSA-7r86-cg39-jmmj",
"severity": "high",
"cwe": [
"CWE-407"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<3.1.3"
},
{
"source": 1113546,
"name": "minimatch",
"dependency": "minimatch",
"title": "minimatch ReDoS: nested *() extglobs generate catastrophically backtracking regular expressions",
"url": "https://github.com/advisories/GHSA-23c5-xmqv-rm74",
"severity": "high",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 7.5,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
},
"range": "<3.1.4"
}
],
"effects": [
"grunt"
],
"range": "<=3.1.3",
"nodes": [
"node_modules/grunt/node_modules/minimatch"
],
"fixAvailable": {
"name": "grunt",
"version": "1.6.2",
"isSemVerMajor": false
}
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 0,
"high": 2,
"critical": 0,
"total": 2
},
"dependencies": {
"prod": 1,
"dev": 471,
"optional": 0,
"peer": 1,
"peerOptional": 0,
"total": 471
}
}
}
--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 24 installs, 0 updates, 0 removals
- Locking composer/semver (3.4.3)
- Locking composer/spdx-licenses (1.5.10)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.1)
- Locking mediawiki/mediawiki-codesniffer (v47.0.0)
- Locking mediawiki/minus-x (1.1.3)
- Locking opis/json-schema (2.6.0)
- Locking opis/string (2.1.0)
- Locking opis/uri (1.1.0)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.4.0)
- Locking phpcsstandards/phpcsextra (1.2.1)
- Locking phpcsstandards/phpcsutils (1.0.12)
- Locking psr/container (2.0.2)
- Locking squizlabs/php_codesniffer (3.12.2)
- Locking symfony/console (v7.4.13)
- Locking symfony/deprecation-contracts (v3.7.0)
- Locking symfony/polyfill-ctype (v1.37.0)
- Locking symfony/polyfill-intl-grapheme (v1.38.1)
- Locking symfony/polyfill-intl-normalizer (v1.38.0)
- Locking symfony/polyfill-mbstring (v1.38.1)
- Locking symfony/polyfill-php80 (v1.37.0)
- Locking symfony/service-contracts (v3.7.0)
- Locking symfony/string (v8.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 24 installs, 0 updates, 0 removals
- Downloading squizlabs/php_codesniffer (3.12.2)
- Downloading phpcsstandards/phpcsutils (1.0.12)
- Downloading phpcsstandards/phpcsextra (1.2.1)
- Downloading composer/semver (3.4.3)
- Downloading mediawiki/mediawiki-codesniffer (v47.0.0)
- Downloading opis/string (2.1.0)
- Downloading opis/uri (1.1.0)
- Downloading opis/json-schema (2.6.0)
0/8 [>---------------------------] 0%
6/8 [=====================>------] 75%
8/8 [============================] 100%
- Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.1): Extracting archive
- Installing symfony/polyfill-php80 (v1.37.0): Extracting archive
- Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
- Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
- Installing symfony/polyfill-mbstring (v1.38.1): Extracting archive
- Installing composer/spdx-licenses (1.5.10): Extracting archive
- Installing composer/semver (3.4.3): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.38.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.38.1): Extracting archive
- Installing symfony/polyfill-ctype (v1.37.0): Extracting archive
- Installing symfony/string (v8.1.0): Extracting archive
- Installing symfony/deprecation-contracts (v3.7.0): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.7.0): Extracting archive
- Installing symfony/console (v7.4.13): Extracting archive
- Installing mediawiki/minus-x (1.1.3): Extracting archive
- Installing opis/string (2.1.0): Extracting archive
- Installing opis/uri (1.1.0): Extracting archive
- Installing opis/json-schema (2.6.0): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
0/22 [>---------------------------] 0%
22/22 [============================] 100%
Generating autoload files
15 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Upgrading n:eslint-config-wikimedia from 0.31.0 -> 0.32.4
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 479 packages, and audited 480 packages in 7s
119 packages are looking for funding
run `npm fund` for details
2 high severity vulnerabilities
To address all issues, run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stdout ---
up to date, audited 480 packages in 2s
119 packages are looking for funding
run `npm fund` for details
2 high severity vulnerabilities
To address all issues, run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json
--- end ---
$ ./node_modules/.bin/eslint resources/JsonFormsSlotManager.js resources/schema-converters/NewSchema.js resources/UISchemaConverters.js package.json resources/JsonForms.js resources/schema-converters/NewSlot.js resources/JsonFormsEditSchema.js resources/schema-converters/Survey.js i18n/qqq.json Gruntfile.js resources/JsonFormsNewArticle.js resources/OOUIElements.js resources/EnumProviders.js resources/JsonFormsDemo.js resources/schema-converters/Field.js composer.json resources/schema-converters/Subitem.js resources/schema-converters/Geolocation.js resources/AutocompleteProviders.js package-lock.json resources/schema-converters/NewProperty.js resources/JsonFormsPageForms.js resources/Utilities.js resources/JsonFormsManageSchemas.js i18n/en.json extension.json --fix
--- stdout ---
/src/repo/resources/JsonForms.js
130:24 error Parsing error: Unexpected token import
/src/repo/resources/JsonFormsManageSchemas.js
30:42 warning 'JsonForms' is not defined no-undef
66:68 warning 'editor' is defined but never used no-unused-vars
76:5 warning Unexpected console statement no-console
77:5 warning 'JsonForms' is not defined no-undef
83:5 warning 'JsonForms' is not defined no-undef
87:56 warning Unexpected console statement no-console
93:53 warning Unexpected console statement no-console
109:14 warning structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
136:3 warning Unexpected console statement no-console
168:2 warning Unexpected console statement no-console
180:5 warning Unexpected console statement no-console
191:33 warning 'JsonForms' is not defined no-undef
204:33 warning 'JsonForms' is not defined no-undef
208:41 warning 'editor' is defined but never used no-unused-vars
219:1 warning '$' is not defined no-undef
222:2 warning '$' is not defined no-undef
224:16 warning '$' is not defined no-undef
226:3 warning Unexpected console statement no-console
233:31 warning 'editor_' is defined but never used no-unused-vars
/src/repo/resources/JsonFormsPageForms.js
80:14 warning structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
264:6 warning Unexpected dangling '_' in '_resolveEditorReady' no-underscore-dangle
303:5 warning Identifier 'display_path' is not in camel case camelcase
321:5 warning Identifier 'display_path' is not in camel case camelcase
348:10 warning 'hasData' is assigned a value but never used no-unused-vars
378:8 warning Unexpected console statement no-console
401:7 warning Unexpected console statement no-console
415:7 warning Unexpected console statement no-console
425:1 warning This line has a length of 102. Maximum allowed is 100 max-len
452:2 warning '$' is not defined no-undef
486:4 warning Unexpected console statement no-console
487:4 warning Unexpected console statement no-console
492:5 warning Unexpected console statement no-console
493:5 warning Unexpected console statement no-console
501:69 warning Unexpected console statement no-console
525:4 warning Unexpected console statement no-console
529:5 warning Unexpected console statement no-console
612:2 warning Unexpected console statement no-console
624:5 warning Unexpected console statement no-console
651:43 warning 'editor' is defined but never used no-unused-vars
681:4 warning Unexpected console statement no-console
686:10 warning 'editor' is assigned a value but never used no-unused-vars
/src/repo/resources/JsonFormsSlotManager.js
35:66 warning 'editor' is defined but never used no-unused-vars
50:4 warning Unexpected console statement no-console
56:41 warning Unexpected console statement no-console
101:2 warning Unexpected console statement no-console
126:2 warning Unexpected console statement no-console
138:5 warning Unexpected console statement no-console
176:4 warning Unexpected console statement no-console
183:35 warning 'editor' is already declared in the upper scope on line 182 column 10 no-shadow
191:6 warning Unexpected console statement no-console
204:41 warning 'editor' is already declared in the upper scope on line 183 column 35 no-shadow
/src/repo/resources/OOUIElements.js
214:27 warning 'config' is defined but never used no-unused-vars
/src/repo/resources/UISchemaConverters.js
13:48 warning A constructor name should not start with a lowercase letter new-cap
/src/repo/resources/schema-converters/NewProperty.js
6:24 warning 'el' is defined but never used no-unused-vars
6:28 warning 'data' is defined but never used no-unused-vars
14:3 warning 'UISchema' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/NewSchema.js
5:22 warning 'el' is defined but never used no-unused-vars
5:26 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/NewSlot.js
5:20 warning 'el' is defined but never used no-unused-vars
5:24 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/Subitem.js
5:20 warning 'el' is defined but never used no-unused-vars
5:24 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/Survey.js
5:19 warning 'el' is defined but never used no-unused-vars
5:23 warning 'data' is defined but never used no-unused-vars
✖ 65 problems (1 error, 64 warnings)
--- end ---
$ ./node_modules/.bin/eslint resources/JsonFormsSlotManager.js resources/schema-converters/NewSchema.js resources/UISchemaConverters.js package.json resources/JsonForms.js resources/schema-converters/NewSlot.js resources/JsonFormsEditSchema.js resources/schema-converters/Survey.js i18n/qqq.json Gruntfile.js resources/JsonFormsNewArticle.js resources/OOUIElements.js resources/EnumProviders.js resources/JsonFormsDemo.js resources/schema-converters/Field.js composer.json resources/schema-converters/Subitem.js resources/schema-converters/Geolocation.js resources/AutocompleteProviders.js package-lock.json resources/schema-converters/NewProperty.js resources/JsonFormsPageForms.js resources/Utilities.js resources/JsonFormsManageSchemas.js i18n/en.json extension.json -f json
--- stdout ---
[{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/qqq.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/AutocompleteProviders.js","messages":[],"suppressedMessages":[{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_renderByInputType'.","line":85,"column":2,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":85,"endColumn":52,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_renderByInputType'.","line":144,"column":12,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":144,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_renderByInputType'.","line":172,"column":12,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":172,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_renderByInputType'.","line":216,"column":12,"nodeType":"MemberExpression","messageId":"unexpectedUnderscore","endLine":216,"endColumn":35,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":222,"column":2,"nodeType":"Identifier","messageId":"undef","endLine":222,"endColumn":11,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/EnumProviders.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-vars","severity":1,"message":"'item' is defined but never used.","line":11,"column":26,"nodeType":"Identifier","messageId":"unusedVar","endLine":11,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'jseditor' is defined but never used.","line":93,"column":14,"nodeType":"Identifier","messageId":"unusedVar","endLine":93,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'item' is defined but never used.","line":93,"column":26,"nodeType":"Identifier","messageId":"unusedVar","endLine":93,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'watched' is defined but never used.","line":93,"column":32,"nodeType":"Identifier","messageId":"unusedVar","endLine":93,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'watched' is defined but never used.","line":94,"column":31,"nodeType":"Identifier","messageId":"unusedVar","endLine":94,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'watched' is defined but never used.","line":95,"column":31,"nodeType":"Identifier","messageId":"unusedVar","endLine":95,"endColumn":38,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":118,"column":6,"nodeType":"MemberExpression","messageId":"unexpected","endLine":118,"endColumn":19,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[2751,2805],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'item' is defined but never used.","line":132,"column":26,"nodeType":"Identifier","messageId":"unusedVar","endLine":132,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-case-declarations","severity":2,"message":"Unexpected lexical declaration in case block.","line":140,"column":7,"nodeType":"VariableDeclaration","messageId":"unexpected","endLine":140,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'contentModels' is assigned a value but never used.","line":173,"column":9,"nodeType":"Identifier","messageId":"unusedVar","endLine":173,"endColumn":22,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'item' is defined but never used.","line":177,"column":24,"nodeType":"Identifier","messageId":"unusedVar","endLine":177,"endColumn":28,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":222,"column":2,"nodeType":"Identifier","messageId":"undef","endLine":222,"endColumn":11,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonForms.js","messages":[{"ruleId":null,"fatal":true,"severity":2,"message":"Parsing error: Unexpected token import","line":130,"column":24,"nodeType":null}],"suppressedMessages":[],"errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension JsonForms.\n *\n * JsonForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * JsonForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with JsonForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2025-2026, https://wikisphere.org\n */\n\n/* eslint-disable es-x/no-rest-spread-properties */\n/* eslint-disable camelcase */\n/* eslint-disable no-console */\n/* eslint-disable no-unused-vars */\n\nfunction JsonForms( el, data ) {\n\tthis.moduleCache = new Map();\n\tthis.el = el;\n\tthis.schema = data.schema;\n\tthis.schemaName = data.schemaName;\n\tthis.startval = data.startval;\n\tthis.editor = null;\n\n\tthis.data = data;\n\t// @TODO add upload providers\n}\n\nJsonForms.prototype.initialize = async function () {\n\t// console.log('this.data.editorOptions',defaultOptions)\n\tthis.editorOptions = await this.getModule( this.data.editorOptions );\n\tthis.editorScript = await this.getModule( this.data.editorScript );\n\n\t// console.log('this.editorOptions',this.editorOptions)\n\n\t// this.enumProviders = this.formatProviders(JsonForms.enumProviders);\n\tthis.enumProviders = JsonForms.enumProviders;\n\n\t// console.log('this.enumProviders',this.enumProviders)\n\n\tthis.autocompleteProviders = JsonForms.autocompleteProviders;\n\n\tconst UISchemaConverters = new JsonForms.UISchemaConverters();\n\n\t// console.log('defaultOptions',defaultOptions)\n\n\tconst defaultOptions = this.editorOptions || {};\n\n\t// const defaultOptions = JSON.parse(JSON.stringify(this.editorOptions));\n\n\t// console.log('defaultOptions',defaultOptions)\n\n\tdefaultOptions.callbacks = defaultOptions.callbacks || {};\n\n\tdefaultOptions.callbacks.enum_providers = {\n\t\t...this.enumProviders,\n\t\t...( ( defaultOptions.callbacks && defaultOptions.callbacks.enum_providers ) || {} )\n\t};\n\n\tdefaultOptions.callbacks.autocomplete_providers = {\n\t\t...this.autocompleteProviders,\n\t\t...( ( defaultOptions.callbacks && defaultOptions.callbacks.autocomplete_providers ) || {} )\n\t};\n\n\tdefaultOptions.callbacks.ui_schema_converters = {\n\t\t...UISchemaConverters.converters,\n\t\t...( ( defaultOptions.callbacks && defaultOptions.callbacks.ui_schema_converters ) || {} )\n\t};\n\n\tthis.defaultOptions = defaultOptions;\n};\n\nJsonForms.prototype.createDefaultEditor = function ( config = {} ) {\n\tthis.createEditor( this.el, {\n\t\tjsonFormsInstance: this,\n\t\tschema: this.schema,\n\t\tschemaName: this.schemaName,\n\t\tstartval: this.startval,\n\t\t...config\n\t} );\n\n\treturn this.editor;\n};\n\n/*\n// @see KnowledgeGraph.js\nJsonForms.prototype.getModule = async function (str) {\n\tif (this.moduleCache.has(str)) {\n\t\treturn this.moduleCache.get(str);\n\t}\n\n\ttry {\n\t\tconst module = await import(`data:text/javascript;base64,${btoa(str)}`);\n\t\tconst result = module.default ?? null;\n\t\tthis.moduleCache.set(str, result);\n\t\treturn result;\n\t} catch (err) {\n\t\tconsole.error('Failed to load module:', err);\n\t\treturn null;\n\t}\n}\n*/\nJsonForms.prototype.getModule = async function ( str ) {\n\tconst cacheKey = typeof str === 'string' ? str.slice( 0, 100 ) : str;\n\n\tif ( this.moduleCache.has( cacheKey ) ) {\n\t\treturn this.moduleCache.get( cacheKey );\n\t}\n\n\tif ( typeof str !== 'string' ) {\n\t\treturn str;\n\t}\n\n\tlet url = null;\n\ttry {\n\t\tconst blob = new Blob( [ str ], { type: 'application/javascript' } );\n\t\turl = URL.createObjectURL( blob );\n\n\t\t// eslint-disable-next-line es-x/no-dynamic-import\n\t\tconst module = await import( url );\n\t\tconst result = module.default || null;\n\t\tthis.moduleCache.set( cacheKey, result );\n\t\treturn result;\n\t} catch ( err ) {\n\t\tconsole.error( 'Failed to load module:', err );\n\t\treturn null;\n\t} finally {\n\t\tif ( url ) {\n\t\t\tURL.revokeObjectURL( url );\n\t\t}\n\t}\n};\n\nJsonForms.prototype.MWSchemaUrl = function ( maybeUrl ) {\n\tconst mwBaseUrl = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' );\n\treturn `${ mwBaseUrl }?title=${ maybeUrl }&action=raw`;\n};\n\nJsonForms.prototype.isMWSchema = function ( maybeUrl, fileBase ) {\n\tconsole.log( 'isMWSchema config', mw.config );\n\n\tif ( JsonForms.Utilities.hasProtocol( maybeUrl ) ) {\n\t\treturn false;\n\t}\n\tif ( !fileBase ) {\n\t\treturn true;\n\t}\n\n\treturn true;\n\t// const mwBaseUrl = mw.config.get( 'wgServer' ) + mw.config.get( 'wgScript' );\n\t// return (\n\t// fileBase.includes( mwBaseUrl ) || mwBaseUrl.includes( fileBase )\n\t// );\n};\n\nJsonForms.prototype.fetchSchema = function ( schema ) {\n\t// console.log('fetchSchema',schema)\n\tconst payload = {\n\t\taction: 'jsonforms-fetch-schema',\n\t\tformat: 'json',\n\t\tschema\n\t};\n\n\t// console.log('payload',payload)\n\treturn new Promise( ( resolve, reject ) => {\n\t\tnew mw.Api().get( payload ).done( ( thisRes ) => {\n\t\t\t// console.log('thisRes', thisRes);\n\t\t\tlet result = thisRes[ payload.action ].result;\n\t\t\tresult = JSON.parse( result );\n\t\t\t// console.log('result', result);\n\t\t\tresolve( result );\n\t\t} );\n\t} ).catch( ( err ) => {\n\t\tconsole.error( 'API call failed:', err );\n\t\tthrow err;\n\t} );\n};\n\nJsonForms.prototype.getEditor = function () {\n\treturn this.editor;\n};\n\nJsonForms.prototype.createEditor = function ( el, config ) {\n\t// eslint-disable-next-line no-undef\n\tJFEditor.defaults.options = this.defaultOptions;\n\n\t// eslint-disable-next-line no-undef\n\tthis.editor = new JFEditor( el, {\n\t\tschemaSelector: null,\n\t\t...config,\n\t\tajax: true,\n\t\tjsonFormsInstance: this\n\t} );\n\n\tif ( typeof this.editorScript === 'function' ) {\n\t\tconst updateEditorCallBack = ( thisConfig ) => {\n\t\t\tthis.createEditor( this.el, { ...config, ...thisConfig } );\n\t\t};\n\t\tthis.editorScript( this.editor, this.config, updateEditorCallBack );\n\t}\n\n\treturn this.editor;\n};\n\nJsonForms.prototype.processTemplate = function ( str, vars, options = {} ) {\n\t// Match patterns like <user.name> or <count>\n\tconst regex = /<([^>]+)>/g;\n\n\treturn str.replace( regex, ( match, path ) => {\n\t\tconst trimmedPath = path.trim();\n\t\treturn vars[ trimmedPath ] !== undefined ? vars[ trimmedPath ] : '';\n\t} );\n};\n\n/*\nJsonForms.prototype.processTemplate = function (str, vars, options = {}) {\n\tif ( options.replaceAngularBrackets ) {\n\t\tstr = str.replace('<', '{{').replace('>', '}}');\n\t}\n\n\tconst template = this.editor.compileTemplate( str );\n\treturn this.editor.getTemplateResult(\n\t\ttemplate,\n\t\tvars,\n\t);\n};\n*/\n\nwindow.JsonForms = JsonForms;\n\n( function ( $ ) {\n\t$( () => {\n\t\tfunction resizeTreeSidePanel() {\n\t\t// const actualHeight = secondColumnContent.scrollHeight;\n\n\t\t\tconst leftSelector =\n\t\t\t'.jsonforms-treewidget.oo-ui-menuLayout-showMenu .oo-ui-menuLayout-menu';\n\t\t\tconst rightSelector =\n\t\t\t'.jsonforms-treewidget.oo-ui-menuLayout-showMenu .oo-ui-menuLayout-content';\n\n\t\t\tconst $left = $( leftSelector );\n\t\t\tconst $right = $( rightSelector );\n\n\t\t\tif ( !$left[ 0 ] || !$right[ 0 ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst leftRect = $left[ 0 ].getBoundingClientRect();\n\t\t\tconst containerRect = $right[ 0 ].getBoundingClientRect();\n\n\t\t\tconst viewportHeight = $( window ).height();\n\t\t\tconst toViewport = viewportHeight - leftRect.top;\n\t\t\tconst toContainer = containerRect.bottom - leftRect.top;\n\t\t\tlet available = Math.min( toViewport, toContainer );\n\t\t\tavailable = Math.max( 0, available );\n\n\t\t\t$left.css( 'max-height', available + 'px' );\n\t\t}\n\n\t\t$( window ).on( 'scroll resize', resizeTreeSidePanel );\n\t\tresizeTreeSidePanel();\n\t} );\n\n// eslint-disable-next-line no-undef\n}( jQuery ) );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsDemo.js","messages":[],"suppressedMessages":[{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":29,"column":33,"nodeType":"Identifier","messageId":"undef","endLine":29,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":33,"column":3,"nodeType":"MemberExpression","messageId":"unexpected","endLine":33,"endColumn":14,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1055,1094],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":39,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":39,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1228,1256],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'jQuery' is not defined.","line":75,"column":4,"nodeType":"Identifier","messageId":"undef","endLine":75,"endColumn":10,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsEditSchema.js","messages":[],"suppressedMessages":[{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":36,"column":39,"nodeType":"Identifier","messageId":"undef","endLine":36,"endColumn":48,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":38,"column":65,"nodeType":"Identifier","messageId":"unusedVar","endLine":38,"endColumn":71,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":50,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":50,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1591,1645],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":54,"column":5,"nodeType":"Identifier","messageId":"undef","endLine":54,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":57,"column":41,"nodeType":"MemberExpression","messageId":"unexpected","endLine":57,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":111,"column":21,"nodeType":"SpreadElement","messageId":"forbidden","endLine":111,"endColumn":48,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":131,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":131,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[3639,3667],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":143,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":143,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[3925,3959],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":156,"column":33,"nodeType":"Identifier","messageId":"undef","endLine":156,"endColumn":42,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":168,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":168,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[4636,4686],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":183,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":183,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[4935,4963],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is assigned a value but never used.","line":189,"column":10,"nodeType":"Identifier","messageId":"unusedVar","endLine":189,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'jQuery' is not defined.","line":195,"column":4,"nodeType":"Identifier","messageId":"undef","endLine":195,"endColumn":10,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsManageSchemas.js","messages":[{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":30,"column":42,"nodeType":"Identifier","messageId":"undef","endLine":30,"endColumn":51},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":66,"column":68,"nodeType":"Identifier","messageId":"unusedVar","endLine":66,"endColumn":74},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":76,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":76,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[2354,2430],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":77,"column":5,"nodeType":"Identifier","messageId":"undef","endLine":77,"endColumn":14},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":83,"column":5,"nodeType":"Identifier","messageId":"undef","endLine":83,"endColumn":14},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":87,"column":56,"nodeType":"MemberExpression","messageId":"unexpected","endLine":87,"endColumn":69},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":93,"column":53,"nodeType":"MemberExpression","messageId":"unexpected","endLine":93,"endColumn":66},{"ruleId":"compat/compat","severity":1,"message":"structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":109,"column":14,"nodeType":"CallExpression","endLine":109,"endColumn":44},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":136,"column":3,"nodeType":"MemberExpression","messageId":"unexpected","endLine":136,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[4052,4139],"text":""},"desc":"Remove the console.error()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":168,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":168,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[4840,4868],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":180,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":180,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[5126,5160],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":191,"column":33,"nodeType":"Identifier","messageId":"undef","endLine":191,"endColumn":42},{"ruleId":"no-undef","severity":1,"message":"'JsonForms' is not defined.","line":204,"column":33,"nodeType":"Identifier","messageId":"undef","endLine":204,"endColumn":42},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":208,"column":41,"nodeType":"Identifier","messageId":"unusedVar","endLine":208,"endColumn":47},{"ruleId":"no-undef","severity":1,"message":"'$' is not defined.","line":219,"column":1,"nodeType":"Identifier","messageId":"undef","endLine":219,"endColumn":2},{"ruleId":"no-undef","severity":1,"message":"'$' is not defined.","line":222,"column":2,"nodeType":"Identifier","messageId":"undef","endLine":222,"endColumn":3},{"ruleId":"no-undef","severity":1,"message":"'$' is not defined.","line":224,"column":16,"nodeType":"Identifier","messageId":"undef","endLine":224,"endColumn":17},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":226,"column":3,"nodeType":"MemberExpression","messageId":"unexpected","endLine":226,"endColumn":14,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[6464,6492],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-unused-vars","severity":1,"message":"'editor_' is defined but never used.","line":233,"column":31,"nodeType":"Identifier","messageId":"unusedVar","endLine":233,"endColumn":38}],"suppressedMessages":[{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":131,"column":27,"nodeType":"SpreadElement","messageId":"forbidden","endLine":131,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":213,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":213,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[6143,6193],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":19,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension JsonForms.\n *\n * JsonForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * JsonForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with JsonForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2026, https://wikisphere.org\n */\n\n/* eslint-disable es-x/no-rest-spread-properties */\n\nfunction JsonFormsManageSchemas( el, data ) {\n\tJsonFormsManageSchemas.super.call( this, el, data );\n\n\tthis.formDescriptor = data.formDescriptor;\n}\n\nOO.inheritClass( JsonFormsManageSchemas, JsonForms );\n\n// ***redefine enum provider and callbacks\nJsonFormsManageSchemas.prototype.initialize = async function () {\n\tawait JsonFormsManageSchemas.super.prototype.initialize.call( this );\n\n\tif ( !this.defaultOptions ) {\n\t\tthis.defaultOptions = {};\n\t}\n\tif ( !this.defaultOptions.callbacks ) {\n\t\tthis.defaultOptions.callbacks = {};\n\t}\n\n\tthis.defaultOptions.callbacks.button = Object.assign(\n\t\t{},\n\t\tthis.defaultOptions.callbacks.button || {},\n\t\t{\n\t\t\tsubmitButton: ( editor ) => {\n\t\t\t\tthis.onFormButton( 'submit', editor );\n\t\t\t},\n\t\t\tcancelButton: ( editor ) => {\n\t\t\t\tthis.onFormButton( 'cancel', editor );\n\t\t\t}\n\t\t}\n\t);\n\n\t// this.defaultOptions.callbacks.template = {\n\t// ...this.defaultOptions.callbacks.template,\n\t// ...this.enumProviders,\n\t// };\n\n\t// console.log('this.defaultOptions', this.defaultOptions);\n\n\tthis.schema = this.adjustFormSchema();\n};\n\nJsonFormsManageSchemas.prototype.onFormButton = function ( action, editor ) {\n\tconst innerformEditor = this.editor.getEditor( 'root.editor' );\n\tconst innerEditor = innerformEditor.input.editor;\n\n\tswitch ( action ) {\n\t\tcase 'submit': {\n\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\t\t\t// console.log('innerEditorValidationResults', innerEditorValidationResults);\n\n\t\t\tif ( innerEditorValidationResults.length ) {\n\t\t\t\tconsole.log( 'innerEditorValidationResults', innerEditorValidationResults );\n\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst schemaName = innerEditor.getSchemaName();\n\t\t\tif ( schemaName && innerEditor.getValue()[ 'x-name' ] !== schemaName ) {\n\t\t\t\tJsonForms.Alert(\n\t\t\t\t\t'This will rename the schema, ok ?',\n\t\t\t\t\t{ size: 'small' },\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.submitForm( innerEditor ).catch( ( err ) => console.error( 'API error:', err )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.submitForm( innerEditor ).catch( ( err ) => console.error( 'API error:', err )\n\t\t\t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'cancel': {\n\t\t\tconst url = mw.config\n\t\t\t\t.get( 'wgArticlePath' )\n\t\t\t\t.replace( '$1', mw.config.get( 'wgPageName' ) );\n\n\t\t\twindow.location.href = url; }\n\t\t\tbreak;\n\t}\n};\n\n// adjust form schema based on form descriptor\nJsonFormsManageSchemas.prototype.adjustFormSchema = function () {\n\tconst ret = structuredClone( this.schema );\n\n\tdelete ret.properties.footer.properties.minor;\n\tdelete ret.properties.footer.properties.summary;\n\tdelete ret.properties.footer[ 'x-css-class' ];\n\tdelete ret.properties.footer.properties.buttons[ 'x-css-class' ];\n\n\treturn ret;\n};\n\nJsonFormsManageSchemas.prototype.submitForm = function ( innerEditor ) {\n\t// console.log('innerEditor', innerEditor);\n\n\tconst vars = {};\n\tconst structuredValue = innerEditor.getStructuredValue();\n\t// console.log('structuredValue', structuredValue);\n\n\tfor ( const path in structuredValue ) {\n\t\tvars[ path ] = structuredValue[ path ].value;\n\t}\n\n\t// Create a shallow copy to avoid mutating the original\n\tconst formDescriptor = { ...this.formDescriptor };\n\n\t// console.log('vars', vars);\n\n\tif ( !formDescriptor.pagename_formula ) {\n\t\tconsole.error(\n\t\t\t'JsonFormsManageSchemas formDescriptor.pagename_formula not set'\n\t\t);\n\t\treturn;\n\t}\n\n\t// $formDescriptor['pagename_formula'] = 'JsonSchema:<name>';\n\t// or $formDescriptor['pagename_formula'] = 'JsonSchema:<x-name>';\n\t// server-side\n\n\tconst title = this.processTemplate( formDescriptor.pagename_formula, vars, {\n\t\treplaceAngularBrackets: true\n\t} );\n\n\t// *** submission data are arbitrary and depend on the\n\t// SubmitProcessor\n\tconst data = {\n\t\tvalue: innerEditor.getValue(),\n\t\t// edit_page is set via $formDescriptor['edit_page']\n\t\t// so on move 'edit_page' will be the source and options.tite\n\t\t// the target\n\t\toptions: {\n\t\t\ttitle\n\t\t},\n\t\tstructuredValue,\n\t\tformDescriptor,\n\t\tconfig: mw.config.get( 'jsonforms' ),\n\n\t\t// submit processor\n\t\tprocessor: 'ManageSchemas'\n\t};\n\n\tconsole.log( 'data', data );\n\n\tconst payload = {\n\t\tdata: JSON.stringify( data ),\n\t\taction: 'jsonforms-submit-form'\n\t};\n\n\t// console.log('payload', payload);\n\treturn new Promise( ( resolve, reject ) => {\n\t\tnew mw.Api()\n\t\t\t.postWithToken( 'csrf', payload )\n\t\t\t.done( ( thisRes ) => {\n\t\t\t\tconsole.log( 'thisRes', thisRes );\n\t\t\t\tlet result = thisRes[ payload.action ].result;\n\t\t\t\tresult = JSON.parse( result );\n\t\t\t\tif ( result.errors && result.errors.length ) {\n\t\t\t\t\tconst config = {\n\t\t\t\t\t\thtmlMessage: mw.msg(\n\t\t\t\t\t\t\t'jsonforms-jsmodule-return-errors',\n\t\t\t\t\t\t\tresult.errors.join( ' ,' )\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttype: 'error'\n\t\t\t\t\t};\n\t\t\t\t\tconst nonModalDialog = new JsonForms.NonModalDialog();\n\t\t\t\t\tnonModalDialog.open( config );\n\t\t\t\t} else if ( result.returnUrl ) {\n\t\t\t\t\tif ( result.returnUrl === window.location.href ) {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.location.href = result.returnUrl;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst config = {\n\t\t\t\t\t\thtmlMessage: result.message,\n\t\t\t\t\t\ttype: 'success'\n\t\t\t\t\t};\n\t\t\t\t\tconst nonModalDialog = new JsonForms.NonModalDialog();\n\t\t\t\t\tnonModalDialog.open( config );\n\t\t\t\t\tresolve( result );\n\t\t\t\t\tthis.editor.destroy();\n\t\t\t\t\tthis.createDefaultEditor().then( ( editor ) => {} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( ( thisRes ) => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( 'jsonforms-submit-form', thisRes );\n\t\t\t\treject( thisRes );\n\t\t\t} );\n\t} );\n};\n\n$( () => {\n\t// console.log(' mw.config', mw.config);\n\n\t$( '.jsonforms-form-wrapper' ).each( async function ( index, el ) {\n\t\tthis.el = el;\n\t\tconst data = $( el ).data().formData;\n\t\tconst editorConfig = data.editorConfig || {};\n\t\tconsole.log( 'data', data );\n\n\t\tconst jsonForms = new JsonFormsManageSchemas( el, data );\n\t\tawait jsonForms.initialize();\n\n\t\tconst editor = await jsonForms.createDefaultEditor( editorConfig );\n\n\t\teditor.on( 'ready', async ( editor_ ) => {\n\t\t\t// console.log('editor_', editor_);\n\n\t\t\tconst formEditor = editor.getEditor( 'root.editor' );\n\t\t\t// *** do something with the child editor if needed\n\t\t\tconst innerEditor = await formEditor.input.getEditor();\n\n\t\t\tinnerEditor.on( 'ready', () => {} );\n\n\t\t\t/*\n\t\t\tinnerEditor.on('change', () => {\n\t\t\t\ttextarea.val(JSON.stringify(innerEditor.getValue(), null, 2));\n\t\t\t\ttextareaB.val(\n\t\t\t\t\tJSON.stringify(Object.keys(innerEditor.editors), null, 2),\n\t\t\t\t);\n\t\t\t});\n\t\t\tinnerEditor.on('ready', () => {\n\t\t\t\ttextarea.val(JSON.stringify(innerEditor.getValue(), null, 2));\n\t\t\t\ttextareaB.val(\n\t\t\t\t\tJSON.stringify(Object.keys(innerEditor.editors), null, 2),\n\t\t\t\t);\n\t\t\t});\n*/\n\t\t} );\n\t} );\n} );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsNewArticle.js","messages":[],"suppressedMessages":[{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":36,"column":65,"nodeType":"Identifier","messageId":"unusedVar","endLine":36,"endColumn":71,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":40,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":40,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1372,1426],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":46,"column":41,"nodeType":"MemberExpression","messageId":"unexpected","endLine":46,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":95,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":95,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[2720,2762],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":104,"column":6,"nodeType":"SpreadElement","messageId":"forbidden","endLine":104,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":105,"column":6,"nodeType":"SpreadElement","messageId":"forbidden","endLine":105,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":108,"column":18,"nodeType":"SpreadElement","messageId":"forbidden","endLine":108,"endColumn":55,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":136,"column":6,"nodeType":"SpreadElement","messageId":"forbidden","endLine":136,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":168,"column":6,"nodeType":"SpreadElement","messageId":"forbidden","endLine":168,"endColumn":30,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":169,"column":6,"nodeType":"SpreadElement","messageId":"forbidden","endLine":169,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":187,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":187,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[4761,4789],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":201,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":201,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[5060,5094],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":225,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":225,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[5729,5779],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":237,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":237,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[5984,6012],"text":""},"desc":"Remove the console.log()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'jQuery' is not defined.","line":250,"column":4,"nodeType":"Identifier","messageId":"undef","endLine":250,"endColumn":10,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsPageForms.js","messages":[{"ruleId":"compat/compat","severity":1,"message":"structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":80,"column":14,"nodeType":"CallExpression","endLine":80,"endColumn":44},{"ruleId":"no-underscore-dangle","severity":1,"message":"Unexpected dangling '_' in '_resolveEditorReady'.","line":264,"column":6,"nodeType":"VariableDeclarator","messageId":"unexpectedUnderscore","endLine":264,"endColumn":32},{"ruleId":"camelcase","severity":1,"message":"Identifier 'display_path' is not in camel case.","line":303,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":303,"endColumn":17},{"ruleId":"camelcase","severity":1,"message":"Identifier 'display_path' is not in camel case.","line":321,"column":5,"nodeType":"Identifier","messageId":"notCamelCase","endLine":321,"endColumn":17},{"ruleId":"no-unused-vars","severity":1,"message":"'hasData' is assigned a value but never used.","line":348,"column":10,"nodeType":"Identifier","messageId":"unusedVar","endLine":348,"endColumn":17},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":378,"column":8,"nodeType":"MemberExpression","messageId":"unexpected","endLine":378,"endColumn":19,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[10152,10251],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":401,"column":7,"nodeType":"MemberExpression","messageId":"unexpected","endLine":401,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[10778,10878],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":415,"column":7,"nodeType":"MemberExpression","messageId":"unexpected","endLine":415,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[11201,11297],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"max-len","severity":1,"message":"This line has a length of 102. Maximum allowed is 100.","line":425,"column":1,"nodeType":"Program","messageId":"max","endLine":425,"endColumn":85},{"ruleId":"no-undef","severity":1,"message":"'$' is not defined.","line":452,"column":2,"nodeType":"Identifier","messageId":"undef","endLine":452,"endColumn":3},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":486,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":486,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[13184,13258],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":487,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":487,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[13262,13338],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":492,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":492,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[13440,13514],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":493,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":493,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[13519,13609],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":501,"column":69,"nodeType":"MemberExpression","messageId":"unexpected","endLine":501,"endColumn":82},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":525,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":525,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[14542,14618],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":529,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":529,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[14695,14785],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":612,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":612,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[16816,16844],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":624,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":624,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[17102,17136],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":651,"column":43,"nodeType":"Identifier","messageId":"unusedVar","endLine":651,"endColumn":49},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":681,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":681,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[18692,18720],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is assigned a value but never used.","line":686,"column":10,"nodeType":"Identifier","messageId":"unusedVar","endLine":686,"endColumn":16}],"suppressedMessages":[{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":56,"column":3,"nodeType":"SpreadElement","messageId":"forbidden","endLine":56,"endColumn":20,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":58,"column":4,"nodeType":"SpreadElement","messageId":"forbidden","endLine":58,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":60,"column":5,"nodeType":"SpreadElement","messageId":"forbidden","endLine":60,"endColumn":39,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":240,"column":3,"nodeType":"SpreadElement","messageId":"forbidden","endLine":240,"endColumn":12,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":270,"column":4,"nodeType":"SpreadElement","messageId":"forbidden","endLine":270,"endColumn":16,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":300,"column":5,"nodeType":"SpreadElement","messageId":"forbidden","endLine":300,"endColumn":14,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":568,"column":27,"nodeType":"SpreadElement","messageId":"forbidden","endLine":568,"endColumn":49,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":601,"column":4,"nodeType":"SpreadElement","messageId":"forbidden","endLine":601,"endColumn":31,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":667,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":667,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[18346,18396],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-undef","severity":1,"message":"'jQuery' is not defined.","line":691,"column":4,"nodeType":"Identifier","messageId":"undef","endLine":691,"endColumn":10,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":22,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension JsonForms.\n *\n * JsonForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * JsonForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with JsonForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2026, https://wikisphere.org\n */\n\n/* global JsonForms */\n/* eslint-disable es-x/no-rest-spread-properties */\n\nfunction JsonFormsPageForm( el, data ) {\n\tJsonFormsPageForm.super.call( this, el, data );\n\n\t// this.pageFormUI = mw.config.get('jsonforms').pageFormUI;\n\tthis.formDescriptor = data.formDescriptor;\n\t// console.log('this.schema', this.schema);\n\n\tthis.isPopup = this.formDescriptor.view === 'popup';\n\n\tthis.editor = null;\n}\n\nOO.inheritClass( JsonFormsPageForm, JsonForms );\n\n// ***redefine enum provider and callbacks\nJsonFormsPageForm.prototype.initialize = async function () {\n\tawait JsonFormsPageForm.super.prototype.initialize.call( this );\n\n\tlet defaultOptions = this.defaultOptions || {};\n\n\tif ( !defaultOptions ) {\n\t\tdefaultOptions = {};\n\t}\n\tif ( !defaultOptions.callbacks ) {\n\t\tdefaultOptions.callbacks = {};\n\t}\n\tif ( !defaultOptions.callbacks.button ) {\n\t\tdefaultOptions.callbacks.button = {};\n\t}\n\n\tthis.defaultOptions = {\n\t\t...defaultOptions,\n\t\tcallbacks: {\n\t\t\t...defaultOptions.callbacks,\n\t\t\tbutton: {\n\t\t\t\t...defaultOptions.callbacks.button,\n\t\t\t\touterFormNavButton: function ( editor ) {\n\t\t\t\t\tthis.onNavButton( editor );\n\t\t\t\t}.bind( this )\n\t\t\t}\n\t\t}\n\t};\n\n\t/*\n\tthis.defaultOptions.callbacks.template = {\n\t\t...this.defaultOptions.callbacks.template,\n\t\t...this.enumProviders,\n\t};\n*/\n\tthis.schema = this.adjustFormSchema();\n};\n\n// adjust form schema based on form descriptor\nJsonFormsPageForm.prototype.adjustFormSchema = function () {\n\tconst formDescriptor = this.formDescriptor;\n\tconst ret = structuredClone( this.schema );\n\n\tconst formUrl = mw.config\n\t\t.get( 'wgArticlePath' )\n\t\t.replace( '$1', 'JsonForm:' + formDescriptor.name );\n\n\tconst schemaUrl = mw.config\n\t\t.get( 'wgArticlePath' )\n\t\t.replace( '$1', 'JsonSchema:' + formDescriptor.schema );\n\n\tconst infoMessage = `Using schema <a target=\"_blank\" href=\"${ schemaUrl }\">${ formDescriptor.schema }</a> via form descriptor <a target=\"_blank\" href=\"${ formUrl }\">${ formDescriptor.name }</a>`;\n\n\tret.properties.header.title = formDescriptor.name;\n\tret.properties.header.description = infoMessage;\n\n\t/*\n@TODO\nuse\n\tnew OO.ui.PopupButtonWidget( {\n\ticon: 'info',\n\tframed: false,\n\tlabel: 'More information',\n\tinvisibleLabel: true,\n\tpopup: {\n\t\thead: true,\n\t\tlabel: 'More information',\n\t\t$content: $( '<p>...</p>' ),\n\t\tpadded: true,\n\t\talign: 'forwards',\n\t\tautoFlip: false\n\t}\n} )\n*/\n\n\t/*\n\tret['x-message'].label =\n\n*/\n\n\t// console.log('infoMessage',infoMessage)\n\n\t/*\ndefault form descriptor\n{\n\t\"@type\": \"JsonForms default schema\",\n\t\"name\": \"Create/edit form\",\n\t\"schema\": \"CreatePageForm\",\n\t\"uischema\": \"\",\n\t\"edit_categories\": false,\n\t\"default_categories\": [],\n\t\"default_data_slot\": \"main\",\n\t\"edit_data_slot_role\": false,\n\t\"edit_main_slot_content_model\": true,\n\t\"edit_main_slot_content\": false,\n\t\"default_main_slot_content_model\": \"wikitext\",\n\t\"edit_page\": \"\",\n\t\"pagename_formula\": \"JsonForm:{{name}}\",\n\t\"create_only_fields\": [\n\t\t\"name\",\n\t\t\"edit_page\"\n\t],\n\t\"overwrite_existing_article_on_create\": false,\n\t\"view\": \"inline\",\n\t\"callback\": \"\",\n\t\"preload\": \"\",\n\t\"preload_data\": \"\",\n\t\"preload_data_separator\": \"\",\n\t\"return_page\": \"\",\n\t\"return_url\": \"\",\n\t\"start_path\": \"\",\n\t\"popup_size\": \"medium\",\n\t\"css_class\": \"\",\n\t\"editor_options\": \"MediaWiki:DefaultEditorOptions\",\n\t\"editor_script\": \"MediaWiki:DefaultEditorScript\",\n\t\"width\": \"800px\",\n\t\"captcha\": true\n}\n*/\n\t// console.log('targetSchema', targetSchema);\n\t// console.log('formDescriptor', formDescriptor);\n\tconst options = ret.properties.form.properties.options.properties;\n\tconst footer = ret.properties.footer.properties;\n\tconst buttons = ret.properties.footer.properties.buttons.properties;\n\tconst required = ret.properties.form.properties.options.required;\n\n\tif ( formDescriptor.pagename_formula || formDescriptor.edit ) {\n\t\tdelete options.title;\n\t\tJsonForms.Utilities.removeArrayItem( required, 'title' );\n\t} else {\n\t\trequired.push( 'title' );\n\t}\n\n\tif ( !formDescriptor.captcha ) {\n\t\tdelete ret.properties.captcha;\n\t} else {\n\t\tret.properties.captcha[ 'x-captcha-sitekey' ] =\n\t\t\tmw.config.get( 'jsonforms' ).captchaSiteKey;\n\t}\n\n\tif ( !formDescriptor.edit_categories ) {\n\t\tdelete options.categories;\n\t}\n\n\tif ( !formDescriptor.edit_freetext ) {\n\t\tdelete options.freetext;\n\t\tdelete options.editor;\n\t\tdelete options.freetext_content_model;\n\t\tdelete footer.summary;\n\t\tdelete footer.minor;\n\t}\n\n\tthis.hasOptions = Object.keys( options ).length;\n\n\tif ( !this.hasOptions ) {\n\t\tdelete buttons.validate;\n\t\tdelete buttons.goback;\n\t}\n\n\t// console.log('ret',ret)\n\n\treturn ret;\n};\n\nJsonFormsPageForm.prototype.initButtons = function ( jsonEditor ) {\n\tconst optionsEditor = jsonEditor.getEditor( 'root.form.options' );\n\tconst validateButton = jsonEditor.getEditor( 'root.footer.buttons.validate' );\n\tconst submitButton = jsonEditor.getEditor( 'root.footer.buttons.submit' );\n\tconst gobackButton = jsonEditor.getEditor( 'root.header.buttons.goback' );\n\tconst summaryInput = jsonEditor.getEditor( 'root.footer.summary' );\n\tconst minorInput = jsonEditor.getEditor( 'root.footer.minor' );\n\n\tif ( Object.keys( optionsEditor.editors ).length ) {\n\t\tif ( submitButton ) {\n\t\t\tsubmitButton.theme.toggle( submitButton.container, false );\n\t\t}\n\n\t\tif ( gobackButton ) {\n\t\t\tgobackButton.theme.toggle( gobackButton.container, false );\n\t\t}\n\t} else {\n\t\tif ( validateButton ) {\n\t\t\tvalidateButton.theme.toggle( validateButton.container, false );\n\t\t}\n\t}\n\n\tif ( gobackButton ) {\n\t\tgobackButton.theme.toggle( gobackButton.container, false );\n\t}\n\n\tif ( summaryInput ) {\n\t\tsummaryInput.theme.toggle( summaryInput.container, false );\n\t}\n\n\tif ( minorInput ) {\n\t\tminorInput.theme.toggle( minorInput.container, false );\n\t}\n};\n\nJsonFormsPageForm.prototype.createDefaultEditor = async function ( config = {} ) {\n\tconfig = {\n\t\t...config,\n\t\tschema: this.schema,\n\t\tschemaName: this.schemaName,\n\t\tstartval: this.startval\n\n\t\t// the user-defined start_path is declared inside\n\t\t// the config object in the jsonform widget from php\n\t\t// so we don't need to handle it here\n\t\t// start_path: ...\n\t};\n\n\tif ( !this.isPopup ) {\n\t\t// this is returned as resolved promise\n\t\t// return JsonFormsPageForm.super.prototype.createDefaultEditor.call(this);\n\t\tconst editor = this.createEditor( this.el, config );\n\n\t\teditor.on( 'ready', this.initButtons );\n\t\treturn editor;\n\t}\n\n\treturn await this.createPopup( config );\n};\n\nJsonFormsPageForm.prototype.createPopup = async function ( config ) {\n\tlet _resolveEditorReady = null;\n\n\tconst prepareEditor = async () => {\n\t\t// use a separate JsonForms instance\n\t\t// keep asynchronous functions outside callbacks.initialize\n\t\tconst jsonForms = new JsonForms( null, {\n\t\t\t...this.data,\n\t\t\tschema: config.schema,\n\t\t\tstartval: null,\n\t\t\tname: null\n\t\t} );\n\t\tawait jsonForms.initialize();\n\t\treturn jsonForms;\n\t};\n\n\tconst jsonFormsOptions = await prepareEditor();\n\n\tconst callbacks = {\n\t\tinitialize: ( dialog ) => {\n\t\t\tconst panelA = new OO.ui.PanelLayout( {\n\t\t\t\texpanded: false,\n\t\t\t\tpadded: false,\n\t\t\t\tframed: false,\n\t\t\t\tdata: { name: 'editor' }\n\t\t\t} );\n\n\t\t\tconst el = document.createElement( 'div' );\n\n\t\t\t// const hasData = JsonForms.Utilities.getNestedProp(\n\t\t\t// [ 'form', 'editor' ],\n\t\t\t// this.startval\n\t\t\t// );\n\n\t\t\t// @ATTENTION, we don't use editor.getEditor('root.form.editor')\n\t\t\t// etc. since it's not synchronous !!\n\t\t\tconst editor = this.createEditor( el, {\n\t\t\t\t...config,\n\t\t\t\t// / startval: hasData ? this.startval.form.editor : undefined,\n\t\t\t\tstartval: this.startval,\n\t\t\t\tdisplay_path: 'form.editor'\n\t\t\t} );\n\n\t\t\tdialog.editor = editor;\n\n\t\t\tpanelA.$element.append( el );\n\n\t\t\tconst panelB = new OO.ui.PanelLayout( {\n\t\t\t\texpanded: false,\n\t\t\t\tpadded: false,\n\t\t\t\tframed: false,\n\t\t\t\tdata: { name: 'options' }\n\t\t\t} );\n\n\t\t\t// @ATTENTION, we don't use editor.getEditor('root.form.options')\n\t\t\t// etc. since it's not synchronous !!\n\t\t\tconst elOptions = document.createElement( 'div' );\n\t\t\tdialog.optionsEditor = jsonFormsOptions.createEditor( elOptions, {\n\t\t\t\tdisplay_path: 'form.options',\n\t\t\t\tstartval: this.startval,\n\t\t\t\t// used by this.theme $overlay\n\t\t\t\tdialog,\n\t\t\t\tschema: config.schema\n\t\t\t} );\n\t\t\tpanelB.$element.append( elOptions );\n\n\t\t\t// expanded false is necessary to make getBodyHeight work\n\t\t\tconst layout = new OO.ui.StackLayout( {\n\t\t\t\titems: [ panelA, panelB ],\n\t\t\t\texpanded: false,\n\t\t\t\tcontinuous: false,\n\t\t\t\tpadded: false\n\t\t\t\t// The following classes are used here:\n\t\t\t\t// * PanelPropertiesStack\n\t\t\t\t// * PanelPropertiesStack-empty\n\t\t\t\t// classes: classes\n\t\t\t} );\n\n\t\t\tdialog.content = dialog.layout = layout;\n\n\t\t\tdialog.$body.append( layout.$element );\n\n\t\t\t_resolveEditorReady( editor );\n\t\t},\n\t\tsetupProcess: ( dialog ) => {\n\t\t\tconst hasData = JsonForms.Utilities.getNestedProp(\n\t\t\t\t[ 'form', 'editor' ],\n\t\t\t\tthis.startval\n\t\t\t);\n\n\t\t\tconst mode =\n\t\t\t\t( this.hasOptions ? 'validate' : 'submit-single' ) +\n\t\t\t\t( !this.hasData ? '' : '-delete' );\n\n\t\t\tdialog.actions.setMode( mode );\n\t\t},\n\t\tonOpen: () => {},\n\t\tactionProcess: ( dialog, getActionProcess, action ) => {\n\t\t\tconst panels = dialog.layout.getItems();\n\n\t\t\tswitch ( action ) {\n\t\t\t\tcase 'back':\n\t\t\t\t\tdialog.layout.setItem( panels[ 0 ] );\n\t\t\t\t\tdialog.actions.setMode( 'validate' + ( !this.hasData ? '' : '-delete' ) );\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'validate':\n\t\t\t\t\t{\n\t\t\t\t\t\tconst innerformEditor = dialog.editor.getEditor( 'root.form.editor' );\n\n\t\t\t\t\t\tconst innerEditor = innerformEditor.input.editor;\n\n\t\t\t\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\n\t\t\t\t\t\tif ( innerEditorValidationResults.length ) {\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t'innerEditorValidationResults',\n\t\t\t\t\t\t\t\tinnerEditorValidationResults\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdialog.layout.setItem( panels[ 1 ] );\n\t\t\t\t\t\t\tdialog.setSize( 'medium' );\n\t\t\t\t\t\t\tdialog.actions.setMode(\n\t\t\t\t\t\t\t\t'submit' + ( !this.hasData ? '' : '-delete' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'validate&submit':\n\t\t\t\tcase 'submit':\n\t\t\t\tcase 'delete': {\n\t\t\t\t\tconst optionsEditor = dialog.optionsEditor;\n\t\t\t\t\tconst optionsEditorValidationResults = optionsEditor.validate();\n\n\t\t\t\t\tif ( optionsEditorValidationResults.length ) {\n\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t'optionsEditorValidationResults',\n\t\t\t\t\t\t\toptionsEditorValidationResults\n\t\t\t\t\t\t);\n\t\t\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst innerformEditor = dialog.editor.getEditor( 'root.form.editor' );\n\t\t\t\t\tconst innerEditor = innerformEditor.input.editor;\n\n\t\t\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\n\t\t\t\t\tif ( innerEditorValidationResults.length ) {\n\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t'innerEditorValidationResults',\n\t\t\t\t\t\t\tinnerEditorValidationResults\n\t\t\t\t\t\t);\n\t\t\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\treturn getActionProcess.call( this, action ).next( () => {\n\t\t\t\t\t\t// return promise\n\t\t\t\t\t\tconst optionsEditorOptions = optionsEditor.getEditor( 'root.form.options' );\n\t\t\t\t\t\treturn this.submitForm( innerEditor, optionsEditorOptions ).then( ( res ) => {\n\t\t\t\t\t\t\tif ( res !== false ) {\n\t\t\t\t\t\t\t\tdialog.close( { action } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst button = new OO.ui.ButtonWidget( {\n\t\tlabel: this.formDescriptor.popup_button_label || this.formDescriptor.name,\n\t\ticon: 'edit',\n\t\tflags: [],\n\t\tclasses: []\n\t} );\n\n\tbutton.on( 'click', () => {\n\t\tconst dialog = new JsonForms.Dialog(\n\t\t\t{ size: this.formDescriptor.popup_size, title: this.formDescriptor.name },\n\t\t\tcallbacks,\n\t\t\tthis\n\t\t);\n\t\tdialog.open();\n\t} );\n\n\t$( this.el ).empty().append( button.$element );\n\n\treturn new Promise( ( resolve ) => {\n\t\t_resolveEditorReady = ( value ) => {\n\t\t\tresolve( value );\n\t\t};\n\t} );\n};\n\n// inline form only\nJsonFormsPageForm.prototype.onNavButton = function ( editor ) {\n\t// console.log('editor',editor)\n\t// console.log('this.editor',this.editor)\n\n\tconst jsonEditor = editor.jsoneditor;\n\tconst formEditor = jsonEditor.getEditor( 'root.form' );\n\n\t// console.log('formEditor',formEditor)\n\n\t// defined in the PageFormUI.json schema\n\tconst booklet = formEditor.groupWidget.layout;\n\n\tconst validateButton = jsonEditor.getEditor( 'root.footer.buttons.validate' );\n\tconst submitButton = jsonEditor.getEditor( 'root.footer.buttons.submit' );\n\tconst gobackButton = jsonEditor.getEditor( 'root.header.buttons.goback' );\n\n\tconst innerformEditor = jsonEditor.getEditor( 'root.form.editor' );\n\tconst innerEditor = innerformEditor.input.editor;\n\n\tswitch ( editor.key ) {\n\t\tcase 'submit': {\n\t\t\tconst jsonEditorValidationResults = jsonEditor.validate();\n\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\n\t\t\tconsole.log( 'jsonEditorValidationResults', jsonEditorValidationResults );\n\t\t\tconsole.log( 'innerEditorValidationResults', innerEditorValidationResults );\n\t\t\tif (\n\t\t\t\tjsonEditorValidationResults.length ||\n\t\t\t\tinnerEditorValidationResults.length\n\t\t\t) {\n\t\t\t\tconsole.log( 'jsonEditorValidationResults', jsonEditorValidationResults );\n\t\t\t\tconsole.log(\n\t\t\t\t\t'innerEditorValidationResults',\n\t\t\t\t\tinnerEditorValidationResults\n\t\t\t\t);\n\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tconst optionsEditor = jsonEditor.getEditor( 'root.form.options' );\n\t\t\t\tthis.submitForm( innerEditor, optionsEditor ).catch( ( err ) => console.error( 'API error:', err )\n\t\t\t\t);\n\t\t\t} }\n\t\t\tbreak;\n\t\tcase 'goback': {\n\t\t\tbooklet.setPage( 'editor' );\n\t\t\tvalidateButton.theme.toggle( validateButton.container, true );\n\t\t\tsubmitButton.theme.toggle( submitButton.container, false );\n\t\t\tgobackButton.theme.toggle( gobackButton.container, false );\n\n\t\t\tconst summaryInput = jsonEditor.getEditor( 'root.footer.summary' );\n\t\t\tconst minorInput = jsonEditor.getEditor( 'root.footer.minor' );\n\n\t\t\tif ( summaryInput ) {\n\t\t\t\tsummaryInput.theme.toggle( summaryInput.container, false );\n\t\t\t}\n\n\t\t\tif ( minorInput ) {\n\t\t\t\tminorInput.theme.toggle( minorInput.container, false );\n\t\t\t} }\n\t\t\tbreak;\n\n\t\tcase 'validate': {\n\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\t\t\tconsole.log( 'innerEditorValidationResults', innerEditorValidationResults );\n\n\t\t\t// the inner editor\n\t\t\tif ( innerEditorValidationResults.length ) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t'innerEditorValidationResults',\n\t\t\t\t\tinnerEditorValidationResults\n\t\t\t\t);\n\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tbooklet.setPage( 'options' );\n\t\t\t\tvalidateButton.theme.toggle( validateButton.container, false );\n\t\t\t\tsubmitButton.theme.toggle( submitButton.container, true );\n\t\t\t\tgobackButton.theme.toggle( gobackButton.container, true );\n\n\t\t\t\tconst summaryInput = jsonEditor.getEditor( 'root.footer.summary' );\n\t\t\t\tconst minorInput = jsonEditor.getEditor( 'root.footer.minor' );\n\n\t\t\t\tif ( summaryInput ) {\n\t\t\t\t\tsummaryInput.theme.toggle( summaryInput.container, true );\n\t\t\t\t}\n\n\t\t\t\tif ( minorInput ) {\n\t\t\t\t\tminorInput.theme.toggle( minorInput.container, true );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nJsonFormsPageForm.prototype.submitForm = function ( innerEditor, optionsEditor ) {\n\t// console.log('innerEditor', innerEditor);\n\n\tconst vars = {};\n\tconst structuredValue = innerEditor.getStructuredValue();\n\t// console.log('structuredValue', structuredValue);\n\n\tfor ( const path in structuredValue ) {\n\t\tvars[ path ] = structuredValue[ path ].value;\n\t}\n\n\t// Create a shallow copy to avoid mutating the original\n\tconst formDescriptor = { ...this.formDescriptor };\n\n\tconst substitutions = [\n\t\t'pagename_formula',\n\t\t'preload_wikitext',\n\t\t'return_url',\n\t\t'return_page'\n\t];\n\tfor ( const field of substitutions ) {\n\t\tif ( formDescriptor[ field ] ) {\n\t\t\tformDescriptor[ field ] = this.processTemplate(\n\t\t\t\tformDescriptor[ field ],\n\t\t\t\tvars,\n\t\t\t\t{ replaceAngularBrackets: true }\n\t\t\t);\n\t\t}\n\t}\n\n\tif ( !formDescriptor.return ) {\n\t\tif ( formDescriptor.return_url ) {\n\t\t\tformDescriptor.return = 'url';\n\t\t} else if ( formDescriptor.return_page ) {\n\t\t\tformDescriptor.return = 'article';\n\t\t} else {\n\t\t\tformDescriptor.return = 'target';\n\t\t}\n\t}\n\n\t// *** submission data are arbitrary and depend on the\n\t// SubmitProcessor\n\tconst data = {\n\t\tvalue: innerEditor.getValue(),\n\t\toptions: {\n\t\t\t...optionsEditor.getValue(),\n\t\t\tcaptcha: this.editor.getEditor( 'root.form.captcha' )\n\t\t},\n\t\tstructuredValue,\n\t\tformDescriptor,\n\t\tconfig: mw.config.get( 'jsonforms' ),\n\n\t\t// submit processor\n\t\tprocessor: 'PageForms'\n\t};\n\n\tconsole.log( 'data', data );\n\n\tconst payload = {\n\t\tdata: JSON.stringify( data ),\n\t\taction: 'jsonforms-submit-form'\n\t};\n\n\t// console.log('payload', payload);\n\treturn new Promise( ( resolve, reject ) => {\n\t\tnew mw.Api()\n\t\t\t.postWithToken( 'csrf', payload )\n\t\t\t.done( ( thisRes ) => {\n\t\t\t\tconsole.log( 'thisRes', thisRes );\n\t\t\t\tlet result = thisRes[ payload.action ].result;\n\t\t\t\tresult = JSON.parse( result );\n\t\t\t\tif ( result.errors && result.errors.length ) {\n\t\t\t\t\tconst config = {\n\t\t\t\t\t\thtmlMessage: mw.msg(\n\t\t\t\t\t\t\t'jsonforms-jsmodule-return-errors',\n\t\t\t\t\t\t\tresult.errors.join( ' ,' )\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttype: 'error'\n\t\t\t\t\t};\n\t\t\t\t\tresolve( false );\n\t\t\t\t\tconst nonModalDialog = new JsonForms.NonModalDialog();\n\t\t\t\t\tnonModalDialog.open( config );\n\t\t\t\t} else {\n\t\t\t\t\tif ( !formDescriptor.return ) {\n\t\t\t\t\t\tformDescriptor.return = 'target';\n\t\t\t\t\t}\n\t\t\t\t\tswitch ( formDescriptor.return ) {\n\t\t\t\t\t\tcase 'none': {\n\t\t\t\t\t\t\tconst nonModalDialog = new JsonForms.NonModalDialog();\n\t\t\t\t\t\t\tnonModalDialog.open( {\n\t\t\t\t\t\t\t\thtmlMessage: result.message,\n\t\t\t\t\t\t\t\ttype: 'success'\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t\t\tthis.editor.destroy();\n\t\t\t\t\t\t\tthis.createDefaultEditor().then( ( editor ) => {} ); }\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'target':\n\t\t\t\t\t\tcase 'article':\n\t\t\t\t\t\tcase 'url':\n\t\t\t\t\t\t\tif ( result.returnUrl === window.location.href ) {\n\t\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.href = result.returnUrl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( ( thisRes ) => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( 'jsonforms-submit-form', thisRes );\n\t\t\t\treject( thisRes );\n\t\t\t} );\n\t} );\n};\n\n( function ( $ ) {\n\t$( () => {\n\t// console.log(' mw.config', mw.config);\n\n\t\t$( '.jsonforms-form-wrapper' ).each( async function ( index, el ) {\n\t\t\tthis.el = el;\n\t\t\tconst data = $( el ).data().formData;\n\t\t\tconst editorConfig = data.editorConfig || {};\n\t\t\tconsole.log( 'data', data );\n\n\t\t\tconst jsonForms = new JsonFormsPageForm( el, data );\n\t\t\tawait jsonForms.initialize();\n\n\t\t\tconst editor = await jsonForms.createDefaultEditor( editorConfig );\n\n\t\t} );\n\t} );\n// eslint-disable-next-line no-undef\n}( jQuery ) );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/JsonFormsSlotManager.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'editor' is defined but never used.","line":35,"column":66,"nodeType":"Identifier","messageId":"unusedVar","endLine":35,"endColumn":72},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":50,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":50,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[1646,1722],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":56,"column":41,"nodeType":"MemberExpression","messageId":"unexpected","endLine":56,"endColumn":54},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":101,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":101,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[3157,3199],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":126,"column":2,"nodeType":"MemberExpression","messageId":"unexpected","endLine":126,"endColumn":13,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[3763,3791],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":138,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":138,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[4049,4083],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":176,"column":4,"nodeType":"MemberExpression","messageId":"unexpected","endLine":176,"endColumn":15,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[5058,5086],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-shadow","severity":1,"message":"'editor' is already declared in the upper scope on line 182 column 10.","line":183,"column":35,"nodeType":"Identifier","messageId":"noShadow","endLine":183,"endColumn":41},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":191,"column":6,"nodeType":"MemberExpression","messageId":"unexpected","endLine":191,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"warn"},"fix":{"range":[5479,5516],"text":""},"desc":"Remove the console.warn()."}]},{"ruleId":"no-shadow","severity":1,"message":"'editor' is already declared in the upper scope on line 183 column 35.","line":204,"column":41,"nodeType":"Identifier","messageId":"noShadow","endLine":204,"endColumn":47}],"suppressedMessages":[{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":117,"column":4,"nodeType":"SpreadElement","messageId":"forbidden","endLine":117,"endColumn":56,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":162,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":162,"endColumn":18,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"error"},"fix":{"range":[4760,4810],"text":""},"desc":"Remove the console.error()."}],"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension JsonForms.\n *\n * JsonForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * JsonForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with JsonForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2026, https://wikisphere.org\n */\n\n/* global JsonForms, jQuery */\n/* eslint-disable es-x/no-rest-spread-properties */\n\nfunction JsonFormsSlotManager( el, data ) {\n\tJsonFormsSlotManager.super.call( this, el, data );\n\n\tthis.metadata = data.metadata;\n\tthis.jsonformsConfig = mw.config.get( 'jsonforms' );\n\tthis.editPage = data.editPage;\n}\n\nOO.inheritClass( JsonFormsSlotManager, JsonForms );\n\nJsonFormsSlotManager.prototype.onFormButton = function ( action, editor ) {\n\tconst innerformEditor = this.editor.getEditor( 'root.editor' );\n\tconst innerEditor = innerformEditor.input.editor;\n\n\tswitch ( action ) {\n\t\tcase 'cancel': {\n\t\t\tconst url = mw.config\n\t\t\t\t.get( 'wgArticlePath' )\n\t\t\t\t.replace( '$1', mw.config.get( 'wgPageName' ) );\n\n\t\t\twindow.location.href = url; }\n\t\t\tbreak;\n\n\t\tcase 'submit': {\n\t\t\tconst innerEditorValidationResults = innerEditor.validate();\n\t\t\tconsole.log( 'innerEditorValidationResults', innerEditorValidationResults );\n\n\t\t\tif ( innerEditorValidationResults.length ) {\n\t\t\t\tJsonForms.Alert( 'there are errors' );\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tthis.submitForm().catch( ( err ) => console.error( 'API error:', err ) );\n\t\t\t} }\n\t\t\tbreak;\n\t}\n};\n\n// ***redefine enum provider and callbacks\nJsonFormsSlotManager.prototype.initialize = async function () {\n\tawait JsonFormsSlotManager.super.prototype.initialize.call( this );\n\n\tlet roles = mw.config.get( 'jsonforms' ).slotRoles;\n\troles = JsonForms.Utilities.removeArrayItem( roles, 'main' );\n\troles = JsonForms.Utilities.removeArrayItem( roles, 'jsonforms-metadata' );\n\n\tthis.enumProviders.slotRolesNoMain = () => ( {\n\t\tsource: () => roles\n\t} );\n\n\tif ( !this.defaultOptions ) {\n\t\tthis.defaultOptions = {};\n\t}\n\tif ( !this.defaultOptions.callbacks ) {\n\t\tthis.defaultOptions.callbacks = {};\n\t}\n\tif ( !this.defaultOptions.callbacks.button ) {\n\t\tthis.defaultOptions.callbacks.button = {};\n\t}\n\n\tthis.defaultOptions.callbacks.button.submitButton = ( editor ) => {\n\t\tthis.onFormButton( 'submit', editor );\n\t};\n\tthis.defaultOptions.callbacks.button.cancelButton = ( editor ) => {\n\t\tthis.onFormButton( 'cancel', editor );\n\t};\n\n\t// this.defaultOptions.callbacks.template = {\n\t// ...this.defaultOptions.callbacks.template,\n\t// ...this.enumProviders,\n\t// };\n};\n\nJsonFormsSlotManager.prototype.submitForm = function () {\n\tconst formEditor = this.editor.getEditor( 'root.editor' );\n\n\tconst innerEditor = formEditor.input.editor;\n\tconsole.log( 'innerEditor', innerEditor );\n\n\tconst vars = {};\n\tconst structuredValue = innerEditor.getStructuredValue();\n\t// console.log('structuredValue', structuredValue);\n\n\tfor ( const path in structuredValue ) {\n\t\tvars[ path ] = structuredValue[ path ].value;\n\t}\n\n\t// *** submission data are arbitrary and depend on the\n\t// SubmitProcessor\n\tconst data = {\n\t\tvalue: innerEditor.getValue(),\n\t\tstructuredValue,\n\t\toptions: {\n\t\t\t...this.editor.getEditor( 'root.footer' ).getValue(),\n\t\t\tedit: this.editPage\n\t\t},\n\t\tconfig: mw.config.get( 'jsonforms' ),\n\n\t\t// submit processor\n\t\tprocessor: 'SlotManager'\n\t};\n\n\tconsole.log( 'data', data );\n\n\tconst payload = {\n\t\tdata: JSON.stringify( data ),\n\t\taction: 'jsonforms-submit-form'\n\t};\n\n\t// console.log('payload', payload);\n\treturn new Promise( ( resolve, reject ) => {\n\t\tnew mw.Api()\n\t\t\t.postWithToken( 'csrf', payload )\n\t\t\t.done( ( thisRes ) => {\n\t\t\t\tconsole.log( 'thisRes', thisRes );\n\t\t\t\tlet result = thisRes[ payload.action ].result;\n\t\t\t\tresult = JSON.parse( result );\n\t\t\t\tif ( result.errors && result.errors.length ) {\n\t\t\t\t\tconst config = {\n\t\t\t\t\t\thtmlMessage: mw.msg(\n\t\t\t\t\t\t\t'jsonforms-jsmodule-return-errors',\n\t\t\t\t\t\t\tresult.errors.join( ' ,' )\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttype: 'error'\n\t\t\t\t\t};\n\t\t\t\t\tresolve( result );\n\t\t\t\t\tconst nonModalDialog = new JsonForms.NonModalDialog();\n\t\t\t\t\tnonModalDialog.open( config );\n\t\t\t\t} else {\n\t\t\t\t\tif ( result.returnUrl === window.location.href ) {\n\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\twindow.location.href = result.returnUrl;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.fail( ( thisRes ) => {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error( 'jsonforms-submit-form', thisRes );\n\t\t\t\treject( thisRes );\n\t\t\t} );\n\t} );\n};\n\n( function ( $ ) {\n\t$( () => {\n\t// console.log(' mw.config', mw.config);\n\n\t\t$( '.jsonforms-form-wrapper' ).each( async function ( index, el ) {\n\t\t\tthis.el = el;\n\t\t\tconst data = $( el ).data().formData;\n\n\t\t\tconsole.log( 'data', data );\n\n\t\t\tconst jsonForms = new JsonFormsSlotManager( el, data );\n\n\t\t\tawait jsonForms.initialize();\n\n\t\t\tconst editor = jsonForms.createDefaultEditor();\n\t\t\tconst editorOnChange = async ( editor ) => {\n\t\t\t// console.log('editorOnChange');\n\n\t\t\t\tconst watching = [];\n\t\t\t\tconst formEditor = editor.getEditor( 'root.editor' );\n\t\t\t\t// console.log('formEditor', formEditor);\n\n\t\t\t\tif ( !formEditor ) {\n\t\t\t\t\tconsole.warn( 'formEditor not set' );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// *** do something with the child editor if needed\n\t\t\t\t// await is necessary since the input is the JsonForms\n\t\t\t\t// widget that needs to be loaded\n\t\t\t\tconst innerEditor = await formEditor.input.getEditor();\n\n\t\t\t\t// console.log('innerEditor', innerEditor);\n\n\t\t\t\tconst slotRoles = mw.config.get( 'jsonforms' ).slotRoles;\n\n\t\t\t\tconst innerEditorOnChange = async ( editor ) => {\n\t\t\t\t// console.log('innerEditorOnChange');\n\n\t\t\t\t\tconst editors = editor.getEditors();\n\n\t\t\t\t\t// assign watchers to new slots\n\t\t\t\t\tfor ( const path in editors ) {\n\t\t\t\t\t// console.log('path', path);\n\t\t\t\t\t// maybe role\n\t\t\t\t\t\tconst role = path.replace( /^root\\./, '' );\n\n\t\t\t\t\t\t// on slot creation\n\t\t\t\t\t\tif ( slotRoles.includes( role ) ) {\n\t\t\t\t\t\t\tif ( !watching.includes( path ) ) {\n\t\t\t\t\t\t\t// set role to hidden property\n\n\t\t\t\t\t\t\t\t// console.log('`${path}.role`', `${path}.role`);\n\t\t\t\t\t\t\t\tconst roleEditor = editor.getEditor( `${ path }.role` );\n\t\t\t\t\t\t\t\t// roleEditor.setValue(role);\n\n\t\t\t\t\t\t\t\t// @TODO replace with setValue\n\t\t\t\t\t\t\t\t// after updating the editor's setValue method\n\t\t\t\t\t\t\t\troleEditor.setStateValue( role );\n\t\t\t\t\t\t\t\troleEditor.input.setValue( role );\n\n\t\t\t\t\t\t\t\twatching.push( path );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// inner editor is ready/changed before outer editor\n\t\t\t\t// is ready, therefore this is necessary\n\t\t\t\t// innerEditorOnChange(true);\n\n\t\t\t\t// this is attached on ready, therefore is not fired\n\t\t\t\t// immediately\n\n\t\t\t\tinnerEditor.on( 'ready', innerEditorOnChange );\n\t\t\t\tinnerEditor.on( 'addObjectProperty', innerEditorOnChange );\n\t\t\t};\n\n\t\t\teditor.on( 'ready', editorOnChange );\n\t\t} );\n\t} );\n\n}( jQuery ) );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/OOUIElements.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'config' is defined but never used.","line":214,"column":27,"nodeType":"Identifier","messageId":"unusedVar","endLine":214,"endColumn":33}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension JsonForms.\n *\n * JsonForms is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * JsonForms is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with JsonForms. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2026, https://wikisphere.org\n */\n\n/* global JsonForms, jQuery */\n\n// use IIFE, this ensure name is scoped\n( function ( $ ) {\n\tfunction createWindowManager() {\n\t\tconst windowManager = new OO.ui.WindowManager( {\n\t\t\tclasses: [ 'jsonforms-ooui-window' ]\n\t\t} );\n\t\t$( document.body ).append( windowManager.$element );\n\n\t\treturn windowManager;\n\t}\n\n\t// STANDARD DIALOG\n\n\tfunction Dialog( config, callbacks, editor ) {\n\t\tconfig = Object.assign(\n\t\t\t{ size: 'large', classes: [ 'jsonforms-form-dialog' ] },\n\t\t\tconfig\n\t\t);\n\t\tthis.config = config;\n\t\tthis.callbacks = callbacks;\n\t\tthis.editor = editor;\n\n\t\tthis.title = config.title;\n\n\t\tDialog.super.call( this, config );\n\t}\n\n\tOO.inheritClass( Dialog, OO.ui.ProcessDialog );\n\tDialog.static.name = 'myDialog';\n\n\tDialog.static.actions = [\n\t\t{\n\t\t\taction: 'delete',\n\t\t\tlabel: 'delete',\n\t\t\tflags: 'destructive',\n\t\t\tmodes: [ 'validate-delete', 'submit-single-delete' ]\n\t\t},\n\t\t{\n\t\t\taction: 'validate',\n\t\t\tmodes: [ 'validate', 'validate-delete' ],\n\t\t\tlabel: 'validate',\n\t\t\tflags: [ 'primary', 'progressive' ]\n\t\t},\n\t\t{\n\t\t\taction: 'back',\n\t\t\tlabel: 'back',\n\t\t\tflags: [ 'safe', 'back' ],\n\t\t\tmodes: [ 'submit', 'submit-delete' ]\n\t\t},\n\t\t{\n\t\t\taction: 'submit',\n\t\t\tlabel: 'submit',\n\t\t\tflags: [ 'primary', 'progressive' ],\n\t\t\tmodes: [ 'submit', 'submit-delete' ]\n\t\t},\n\t\t{\n\t\t\taction: 'validate&submit',\n\t\t\tlabel: 'submit',\n\t\t\tflags: [ 'primary', 'progressive' ],\n\t\t\tmodes: [ 'submit-single', 'submit-single-delete' ]\n\t\t},\n\n\t\t// https://gerrit.wikimedia.org/r/plugins/gitiles/oojs/ui/+/refs/heads/master/demos/classes/BookletDialog.js\n\n\t\t{\n\t\t\tlabel: 'close',\n\t\t\tflags: [ 'safe', 'close' ],\n\t\t\tmodes: [\n\t\t\t\t'validate',\n\t\t\t\t'submit-single',\n\t\t\t\t'validate-delete',\n\t\t\t\t'submit-single-delete'\n\t\t\t]\n\t\t}\n\t];\n\n\t// Customize the initialize() function to add content and layouts:\n\tDialog.prototype.initialize = function () {\n\t\tDialog.super.prototype.initialize.call( this );\n\t\tthis.callbacks.initialize( this );\n\t};\n\n\tDialog.prototype.getBodyHeight = function () {\n\t\treturn this.content.$element.outerHeight( true );\n\t};\n\n\tDialog.prototype.getSetupProcess = function ( data ) {\n\t\tdata = data || {};\n\t\tconst self = this;\n\n\t\treturn Dialog.super.prototype.getSetupProcess\n\t\t\t.call( this, data )\n\t\t\t.next( function () {\n\t\t\t\tself.callbacks.setupProcess( this, data );\n\t\t\t}, this );\n\t};\n\n\t// Specify processes to handle the actions.\n\tDialog.prototype.getActionProcess = function ( action ) {\n\t\tconst ret = this.callbacks.actionProcess(\n\t\t\tthis,\n\t\t\tDialog.super.prototype.getActionProcess,\n\t\t\taction\n\t\t);\n\t\tif ( ret ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn Dialog.super.prototype.getActionProcess.call( this, action );\n\t};\n\n\tDialog.prototype.getTeardownProcess = function ( data ) {\n\t\treturn Dialog.super.prototype.getTeardownProcess\n\t\t\t.call( this, data )\n\t\t\t.first( () => {\n\t\t\t\t// Perform any cleanup as needed\n\t\t\t}, this );\n\t};\n\n\tDialog.prototype.open = function () {\n\t\tconst windowManager = new OO.ui.WindowManager();\n\t\t$( document.body ).append( windowManager.$element );\n\n\t\tconst myDialog = this;\n\t\tconst title = this.title;\n\t\twindowManager.addWindows( [ myDialog ] );\n\t\twindowManager.openWindow( myDialog, { title } ).opening.then( ( promise ) => {\n\t\t\tthis.callbacks.onOpen( this, promise );\n\t\t} );\n\t};\n\n\t// NON-MODAL DIALOG\n\n\tfunction SimpleDialog( config ) {\n\t\tthis.config = config;\n\t\tSimpleDialog.super.call( this, config );\n\t}\n\n\tOO.inheritClass( SimpleDialog, OO.ui.Dialog );\n\tSimpleDialog.static.title = 'Non modal dialog';\n\n\tSimpleDialog.prototype.initialize = function () {\n\t\tSimpleDialog.super.prototype.initialize.apply( this, arguments );\n\t\tthis.content = new OO.ui.PanelLayout( { padded: false, expanded: false } );\n\n\t\tconst messageWidget = new OO.ui.MessageWidget( {\n\t\t\ttype: this.config.type,\n\t\t\tlabel: new OO.ui.HtmlSnippet( this.config.htmlMessage ),\n\t\t\tclasses: [],\n\t\t\tshowClose: true\n\t\t} );\n\n\t\tthis.content.$element.append( messageWidget.$element );\n\n\t\tmessageWidget.on( 'toggle', ( visible ) => {\n\t\t\tif ( !visible ) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t} );\n\n\t\t// this.content.$element.append($('<p>').html(this.config.htmlMessage));\n\n\t\t// const closeButton = new OO.ui.ButtonWidget({\n\t\t// label: OO.ui.msg('ooui-dialog-process-dismiss'),\n\t\t// });\n\n\t\t// closeButton.on('click', () => {\n\t\t// this.close();\n\t\t// });\n\n\t\t// this.content.$element.append($('<p>'));\n\t\t// this.content.$element.append(closeButton.$element);\n\t\tthis.$body.append( this.content.$element );\n\t};\n\n\t/*\nSimpleDialog.prototype.getSetupProcess = function (data) {\n\n\treturn SimpleDialog.super.prototype.getSetupProcess.call( this, data )\n\t\t.next( () => {\n\t\t\t// this.content.$element.empty();\n\t\t\tthis.content.$element.append( data.html );\n\t\t} );\n};\n*/\n\n\tSimpleDialog.prototype.getBodyHeight = function () {\n\t\treturn this.content.$element.outerHeight( true );\n\t};\n\n\tfunction NonModalDialog( config ) {}\n\n\tNonModalDialog.prototype.open = function ( dialogConfig ) {\n\t\tconst manager = new OO.ui.WindowManager( {\n\t\t\tmodal: false,\n\t\t\tforceTrapFocus: true,\n\t\t\tclasses: [ 'jsonforms-dialogs-non-modal' ]\n\t\t} );\n\n\t\t$( document.body ).append( manager.$element );\n\n\t\t// const dialogConfig = {\n\t\t// size: 'large'\n\t\t// };\n\n\t\tconst name = 'window_nonmodaldialog';\n\t\tconst windows = {};\n\t\twindows[ name ] = new SimpleDialog( dialogConfig );\n\n\t\tmanager.addWindows( windows );\n\n\t\tmanager.openWindow( name );\n\t};\n\n\t// ALERT\n\n\tfunction Alert( text, options, callback ) {\n\t\tconst windowManager = createWindowManager();\n\n\t\tconst dialog = new OO.ui.MessageDialog( { padded: false } );\n\t\twindowManager.addWindows( [ dialog ] );\n\n\t\tconst obj = { message: text };\n\n\t\t// do not pass a callback to show only the accept button\n\t\tif ( !callback ) {\n\t\t\tobj.actions = [ OO.ui.MessageDialog.static.actions[ 0 ] ];\n\t\t}\n\n\t\treturn (\n\t\t\twindowManager\n\t\t\t\t.openWindow( 'message', $.extend( obj, options ) )\n\t\t\t\t// closed.then((action) => action.action === 'accept');\n\t\t\t\t.closed.then( function ( action ) {\n\t\t\t\t\treturn action.action === 'accept' && callback ?\n\t\t\t\t\t\tcallback.apply( this ) :\n\t\t\t\t\t\tundefined;\n\t\t\t\t} )\n\t\t);\n\t}\n\n\t// attach to constructor\n\tJsonForms.Dialog = Dialog;\n\tJsonForms.Alert = Alert;\n\tJsonForms.NonModalDialog = NonModalDialog;\n}( jQuery ) );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/UISchemaConverters.js","messages":[{"ruleId":"new-cap","severity":1,"message":"A constructor name should not start with a lowercase letter.","line":13,"column":48,"nodeType":"NewExpression","messageId":"lower","endLine":13,"endColumn":57}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"// use IIFE, this ensure name is scoped\n\n/* global JsonForms */\n( function () {\n\tfunction UISchemaConverters() {\n\t\tthis.converters = {\n\t\t\tNewProperty: new JsonForms.UISchemaConverters.NewProperty(),\n\t\t\tsurvey: new JsonForms.UISchemaConverters.Survey(),\n\t\t\tfield: new JsonForms.UISchemaConverters.Field(),\n\t\t\tsubitem: new JsonForms.UISchemaConverters.Subitem(),\n\t\t\tgeolocation: new JsonForms.UISchemaConverters.Geolocation(),\n\t\t\tnewSlot: new JsonForms.UISchemaConverters.NewSlot(),\n\t\t\tnewSchema: new JsonForms.UISchemaConverters.newSchema()\n\t\t};\n\t}\n\n\tJsonForms.UISchemaConverters = UISchemaConverters;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/Utilities.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/Field.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/Geolocation.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/NewProperty.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'el' is defined but never used.","line":6,"column":24,"nodeType":"Identifier","messageId":"unusedVar","endLine":6,"endColumn":26},{"ruleId":"no-unused-vars","severity":1,"message":"'data' is defined but never used.","line":6,"column":28,"nodeType":"Identifier","messageId":"unusedVar","endLine":6,"endColumn":32},{"ruleId":"no-unused-vars","severity":1,"message":"'UISchema' is defined but never used.","line":14,"column":3,"nodeType":"Identifier","messageId":"unusedVar","endLine":14,"endColumn":11}],"suppressedMessages":[{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":58,"column":44,"nodeType":"SpreadElement","messageId":"forbidden","endLine":58,"endColumn":54,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"es-x/no-rest-spread-properties","severity":2,"message":"ES2018 rest/spread properties are forbidden.","line":68,"column":48,"nodeType":"SpreadElement","messageId":"forbidden","endLine":68,"endColumn":58,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global JsonForms */\n/* eslint-disable es-x/no-rest-spread-properties */\n\n// use IIFE, this ensure name is scoped\n( function () {\n\tfunction NewProperty( el, data ) {\n\t\t// JsonForms.UISchemaConverters.call(this);\n\t}\n\n\t// OO.inheritClass(NewProperty, JsonForms.UISchemaConverters);\n\n\tNewProperty.prototype.onBeforeCreateItem = function (\n\t\tuiSchemaValue,\n\t\tUISchema\n\t) {\n\t\treturn {\n\t\t\tkey: uiSchemaValue.name,\n\t\t\tschema: this.schemaFromPseudoType(\n\t\t\t\tuiSchemaValue.type,\n\t\t\t\tuiSchemaValue.multiple\n\t\t\t),\n\t\t\tvalue: uiSchemaValue\n\t\t};\n\t};\n\n\tNewProperty.prototype.convertFrom = function ( key, value ) {\n\t\treturn value;\n\t};\n\n\tNewProperty.prototype.convertTo = function ( key, value ) {\n\t\treturn value;\n\t};\n\n\tNewProperty.prototype.schemaFromPseudoType = function (\n\t\ttype,\n\t\tmultiple,\n\t\toptions\n\t) {\n\t\tif ( multiple ) {\n\t\t\tlet inputName = null;\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'text':\n\t\t\t\t\tinputName = 'tagmultiselect';\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst thisOptions = { 'x-input': inputName };\n\t\t\treturn {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: this.schemaFromPseudoType( type, false, thisOptions )\n\t\t\t};\n\t\t}\n\n\t\tswitch ( type ) {\n\t\t\tcase 'time':\n\t\t\tcase 'email':\n\t\t\tcase 'date':\n\t\t\t\treturn { type: 'string', format: type, ...options };\n\n\t\t\tcase 'text':\n\t\t\tcase 'textarea':\n\t\t\tcase 'tel':\n\t\t\tcase 'url':\n\t\t\tcase 'color':\n\t\t\tcase 'datetime-local':\n\t\t\tcase 'json':\n\t\t\tcase 'range':\n\t\t\t\treturn { type: 'string', 'x-format': type, ...options };\n\n\t\t\tcase 'number':\n\t\t\tcase 'integer':\n\t\t\tcase 'boolean':\n\t\t\t\treturn { type };\n\n\t\t\tcase 'object':\n\t\t\tcase 'subitem':\n\t\t\t\treturn { type: 'object', additionalProperties: true };\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error( `Unsupported type: ${ type }` );\n\t\t}\n\t};\n\n\t// attach to constructor\n\tJsonForms.UISchemaConverters.NewProperty = NewProperty;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/NewSchema.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'el' is defined but never used.","line":5,"column":22,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":24},{"ruleId":"no-unused-vars","severity":1,"message":"'data' is defined but never used.","line":5,"column":26,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":30}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global JsonForms */\n\n// use IIFE, this ensure name is scoped\n( function () {\n\tfunction newSchema( el, data ) {}\n\n\tnewSchema.prototype.onBeforeCreateItem = function (\n\t\tuiSchemaValue,\n\t\tUISchema,\n\t\ttargetSchema\n\t) {\n\t\treturn {\n\t\t\tkey: 'selectedSchema',\n\t\t\tschema: targetSchema,\n\t\t\tvalue: {\n\t\t\t\tschemaName: uiSchemaValue.schema\n\t\t\t}\n\t\t};\n\t};\n\n\t/*\n\tnewSchema.prototype.onBeforeCreateItem_ = function (\n\t\tuiSchemaValue,\n\t\tUISchema,\n\t\ttargetSchema,\n\t) {\n\t\treturn {\n\t\t\tkey: 'schema',\n\t\t\tschema:\n\t\t\t\t// `JsonSchema:${uiSchemaValue.schema}`\n\t\t\t\t// use describedBy editor\n\t\t\t\t{\n\t\t\t\t\t'x-collapsible': true,\n\t\t\t\t\t'x-collapsible-config': {\n\t\t\t\t\t\tcollapsed: false,\n\t\t\t\t\t},\n\t\t\t\t\tlinks: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trel: 'describedBy',\n\t\t\t\t\t\t\thref: `JsonSchema:${uiSchemaValue.schema}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\n\t\t\tvalue: {},\n\t\t};\n\t};\n*/\n\n\t// attach to constructor\n\tJsonForms.UISchemaConverters.newSchema = newSchema;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/NewSlot.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'el' is defined but never used.","line":5,"column":20,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":22},{"ruleId":"no-unused-vars","severity":1,"message":"'data' is defined but never used.","line":5,"column":24,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":28}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global JsonForms */\n\n// use IIFE, this ensure name is scoped\n( function () {\n\tfunction NewSlot( el, data ) {\n\t}\n\n\tNewSlot.prototype.onBeforeCreateItem = function ( uiSchemaValue, UISchema, targetSchema ) {\n\t\treturn { key: uiSchemaValue.name, schema: targetSchema, value: {\n\t\t\trole: uiSchemaValue.name\n\t\t} };\n\t};\n\n\t// attach to constructor\n\tJsonForms.UISchemaConverters.NewSlot = NewSlot;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/Subitem.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'el' is defined but never used.","line":5,"column":20,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":22},{"ruleId":"no-unused-vars","severity":1,"message":"'data' is defined but never used.","line":5,"column":24,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":28}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global JsonForms */\n\n// use IIFE, this ensure name is scoped\n( function () {\n\tfunction Subitem( el, data ) {\n\t}\n\n\tSubitem.prototype.onBeforeCreateItem = function ( uiSchemaValue, UISchema ) {\n\t\treturn { key: uiSchemaValue.name, schema: UISchema, value: uiSchemaValue };\n\t};\n\n\tSubitem.prototype.convertFrom = function ( key, value ) {\n\t\treturn value;\n\t};\n\n\tSubitem.prototype.convertTo = function ( key, value ) {\n\t\tvalue[ 'x-ui-name' ] = 'subitem';\n\t\treturn value;\n\t};\n\n\t// attach to constructor\n\tJsonForms.UISchemaConverters.Subitem = Subitem;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/schema-converters/Survey.js","messages":[{"ruleId":"no-unused-vars","severity":1,"message":"'el' is defined but never used.","line":5,"column":19,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":21},{"ruleId":"no-unused-vars","severity":1,"message":"'data' is defined but never used.","line":5,"column":23,"nodeType":"Identifier","messageId":"unusedVar","endLine":5,"endColumn":27}],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/* global JsonForms */\n\n// use IIFE, this ensure name is scoped\n( function () {\n\tfunction Survey( el, data ) {\n\t}\n\n\tSurvey.prototype.onBeforeCreateItem = function ( uiSchemaValue, UISchema ) {\n\t\treturn { key: uiSchemaValue.name, schema: UISchema, value: uiSchemaValue };\n\t};\n\n\tSurvey.prototype.convertFrom = function ( key, value ) {\n\t\treturn value;\n\t};\n\n\tSurvey.prototype.convertTo = function ( key, value ) {\n\t\tvalue[ 'x-ui-name' ] = 'survey';\n\t\treturn value;\n\t};\n\n\t// attach to constructor\n\tJsonForms.UISchemaConverters.Survey = Survey;\n}() );\n","usedDeprecatedRules":[{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"implicit-arrow-linebreak","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]
--- end ---
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---
added 479 packages, and audited 480 packages in 6s
119 packages are looking for funding
run `npm fund` for details
2 high severity vulnerabilities
To address all issues, run:
npm audit fix --force
Run `npm audit` for details.
--- end ---
$ /usr/bin/npm test
--- stdout ---
> test
> grunt test
Running "eslint:all" (eslint) task
/src/repo/resources/JsonForms.js
130:24 error Parsing error: Unexpected token import
/src/repo/resources/JsonFormsManageSchemas.js
30:42 warning 'JsonForms' is not defined no-undef
66:68 warning 'editor' is defined but never used no-unused-vars
76:5 warning Unexpected console statement no-console
77:5 warning 'JsonForms' is not defined no-undef
83:5 warning 'JsonForms' is not defined no-undef
87:56 warning Unexpected console statement no-console
93:53 warning Unexpected console statement no-console
109:14 warning structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
136:3 warning Unexpected console statement no-console
168:2 warning Unexpected console statement no-console
180:5 warning Unexpected console statement no-console
191:33 warning 'JsonForms' is not defined no-undef
204:33 warning 'JsonForms' is not defined no-undef
208:41 warning 'editor' is defined but never used no-unused-vars
219:1 warning '$' is not defined no-undef
222:2 warning '$' is not defined no-undef
224:16 warning '$' is not defined no-undef
226:3 warning Unexpected console statement no-console
233:31 warning 'editor_' is defined but never used no-unused-vars
/src/repo/resources/JsonFormsPageForms.js
80:14 warning structuredClone is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
264:6 warning Unexpected dangling '_' in '_resolveEditorReady' no-underscore-dangle
303:5 warning Identifier 'display_path' is not in camel case camelcase
321:5 warning Identifier 'display_path' is not in camel case camelcase
348:10 warning 'hasData' is assigned a value but never used no-unused-vars
378:8 warning Unexpected console statement no-console
401:7 warning Unexpected console statement no-console
415:7 warning Unexpected console statement no-console
425:1 warning This line has a length of 102. Maximum allowed is 100 max-len
452:2 warning '$' is not defined no-undef
486:4 warning Unexpected console statement no-console
487:4 warning Unexpected console statement no-console
492:5 warning Unexpected console statement no-console
493:5 warning Unexpected console statement no-console
501:69 warning Unexpected console statement no-console
525:4 warning Unexpected console statement no-console
529:5 warning Unexpected console statement no-console
612:2 warning Unexpected console statement no-console
624:5 warning Unexpected console statement no-console
651:43 warning 'editor' is defined but never used no-unused-vars
681:4 warning Unexpected console statement no-console
686:10 warning 'editor' is assigned a value but never used no-unused-vars
/src/repo/resources/JsonFormsSlotManager.js
35:66 warning 'editor' is defined but never used no-unused-vars
50:4 warning Unexpected console statement no-console
56:41 warning Unexpected console statement no-console
101:2 warning Unexpected console statement no-console
126:2 warning Unexpected console statement no-console
138:5 warning Unexpected console statement no-console
176:4 warning Unexpected console statement no-console
183:35 warning 'editor' is already declared in the upper scope on line 182 column 10 no-shadow
191:6 warning Unexpected console statement no-console
204:41 warning 'editor' is already declared in the upper scope on line 183 column 35 no-shadow
/src/repo/resources/OOUIElements.js
214:27 warning 'config' is defined but never used no-unused-vars
/src/repo/resources/UISchemaConverters.js
13:48 warning A constructor name should not start with a lowercase letter new-cap
/src/repo/resources/schema-converters/NewProperty.js
6:24 warning 'el' is defined but never used no-unused-vars
6:28 warning 'data' is defined but never used no-unused-vars
14:3 warning 'UISchema' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/NewSchema.js
5:22 warning 'el' is defined but never used no-unused-vars
5:26 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/NewSlot.js
5:20 warning 'el' is defined but never used no-unused-vars
5:24 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/Subitem.js
5:20 warning 'el' is defined but never used no-unused-vars
5:24 warning 'data' is defined but never used no-unused-vars
/src/repo/resources/schema-converters/Survey.js
5:19 warning 'el' is defined but never used no-unused-vars
5:23 warning 'data' is defined but never used no-unused-vars
✖ 65 problems (1 error, 64 warnings)
Warning: Task "eslint:all" failed. Use --force to continue.
Aborted due to warnings.
--- end ---
Traceback (most recent call last):
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1268, in main
libup.run()
~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1202, in run
self.npm_upgrade(plan)
~~~~~~~~~~~~~~~~^^^^^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1064, in npm_upgrade
self.npm_test()
~~~~~~~~~~~~~^^
File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 289, in npm_test
self.check_call(["npm", "test"])
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 66, in check_call
res.check_returncode()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
self.stderr)
subprocess.CalledProcessError: Command '['/usr/bin/npm', 'test']' returned non-zero exit status 3.