mediawiki/extensions/WikibaseLexeme (main)

sourcepatches
$ date
--- stdout ---
Wed Mar 27 17:02:41 UTC 2024

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-WikibaseLexeme.git repo --depth=1 -b master
--- stderr ---
Cloning into '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
--- stderr ---
Submodule 'resources/special/new-lexeme' (https://phabricator.wikimedia.org/diffusion/NLSP/new-lexeme-special-page.git) registered for path 'resources/special/new-lexeme'
Cloning into '/src/repo/resources/special/new-lexeme'...
--- stdout ---
Submodule path 'resources/special/new-lexeme': checked out '06a55879f1474886d2b976d9f1d3055a0a57da77'

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
ec1ced877f0602baef7e5aedf118d69ddf30f4e2 refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096643,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/request/node_modules/tough-cookie"
      ],
      "fixAvailable": false
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 2,
      "high": 0,
      "critical": 0,
      "total": 2
    },
    "dependencies": {
      "prod": 1,
      "dev": 659,
      "optional": 1,
      "peer": 1,
      "peerOptional": 0,
      "total": 659
    }
  }
}

--- 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: 45 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.1.3)
  - Locking composer/semver (3.4.0)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (3.0.4)
  - Locking davidrjonas/composer-lock-diff (1.7.0)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Locking doctrine/deprecations (1.1.3)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking giorgiosironi/eris (0.14.0)
  - Locking hamcrest/hamcrest-php (v2.0.1)
  - Locking mediawiki/mediawiki-codesniffer (v43.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.14.0)
  - Locking mediawiki/minus-x (1.1.1)
  - Locking mediawiki/phan-taint-check-plugin (6.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking netresearch/jsonmapper (v4.4.1)
  - Locking phan/phan (5.4.3)
  - 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.3.2)
  - Locking phpcsstandards/phpcsextra (1.1.2)
  - Locking phpcsstandards/phpcsutils (1.0.9)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.3.0)
  - Locking phpdocumentor/type-resolver (1.8.2)
  - Locking phpstan/phpdoc-parser (1.27.0)
  - Locking psr/container (2.0.2)
  - Locking psr/log (2.0.0)
  - Locking sabre/event (5.1.4)
  - Locking serialization/serialization (4.0.0)
  - Locking squizlabs/php_codesniffer (3.8.1)
  - Locking symfony/console (v5.4.36)
  - Locking symfony/deprecation-contracts (v3.4.0)
  - Locking symfony/polyfill-ctype (v1.29.0)
  - Locking symfony/polyfill-intl-grapheme (v1.29.0)
  - Locking symfony/polyfill-intl-normalizer (v1.29.0)
  - Locking symfony/polyfill-mbstring (v1.29.0)
  - Locking symfony/polyfill-php73 (v1.29.0)
  - Locking symfony/polyfill-php80 (v1.29.0)
  - Locking symfony/service-contracts (v3.4.1)
  - Locking symfony/string (v6.4.4)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
  - Locking wikimedia/assert (v0.5.1)
  - Locking wmde/php-vuejs-templating (2.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 45 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing squizlabs/php_codesniffer (3.8.1): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
  - Installing composer/pcre (3.1.3): Extracting archive
  - Installing davidrjonas/composer-lock-diff (1.7.0): Extracting archive
  - Installing giorgiosironi/eris (0.14.0): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
  - Installing symfony/polyfill-php80 (v1.29.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.9): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.1.2): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.29.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.4.0): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v43.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.29.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.29.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.29.0): Extracting archive
  - Installing symfony/string (v6.4.4): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.4.1): Extracting archive
  - Installing symfony/polyfill-php73 (v1.29.0): Extracting archive
  - Installing symfony/deprecation-contracts (v3.4.0): Extracting archive
  - Installing symfony/console (v5.4.36): Extracting archive
  - Installing sabre/event (5.1.4): Extracting archive
  - Installing netresearch/jsonmapper (v4.4.1): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (1.27.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.3): Extracting archive
  - Installing phpdocumentor/type-resolver (1.8.2): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (2.0.0): Extracting archive
  - Installing composer/xdebug-handler (3.0.4): Extracting archive
  - Installing phan/phan (5.4.3): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (6.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.14.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.1): 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.3.2): Extracting archive
  - Installing serialization/serialization (4.0.0): Extracting archive
  - Installing wikimedia/assert (v0.5.1): Extracting archive
  - Installing wmde/php-vuejs-templating (2.0.0): Extracting archive
  0/43 [>---------------------------]   0%
 23/43 [==============>-------------]  53%
 42/43 [===========================>]  97%
 43/43 [============================] 100%
6 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
16 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 ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "request": {
      "name": "request",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "tough-cookie"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": false
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1096643,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/request/node_modules/tough-cookie"
      ],
      "fixAvailable": false
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 2,
      "high": 0,
      "critical": 0,
      "total": 2
    },
    "dependencies": {
      "prod": 1,
      "dev": 659,
      "optional": 1,
      "peer": 1,
      "peerOptional": 0,
      "total": 659
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
--- stdout ---
{
  "added": 659,
  "removed": 0,
  "changed": 0,
  "audited": 660,
  "funding": 135,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "request": {
        "name": "request",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "tough-cookie"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": false
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1096643,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/request/node_modules/tough-cookie"
        ],
        "fixAvailable": false
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 2,
        "high": 0,
        "critical": 0,
        "total": 2
      },
      "dependencies": {
        "prod": 1,
        "dev": 659,
        "optional": 1,
        "peer": 1,
        "peerOptional": 0,
        "total": 659
      }
    }
  }
}

--- end ---
{"added": 659, "removed": 0, "changed": 0, "audited": 660, "funding": 135, "audit": {"auditReportVersion": 2, "vulnerabilities": {"request": {"name": "request", "severity": "moderate", "isDirect": true, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "tough-cookie"], "effects": [], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": false}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1096643, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/request/node_modules/tough-cookie"], "fixAvailable": false}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2}, "dependencies": {"prod": 1, "dev": 659, "optional": 1, "peer": 1, "peerOptional": 0, "total": 659}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
--- stdout ---

added 659 packages, and audited 660 packages in 7s

135 packages are looking for funding
  run `npm fund` for details

# npm audit report

request  *
Severity: moderate
Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6
Depends on vulnerable versions of tough-cookie
No fix available
node_modules/request

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
No fix available
node_modules/request/node_modules/tough-cookie

2 moderate severity vulnerabilities

Some issues need review, and may require choosing
a different dependency.

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated grunt-jasmine-nodejs@1.6.1: Deprecated in favor of npm scripts.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
--- stdout ---

added 659 packages, and audited 660 packages in 7s

135 packages are looking for funding
  run `npm fund` for details

2 moderate severity vulnerabilities

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
[Vue warn]: Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @vue/server-renderer@3.2.38
npm WARN Found: vue@3.3.9
npm WARN node_modules/vue
npm WARN   vue@"3.3.9" from the root project
npm WARN   6 more (@vitejs/plugin-vue, @vue/test-utils, @vue/vue3-jest, ...)
npm WARN 
npm WARN Could not resolve dependency:
npm WARN peer vue@"3.2.38" from @vue/server-renderer@3.2.38
npm WARN node_modules/@vue/server-renderer
npm WARN   optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN   node_modules/@vue/test-utils
npm WARN 
npm WARN Conflicting peer dependency: vue@3.2.38
npm WARN node_modules/vue
npm WARN   peer vue@"3.2.38" from @vue/server-renderer@3.2.38
npm WARN   node_modules/@vue/server-renderer
npm WARN     optional @vue/server-renderer@"^3.0.1" from @vue/test-utils@2.3.2
npm WARN     node_modules/@vue/test-utils
The CJS build of Vite's Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.
--- stdout ---

> test
> run-s test:*


> test:grunt
> grunt test

Running "eslint:all" (eslint) task

/src/repo/resources/jquery.wikibase.lexemeformview.js
  287:1  warning  Missing JSDoc @param "lemmas" type           jsdoc/require-param-type
  288:1  warning  Missing JSDoc @param "formIndex" type        jsdoc/require-param-type
  289:1  warning  Missing JSDoc @param "formId" type           jsdoc/require-param-type
  290:1  warning  Missing JSDoc @param "representations" type  jsdoc/require-param-type

/src/repo/resources/special/NewLexemeFallback.js
  8:3  warning  NodeList.forEach not supported by Chrome<51, Firefox<50, Safari<10, IE & others. Use Array.prototype.forEach.call instead  mediawiki/no-nodelist-unsupported-methods

/src/repo/resources/view/ViewFactoryFactory.js
  17:1  warning  Syntax error in type: []  jsdoc/valid-types

/src/repo/resources/widgets/GlossWidget.js
  34:1  warning  Syntax error in type: [{ value: string, language: string }]  jsdoc/valid-types

/src/repo/tests/selenium/lexeme.api.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/history.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/lexeme.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/logout.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/newlexeme.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/nonexistinglexeme.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/recentchanges.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/sense.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/specialmergelexemes.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/specialversion.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/undo.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/watchable.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/pageobjects/watchlist.page.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/replication.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/form.add.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/form.edit.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/form.remove.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/form.section.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/header.edit.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/header.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/helloworld.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/lemma.edit.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/nonexistinglexeme.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/sense.edit.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/sense.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/special/merge.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/special/new.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/special/recentchanges.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/special/watchlist.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/specs/statement.add.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

/src/repo/tests/selenium/wdio.conf.js
  0:0  warning  File ignored because of a matching ignore pattern. Use "--no-ignore" to override

✖ 38 problems (0 errors, 38 warnings)


Running "banana:WikibaseLexeme" (banana) task
>> 3 message directories checked.

Running "jasmine_nodejs:all" (jasmine_nodejs) task

>> Executing 127 defined specs...

Test Suites & Specs:

1) wikibase.lexeme.widgets.LexemeHeader
   ✔ updates language and lexical category on save
   ✔ passes lemmas to LemmaWidget

   2) hasChanges
      ✔ returns true when lemmas change
      ✔ returns false by default
      ✔ returns true when language changes
      ✔ returns true when lexical category changes
      ✔ ignores added empty lemmas

   3) isUnsaveable
      ✔ returns false by default
      ✔ returns true when there are no changes
      ✔ returns true when there are changes but saving is ongoing
      ✔ returns true when there are changes but also lemmas with redundant languages

   ✔ attempting to save with empty lemmas fails

   ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget

   ✔ save lemma list with error

   ✔ shows save button disabled without changes

   ✔ shows save button disabled when unsaveable

   ✔ save lemma list

   ✔ cancel edit mode

   ✔ shows save button enabled when not unsaveable

   ✔ switch to edit mode

   ✔ binds to lemma-widget hasRedundantLanguage event

4) LexemeHeader.newLexemeHeaderStore
   ✔ action save on success mutates the state to start saving, updates state and finishes saving
   ✔ mutation finishSaving switches the isSaving flag to false
   ✔ mutation updateLemmas changes lemmas to given values
   ✔ action save calls API with correct parameters when removing an item from the state
   ✔ failed save returns rejected promise with a single error object
   ✔ action save calls API with correct parameters when editing an existing lemma
   ✔ mutation updateRevisionId changes baseRevId to given value
   ✔ action save calls API with correct parameters and changes state using data from response
   ✔ action save calls API with correct parameters when removing one of several existing lemmas
   ✔ mutation startSaving switches the isSaving flag to true
   ✔ action save calls API with correct parameters when editing several existing lemmas
   ✔ failed save returns rejected promise with first error object if API returns multiple errors
   ✔ action save on success processes tempuser values when present
   ✔ action save calls API with correct parameters when editing one of several existing lemmas
   ✔ mutation updateLanguage changes lexical category and the link to given values
   ✔ action save calls API with correct parameters when adding, editing and removing lemmas
   ✔ mutation updateLanguage changes language and languageLink to given values

5) wikibase.lexeme.widgets.LemmaWidget
   ✔ detects redundant lemma language to mark the individual languages
   ✔ marks-up the lemma term with the lemma language
   ✔ detects redundant lemma languages to mark the widget
   ✔ edit mode is false
   ✔ remove a lemma
   ✔ add a new lemma
   ✔ edit mode is true
   ✔ can carry redundant lemma languages
   ✔ initialize widget with one lemma

6) RepresentationWidget
   ✔ adds a new representation with lemma language when editing the widget with no representations and one lemma
   ✔ adds a new empty representation when editing the widget with no representations and multiple lemmas
   ✔ switches to edit mode when editing
   ✔ adds an empty representation on add
   ✔ is not in edit mode after editing is stopped
   ✔ adds a representation with unique lemmas language on add after delete
   ✔ can remove a representation
   ✔ cannot add representation if not in edit mode
   ✔ cannot remove representation if not in edit mode
   ✔ detects redundant representation languages and can mark the individual languages
   ✔ shows only the representation it contains when editing the widget with some representation
   ✔ can carry redundant representations
   ✔ is not in edit mode after being created
   ✔ detects redundant representation languages and marks the widget

7) RedundantLanguageIndicator
   ✔ creates mixin watch handler not taking offence in repeated empty language
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin definition with watch that fires immediately
   ✔ creates mixin definition providing computed property hasRedundantLanguage
   ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin definition that adds a redundantLanguages property to data
   ✔ creates mixin watch handler that can find multiple redundant languages
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin watch handler that updates redundantLanguages with respective language values
   ✔ creates mixin definition providing method to determine if language isRedundantLanguage
   ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages
   ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages

8) LexemeSubEntityId

   9) getIdSuffix
      ✔ returns the Sense id suffix
      ✔ returns the Form id suffix

10) store
   ✔ creates initial state

11) actionTypes
   ✔ uses unique ids for all action types

12) mutations
   ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value
   ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
   ✔ ADD_REPRESENTATION adds a new representation to the right form
   ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index
   ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form
   ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly

13) actions
   ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation
   ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values
   ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values
   ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation
   ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation
   ✔ REMOVE_REPRESENTATION delegates to mutation
   ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language

14) mutationTypes
   ✔ uses unique ids for all mutation types

15) LanguageAndLexicalCategoryWidget
   ✔ switches to edit mode and back
   ✔ shows the language and the lexical category

16) focusElement

   17) callback
      ✔ can handle missing element
      ✔ calls focus on selected element

   ✔ returns a callback without doing anything else

18) ItemSelectorWrapper
   ✔ passes the item ID to the entityselector widget on mount

19) InvalidLanguageIndicator
   ✔ creates mixin watch handler that updates InvalidLanguages with respective language values
   ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages
   ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin definition providing computed property hasInvalidLanguage
   ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin definition providing method to determine if language isInvalidLanguage
   ✔ creates mixin watch handler that can find multiple invalid languages
   ✔ creates mixin definition with watch that does not fire immediately
   ✔ creates mixin watch handler not taking offence in empty language
   ✔ creates mixin definition that adds an InvalidLanguages property to data

20) GlossWidget
   ✔ stop editing
   ✔ initialize widget with one gloss
   ✔ add a new gloss
   ✔ remove a gloss
   ✔ create with no glosses - when switched to edit mode empty gloss is added
   ✔ switch to edit mode
   ✔ removes empty glosses when saved

21) LemmaList

   22) equals
      ✔ returns true for LemmaList with same lemmas
      ✔ ignores empty lemmas
      ✔ returns false for objects that are not of type LemmaList
      ✔ returns false for LemmaList with different lemmas
      ✔ returns false for LemmaList of different length

   ✔ add

   ✔ remove

   23) copy
      ✔ clones Lemmas
      ✔ creates an identical LemmaList

   ✔ getLemmas

   ✔ length

>> Done!


Summary:

Suites:  23 of 23
Specs:   127 of 127
Expects: 0 (0 failures)
Finished in 0.717 seconds

>> Successful!

Running "stylelint:all" (stylelint) task
>> Linted 7 files without errors

Done.

> test:snl-distnodiff
> run-s snl:install snl:build snl:cp snl:diff


> snl:install
> npm -C $npm_package_config_snl_src i


> new-lexeme-special-page@0.0.1 prepare
> husky


added 1166 packages, and audited 1167 packages in 14s

202 packages are looking for funding
  run `npm fund` for details

2 moderate severity vulnerabilities

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> snl:build
> npm -C $npm_package_config_snl_src run build


> new-lexeme-special-page@0.0.1 build
> vite build

vite v5.0.12 building for production...
transforming...
✓ 100 modules transformed.
rendering chunks...
computing gzip size...
dist/style.css                 27.27 kB │ gzip:  4.20 kB
dist/SpecialNewLexeme.cjs.js  104.37 kB │ gzip: 34.85 kB
✓ built in 2.55s

> snl:cp
> run-p snl:cp:*


> snl:cp:cjs
> cp $npm_package_config_snl_src/dist/$npm_package_config_snl_cjs $npm_package_config_snl_dist/


> snl:cp:css
> cp $npm_package_config_snl_src/dist/$npm_package_config_snl_css $npm_package_config_snl_dist/


> snl:diff
> git diff --exit-code $npm_package_config_snl_dist


> test:snl-main
> git -C $npm_package_config_snl_src branch --contains HEAD main | grep -q .


> test:mwlibs
> echo 'disabled (T297381)' # ZUUL_BRANCH=${ZUUL_BRANCH:-master} lib-version-check

disabled (T297381)

--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
[DNM] there are no updates
$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmpzibcnytp
--- stdout ---
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

--- end ---

composer dependencies

Dependencies
Development dependencies

npm dependencies

Development dependencies

Logs

Source code is licensed under the AGPL.