From fb20a89e59f182feb20270021da9596356f6a46c Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 12 Sep 2024 10:25:12 +0200 Subject: [PATCH 001/516] feat: docker pull back image --- Jenkinsfile | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 1766e3aea..9d2bcfe4b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,6 +83,26 @@ pipeline { } } } + stage('E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + IMAGE = "$REGISTRY/salix-back" + } + steps { + sh 'docker pull $IMAGE:$GIT_BRANCH' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } + } stage('Build') { when { expression { PROTECTED_BRANCH } From 5e1d4ea52944cff48375c2514eb16c7ffd23e91c Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 20 Sep 2024 15:08:17 +0200 Subject: [PATCH 002/516] feat: try run salix back --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 9d2bcfe4b..30d76fcb6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,6 +93,7 @@ pipeline { } steps { sh 'docker pull $IMAGE:$GIT_BRANCH' + sh 'docker run -d --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' } post { always { From fdc60b6322ccbd90eb7b75bba9db6793c1912f47 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 20 Sep 2024 15:09:55 +0200 Subject: [PATCH 003/516] feat: try run salix back --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 30d76fcb6..d545f2058 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,7 +93,7 @@ pipeline { } steps { sh 'docker pull $IMAGE:$GIT_BRANCH' - sh 'docker run -d --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' + sh 'docker run --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' } post { always { From 316ca6f97eedf6339eeb88e0a35b181a33491806 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 20 Sep 2024 15:12:20 +0200 Subject: [PATCH 004/516] feat: try run salix back --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index d545f2058..9fdd5595e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,6 +93,8 @@ pipeline { } steps { sh 'docker pull $IMAGE:$GIT_BRANCH' + sh 'docker ps -a' + sh 'docker stop $GIT_BRANCH' sh 'docker run --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' } post { From aa682d0ca5c442de6fa199ee40f49d7de5d58871 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 20 Sep 2024 15:14:38 +0200 Subject: [PATCH 005/516] feat: try run salix back --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 9fdd5595e..63b0d170b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -95,6 +95,7 @@ pipeline { sh 'docker pull $IMAGE:$GIT_BRANCH' sh 'docker ps -a' sh 'docker stop $GIT_BRANCH' + sh 'docker rm $GIT_BRANCH' sh 'docker run --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' } post { From a42222c5e6fc0156574e6dbb020fb78feeba58df Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 30 Sep 2024 14:30:53 +0200 Subject: [PATCH 006/516] feat: refs #6695 pull salix-back image and use --- Jenkinsfile | 9 +- cypress.config.js | 2 +- docker-compose.yml | 36 +- package.json | 1 + pnpm-lock.yaml | 738 +++++++++++++++++++++-- quasar.config.js | 2 +- test/cypress/db/Dockerfile | 35 ++ test/cypress/storage/access/.keep | 0 test/cypress/storage/dms/.keep | 0 test/cypress/storage/image/catalog/.keep | 0 test/cypress/storage/image/user/.keep | 0 test/cypress/storage/pdfs/invoice/.keep | 0 test/cypress/storage/tmp/.keep | 0 13 files changed, 757 insertions(+), 66 deletions(-) create mode 100644 test/cypress/db/Dockerfile create mode 100644 test/cypress/storage/access/.keep create mode 100644 test/cypress/storage/dms/.keep create mode 100644 test/cypress/storage/image/catalog/.keep create mode 100644 test/cypress/storage/image/user/.keep create mode 100644 test/cypress/storage/pdfs/invoice/.keep create mode 100644 test/cypress/storage/tmp/.keep diff --git a/Jenkinsfile b/Jenkinsfile index 63b0d170b..516574519 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -92,11 +92,12 @@ pipeline { IMAGE = "$REGISTRY/salix-back" } steps { - sh 'docker pull $IMAGE:$GIT_BRANCH' + sh 'docker pull $IMAGE:dev' sh 'docker ps -a' - sh 'docker stop $GIT_BRANCH' - sh 'docker rm $GIT_BRANCH' - sh 'docker run --name $GIT_BRANCH $IMAGE:$GIT_BRANCH' + sh 'docker network create salix_default' + sh 'docker-compose -f docker-compose.yml build db' + sh 'docker-compose -f docker-compose.yml up db' + sh 'docker run --name back $IMAGE:dev' } post { always { diff --git a/cypress.config.js b/cypress.config.js index e2046d6c4..87ad1334f 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -2,7 +2,7 @@ const { defineConfig } = require('cypress'); module.exports = defineConfig({ e2e: { - baseUrl: 'http://localhost:9000/', + baseUrl: 'http://main:4000/', experimentalStudio: true, fixturesFolder: 'test/cypress/fixtures', screenshotsFolder: 'test/cypress/screenshots', diff --git a/docker-compose.yml b/docker-compose.yml index df793fc75..ee3d7c103 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,31 @@ -version: '3.7' services: - main: - image: registry.verdnatura.es/salix-frontend:${VERSION:?} - build: - context: . - dockerfile: ./Dockerfile + main: + image: registry.verdnatura.es/salix-frontend:${VERSION:?} + build: + context: . + dockerfile: ./Dockerfile + ports: + - 4000:4000 + environment: + - VUE_APP_API_URL=http://back:3000 + back: + image: registry.verdnatura.es/salix-back:${VERSION:?} + build: + context: . + dockerfile: back/Dockerfile + depends_on: + - db + ports: + - 3000:3000 + - 5000:5000 + volumes: + - ./test/cypress/storage:/salix/storage + db: + image: db + command: npx myt run -t -d --ci -n salix-front_default + build: + context: . + dockerfile: test/cypress/db/Dockerfile + target: db + volumes: + - /var/run/docker.sock:/var/run/docker.sock diff --git a/package.json b/package.json index eaaa0b812..47e85dc57 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "dependencies": { "@quasar/cli": "^2.3.0", "@quasar/extras": "^1.16.9", + "@verdnatura/myt": "^1.6.11", "axios": "^1.4.0", "chromium": "^3.0.3", "croppie": "^2.6.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e336c39bb..191a5b40d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ dependencies: '@quasar/extras': specifier: ^1.16.9 version: 1.16.9 + '@verdnatura/myt': + specifier: ^1.6.11 + version: 1.6.11 axios: specifier: ^1.4.0 version: 1.6.7 @@ -829,8 +832,8 @@ packages: vue-i18n: optional: true dependencies: - '@intlify/message-compiler': 10.0.0-beta.5 - '@intlify/shared': 10.0.0-beta.5 + '@intlify/message-compiler': 10.0.0 + '@intlify/shared': 10.0.0 jsonc-eslint-parser: 1.4.1 source-map: 0.6.1 vue-i18n: 9.9.1(vue@3.4.19) @@ -844,11 +847,11 @@ packages: '@intlify/message-compiler': 9.9.1 '@intlify/shared': 9.9.1 - /@intlify/message-compiler@10.0.0-beta.5: - resolution: {integrity: sha512-hLLchnM1dmtSEruerkzvU9vePsLqBXz3RU85SCx/Vd12fFQiymP+/5Rn9MJ8MyfLmIOLDEx4PRh+/GkIQP6oog==} + /@intlify/message-compiler@10.0.0: + resolution: {integrity: sha512-OcaWc63NC/9p1cMdgoNKBj4d61BH8sUW1Hfs6YijTd9656ZR4rNqXAlRnBrfS5ABq0vjQjpa8VnyvH9hK49yBw==} engines: {node: '>= 16'} dependencies: - '@intlify/shared': 10.0.0-beta.5 + '@intlify/shared': 10.0.0 source-map-js: 1.0.2 dev: true @@ -859,8 +862,8 @@ packages: '@intlify/shared': 9.9.1 source-map-js: 1.0.2 - /@intlify/shared@10.0.0-beta.5: - resolution: {integrity: sha512-g9bq5Y1bOcC9qxtNk4UWtF3sXm6Wh0fGISb7vD5aLyF7yQv7ZFjxQjJzBP2GqG/9+PAGYutqjP1GGadNqFtyAQ==} + /@intlify/shared@10.0.0: + resolution: {integrity: sha512-6ngLfI7DOTew2dcF9WMJx+NnMWghMBhIiHbGg+wRvngpzD5KZJZiJVuzMsUQE1a5YebEmtpTEfUrDp/NqVGdiw==} engines: {node: '>= 16'} dev: true @@ -884,7 +887,7 @@ packages: optional: true dependencies: '@intlify/bundle-utils': 4.0.0(vue-i18n@9.9.1) - '@intlify/shared': 10.0.0-beta.5 + '@intlify/shared': 10.0.0 '@rollup/pluginutils': 4.2.1 '@vue/compiler-sfc': 3.4.19 debug: 4.3.4(supports-color@8.1.1) @@ -1290,6 +1293,11 @@ packages: dev: true optional: true + /@sindresorhus/is@2.1.1: + resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==} + engines: {node: '>=10'} + dev: false + /@sindresorhus/is@4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -1300,6 +1308,10 @@ packages: engines: {node: '>=14.16'} dev: false + /@sqltools/formatter@1.2.5: + resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + dev: false + /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -1497,6 +1509,24 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true + /@verdnatura/myt@1.6.11: + resolution: {integrity: sha512-uqdbSJSznBBzAoRkvBt600nUMEPL1PJ2v73eWMZbaoGUMiZiNAehYjs4gIrObP1cxC85JOx97XoLpG0BzPsaig==} + hasBin: true + dependencies: + '@sqltools/formatter': 1.2.5 + colors: 1.4.0 + ejs: 3.1.10 + fs-extra: 11.2.0 + getopts: 2.3.0 + ini: 4.1.1 + mysql2: 3.11.3 + nodegit: 0.27.0 + require-yaml: 0.0.1 + sha.js: 2.4.11 + transitivePeerDependencies: + - supports-color + dev: false + /@vitejs/plugin-vue@2.3.4(vite@5.1.4)(vue@3.4.19): resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} engines: {node: '>=12.0.0'} @@ -1636,6 +1666,10 @@ packages: through: 2.3.8 dev: true + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: false + /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1696,7 +1730,6 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -1725,6 +1758,11 @@ packages: type-fest: 0.21.3 dev: true + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: false + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1745,7 +1783,6 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} @@ -1768,6 +1805,10 @@ packages: picomatch: 2.3.1 dev: true + /aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + dev: false + /arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true @@ -1817,9 +1858,16 @@ packages: zip-stream: 4.1.1 dev: true + /are-we-there-yet@1.1.7: + resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} + deprecated: This package is no longer supported. + dependencies: + delegates: 1.0.0 + readable-stream: 2.3.8 + dev: false + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -1832,12 +1880,10 @@ packages: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 - dev: true /assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} - dev: true /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -1850,7 +1896,6 @@ packages: /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - dev: true /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1878,11 +1923,14 @@ packages: /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - dev: true + + /aws-ssl-profiles@1.1.2: + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} + engines: {node: '>= 6.0.0'} + dev: false /aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} - dev: true /axios@1.6.7: resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} @@ -1905,7 +1953,6 @@ packages: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 - dev: true /big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} @@ -1917,6 +1964,13 @@ packages: engines: {node: '>=8'} dev: true + /bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: false + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -1991,7 +2045,6 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2010,9 +2063,24 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: false + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: false @@ -2044,6 +2112,14 @@ packages: engines: {node: '>=8'} dev: true + /cacheable-lookup@2.0.1: + resolution: {integrity: sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==} + engines: {node: '>=10'} + dependencies: + '@types/keyv': 3.1.4 + keyv: 4.5.4 + dev: false + /cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -2117,7 +2193,6 @@ packages: /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - dev: true /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2147,7 +2222,6 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} @@ -2183,6 +2257,10 @@ packages: fsevents: 2.3.3 dev: true + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: false + /chromium@3.0.3: resolution: {integrity: sha512-TfbzP/3t38Us5xrbb9x87M/y5I/j3jx0zeJhhQ72gjp6dwJuhVP6hBZnBH4wEg7512VVXk9zCfTuPFOdw7bQqg==} os: [darwin, linux, win32] @@ -2284,6 +2362,11 @@ packages: engines: {node: '>=0.8'} dev: true + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + dev: false + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2295,7 +2378,6 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} @@ -2303,12 +2385,16 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + dev: false + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2425,6 +2511,10 @@ packages: engines: {node: '>=0.8'} dev: false + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: false + /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2469,7 +2559,6 @@ packages: /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2618,7 +2707,6 @@ packages: engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 - dev: true /date-time@3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} @@ -2662,7 +2750,6 @@ packages: dependencies: ms: 2.1.3 supports-color: 8.1.1 - dev: true /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -2676,6 +2763,13 @@ packages: ms: 2.1.2 supports-color: 8.1.1 + /decompress-response@5.0.0: + resolution: {integrity: sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==} + engines: {node: '>=10'} + dependencies: + mimic-response: 2.1.0 + dev: false + /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -2750,6 +2844,15 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: false + + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -2758,6 +2861,12 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: false + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -2778,6 +2887,10 @@ packages: dependencies: is-obj: 2.0.0 + /duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: false + /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2786,7 +2899,6 @@ packages: dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 - dev: true /editorconfig@1.0.4: resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} @@ -2802,6 +2914,14 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + /ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.9.2 + dev: false + /electron-to-chromium@1.4.677: resolution: {integrity: sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==} dev: true @@ -3425,7 +3545,6 @@ packages: /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: true /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -3465,11 +3584,9 @@ packages: /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} - dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} @@ -3499,7 +3616,6 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -3530,6 +3646,12 @@ packages: flat-cache: 3.2.0 dev: true + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: false + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -3605,7 +3727,6 @@ packages: /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - dev: true /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -3619,7 +3740,6 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -3644,7 +3764,6 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} @@ -3654,6 +3773,15 @@ packages: jsonfile: 6.1.0 universalify: 2.0.1 + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: false + /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -3664,6 +3792,12 @@ packages: universalify: 2.0.1 dev: true + /fs-minipass@1.2.7: + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} + dependencies: + minipass: 2.9.0 + dev: false + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3678,6 +3812,26 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + /gauge@2.7.4: + resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} + deprecated: This package is no longer supported. + dependencies: + aproba: 1.2.0 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 1.0.2 + strip-ansi: 3.0.1 + wide-align: 1.1.5 + dev: false + + /generate-function@2.3.1: + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} + dependencies: + is-property: 1.0.2 + dev: false + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3713,6 +3867,10 @@ packages: engines: {node: '>=16'} dev: true + /getopts@2.3.0: + resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} + dev: false + /getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -3723,7 +3881,6 @@ packages: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 - dev: true /git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} @@ -3804,6 +3961,29 @@ packages: dependencies: get-intrinsic: 1.2.4 + /got@10.7.0: + resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==} + engines: {node: '>=10'} + dependencies: + '@sindresorhus/is': 2.1.1 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + cacheable-lookup: 2.0.1 + cacheable-request: 7.0.4 + decompress-response: 5.0.0 + duplexer3: 0.1.5 + get-stream: 5.2.0 + lowercase-keys: 2.0.0 + mimic-response: 2.1.0 + p-cancelable: 2.1.1 + p-event: 4.2.0 + responselike: 2.0.1 + to-readable-stream: 2.1.0 + type-fest: 0.10.0 + dev: false + /got@11.8.6: resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} engines: {node: '>=10.19.0'} @@ -3860,6 +4040,20 @@ packages: whatwg-mimetype: 3.0.0 dev: true + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: false + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + dev: false + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -3882,6 +4076,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: false + /has-yarn@3.0.0: resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3955,6 +4153,15 @@ packages: - debug dev: false + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + dev: false + /http-signature@1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} @@ -4017,12 +4224,17 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true + /ignore-walk@3.0.4: + resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} + dependencies: + minimatch: 3.1.2 + dev: false + /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -4077,7 +4289,6 @@ packages: /ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true /inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} @@ -4142,6 +4353,13 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + dev: false + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4201,6 +4419,10 @@ packages: isobject: 3.0.1 dev: true + /is-property@1.0.2: + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} + dev: false + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -4253,7 +4475,6 @@ packages: /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - dev: true /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} @@ -4264,6 +4485,17 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true + /jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: false + /jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true @@ -4300,11 +4532,9 @@ packages: hasBin: true dependencies: argparse: 2.0.1 - dev: true /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4315,7 +4545,6 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -4323,7 +4552,6 @@ packages: /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -4331,7 +4559,6 @@ packages: /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} @@ -4344,7 +4571,6 @@ packages: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - dev: true /jsonc-eslint-parser@1.4.1: resolution: {integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==} @@ -4361,6 +4587,12 @@ packages: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: false + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -4373,6 +4605,16 @@ packages: engines: {'0': node >= 0.2.0} dev: true + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: false + /jsprim@2.0.2: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} @@ -4532,7 +4774,6 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} @@ -4552,6 +4793,10 @@ packages: wrap-ansi: 6.2.0 dev: true + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false + /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: @@ -4590,6 +4835,16 @@ packages: dependencies: yallist: 4.0.0 + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: false + + /lru.min@1.1.1: + resolution: {integrity: sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==} + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} + dev: false + /magic-string@0.30.7: resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} @@ -4662,6 +4917,11 @@ packages: engines: {node: '>=4'} dev: false + /mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + dev: false + /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -4682,7 +4942,6 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - dev: true /minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} @@ -4701,11 +4960,24 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} + dependencies: + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: false + /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} dev: true + /minizlib@1.3.3: + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} + dependencies: + minipass: 2.9.0 + dev: false + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -4735,6 +5007,21 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /mysql2@3.11.3: + resolution: {integrity: sha512-Qpu2ADfbKzyLdwC/5d4W7+5Yz7yBzCU05YWt5npWzACST37wJsB23wgOSo00qi043urkiRwXtEvJc9UnuLX/MQ==} + engines: {node: '>= 8.0'} + dependencies: + aws-ssl-profiles: 1.1.2 + denque: 2.1.0 + generate-function: 2.3.1 + iconv-lite: 0.6.3 + long: 5.2.3 + lru.min: 1.1.1 + named-placeholders: 1.1.3 + seq-queue: 0.0.5 + sqlstring: 2.3.3 + dev: false + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -4743,6 +5030,17 @@ packages: thenify-all: 1.6.0 dev: true + /named-placeholders@1.1.3: + resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} + engines: {node: '>=12.0.0'} + dependencies: + lru-cache: 7.18.3 + dev: false + + /nan@2.20.0: + resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} + dev: false + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4752,6 +5050,18 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + dependencies: + debug: 3.2.7(supports-color@8.1.1) + iconv-lite: 0.4.24 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + dev: false + /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -4767,10 +5077,80 @@ packages: engines: {node: '>= 6.13.0'} dev: false + /node-gyp@4.0.0: + resolution: {integrity: sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==} + engines: {node: '>= 4.0.0'} + hasBin: true + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + mkdirp: 0.5.6 + nopt: 3.0.6 + npmlog: 4.1.2 + osenv: 0.1.5 + request: 2.88.2 + rimraf: 2.7.1 + semver: 5.3.0 + tar: 4.4.19 + which: 1.3.1 + dev: false + + /node-pre-gyp@0.13.0: + resolution: {integrity: sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==} + deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' + hasBin: true + dependencies: + detect-libc: 1.0.3 + mkdirp: 0.5.6 + needle: 2.9.1 + nopt: 4.0.3 + npm-packlist: 1.4.8 + npmlog: 4.1.2 + rc: 1.2.8 + rimraf: 2.7.1 + semver: 5.7.2 + tar: 4.4.19 + transitivePeerDependencies: + - supports-color + dev: false + /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true + /nodegit@0.27.0: + resolution: {integrity: sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA==} + engines: {node: '>= 6'} + requiresBuild: true + dependencies: + fs-extra: 7.0.1 + got: 10.7.0 + json5: 2.2.3 + lodash: 4.17.21 + nan: 2.20.0 + node-gyp: 4.0.0 + node-pre-gyp: 0.13.0 + ramda: 0.25.0 + tar-fs: 1.16.3 + transitivePeerDependencies: + - supports-color + dev: false + + /nopt@3.0.6: + resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: false + + /nopt@4.0.3: + resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} + hasBin: true + dependencies: + abbrev: 1.1.1 + osenv: 0.1.5 + dev: false + /nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4799,6 +5179,24 @@ packages: engines: {node: '>=14.16'} dev: false + /npm-bundled@1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + dependencies: + npm-normalize-package-bin: 1.0.1 + dev: false + + /npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + dev: false + + /npm-packlist@1.4.8: + resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==} + dependencies: + ignore-walk: 3.0.4 + npm-bundled: 1.1.2 + npm-normalize-package-bin: 1.0.1 + dev: false + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -4811,12 +5209,31 @@ packages: dependencies: path-key: 4.0.0 + /npmlog@4.1.2: + resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} + deprecated: This package is no longer supported. + dependencies: + are-we-there-yet: 1.1.7 + console-control-strings: 1.1.0 + gauge: 2.7.4 + set-blocking: 2.0.0 + dev: false + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + dev: false + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: false + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4897,10 +5314,23 @@ packages: wcwidth: 1.0.1 dev: true + /os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + dev: false + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + /osenv@0.1.5: + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} + deprecated: This package is no longer supported. + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: false + /ospath@1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: true @@ -4915,6 +5345,18 @@ packages: engines: {node: '>=12.20'} dev: false + /p-event@4.2.0: + resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + engines: {node: '>=8'} + dependencies: + p-timeout: 3.2.0 + dev: false + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + dev: false + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -4950,6 +5392,13 @@ packages: aggregate-error: 3.1.0 dev: true + /p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + dependencies: + p-finally: 1.0.0 + dev: false + /package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -5037,7 +5486,6 @@ packages: /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -5163,7 +5611,13 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true + + /pump@1.0.3: + resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: false /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -5174,7 +5628,6 @@ packages: /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /pupa@3.1.0: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} @@ -5196,6 +5649,11 @@ packages: dependencies: side-channel: 1.0.5 + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: false + /quasar@2.14.5: resolution: {integrity: sha512-N+iRYoby09P9l+R5nKfA0tCPXdXJJHCPifjP8CkL/JASX5yHEjuwh7KoNiWzYLZPbsYXVuQKqwtDy0qXuXTv2g==} engines: {node: '>= 10.18.1', npm: '>= 6.13.4', yarn: '>= 1.21.1'} @@ -5213,6 +5671,10 @@ packages: engines: {node: '>=10'} dev: false + /ramda@0.25.0: + resolution: {integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==} + dev: false + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -5318,6 +5780,33 @@ packages: throttleit: 1.0.1 dev: true + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5328,6 +5817,12 @@ packages: engines: {node: '>=0.10.0'} dev: true + /require-yaml@0.0.1: + resolution: {integrity: sha512-M6eVEgLPRbeOhgSCnOTtdrOOEQzbXRchg24Xa13c39dMuraFKdI9emUo97Rih0YEFzSICmSKg8w4RQp+rd9pOQ==} + dependencies: + js-yaml: 4.1.0 + dev: false + /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -5509,6 +6004,10 @@ packages: resolution: {integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==} dev: true + /sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + dev: false + /selfsigned@2.4.1: resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} @@ -5524,6 +6023,16 @@ packages: semver: 7.6.0 dev: false + /semver@5.3.0: + resolution: {integrity: sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==} + hasBin: true + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: false + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5556,6 +6065,10 @@ packages: transitivePeerDependencies: - supports-color + /seq-queue@0.0.5: + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} + dev: false + /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: @@ -5573,6 +6086,10 @@ packages: transitivePeerDependencies: - supports-color + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false + /set-function-length@1.2.1: resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} @@ -5587,6 +6104,14 @@ packages: /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: false + /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -5667,6 +6192,11 @@ packages: engines: {node: '>= 10.x'} dev: true + /sqlstring@2.3.3: + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} + engines: {node: '>= 0.6'} + dev: false + /sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} @@ -5681,7 +6211,6 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 - dev: true /stack-trace@1.0.0-pre2: resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} @@ -5700,6 +6229,15 @@ packages: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5727,6 +6265,13 @@ packages: safe-buffer: 5.2.1 dev: true + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -5794,7 +6339,6 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} @@ -5818,6 +6362,28 @@ packages: strip-ansi: 6.0.1 dev: true + /tar-fs@1.16.3: + resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} + dependencies: + chownr: 1.1.4 + mkdirp: 0.5.6 + pump: 1.0.3 + tar-stream: 1.6.2 + dev: false + + /tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: false + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -5829,6 +6395,19 @@ packages: readable-stream: 3.6.2 dev: true + /tar@4.4.19: + resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} + engines: {node: '>=4.5'} + dependencies: + chownr: 1.1.4 + fs-minipass: 1.2.7 + minipass: 2.9.0 + minizlib: 1.3.3 + mkdirp: 0.5.6 + safe-buffer: 5.2.1 + yallist: 3.1.1 + dev: false + /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -5896,10 +6475,19 @@ packages: rimraf: 3.0.2 dev: true + /to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + dev: false + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + /to-readable-stream@2.1.0: + resolution: {integrity: sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==} + engines: {node: '>=8'} + dev: false + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -5910,6 +6498,14 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + dev: false + /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} @@ -5958,7 +6554,6 @@ packages: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 - dev: true /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} @@ -5967,7 +6562,6 @@ packages: /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - dev: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -5981,6 +6575,11 @@ packages: engines: {node: '>=4'} dev: true + /type-fest@0.10.0: + resolution: {integrity: sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==} + engines: {node: '>=8'} + dev: false + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -6048,6 +6647,11 @@ packages: crypto-random-string: 4.0.0 dev: false + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: false + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -6113,7 +6717,6 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - dev: true /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -6129,6 +6732,12 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: 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. + hasBin: true + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -6150,7 +6759,6 @@ packages: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.3.0 - dev: true /vite-jsconfig-paths@2.0.1(vite@5.1.4): resolution: {integrity: sha512-rabcTTfKs0MdAsQWcZjbIMo5fcp6jthZce7uFEPgVPgpSY+RNOwjzIJOPES6cB/GJZLSoLGfHM9kt5HNmJvp7A==} @@ -6484,6 +7092,13 @@ packages: engines: {node: '>=12'} dev: true + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6500,6 +7115,12 @@ packages: stackback: 0.0.2 dev: true + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: false + /widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -6559,6 +7180,11 @@ packages: engines: {node: '>=12'} dev: true + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: false + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -6568,6 +7194,10 @@ packages: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: false + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: false + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/quasar.config.js b/quasar.config.js index b59c62eeb..822f62e1d 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -109,7 +109,7 @@ module.exports = configure(function (/* ctx */) { }, proxy: { '/api': { - target: 'http://0.0.0.0:3000', + target: 'http://back:3000', logLevel: 'debug', changeOrigin: true, secure: false, diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile new file mode 100644 index 000000000..93e898511 --- /dev/null +++ b/test/cypress/db/Dockerfile @@ -0,0 +1,35 @@ +FROM registry.verdnatura.es/salix-back:e2e-try AS back +FROM docker:dind AS base + +ENV TZ Europe/Madrid +ARG DEBIAN_FRONTEND=noninteractive + +RUN apk update \ + && apk add --update nodejs npm python3 \ + krb5-dev libressl-dev + +RUN apk update \ + && apk add --virtual build-dependencies \ + build-base gcc wget git + + +RUN npm i -g pnpm + +WORKDIR /salix + +# COPY --from=back /.git /test/cypress/.git +# COPY --from=back myt.config.yml /test/cypress +# COPY db db +# COPY node_modules node_modules +# COPY .git .git +# COPY myt.config.yml . + +# RUN pnpm i @verdnatura/myt +COPY --from=back salix/db db +COPY --from=back salix/myt.config.yml . +COPY --from=back salix/.git .git +COPY node_modules node_modules + +FROM base AS db + +WORKDIR /salix diff --git a/test/cypress/storage/access/.keep b/test/cypress/storage/access/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/cypress/storage/dms/.keep b/test/cypress/storage/dms/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/cypress/storage/image/catalog/.keep b/test/cypress/storage/image/catalog/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/cypress/storage/image/user/.keep b/test/cypress/storage/image/user/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/cypress/storage/pdfs/invoice/.keep b/test/cypress/storage/pdfs/invoice/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/test/cypress/storage/tmp/.keep b/test/cypress/storage/tmp/.keep new file mode 100644 index 000000000..e69de29bb From 81cbeff449e22cf9946bc0de6268bfd6c8d15cef Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 2 Oct 2024 15:20:54 +0200 Subject: [PATCH 007/516] feat: refs #6695 run e2e in docker --- Dockerfile.e2e | 44 +++++++++++++++++++ cypress.config.js | 2 +- docker-compose.e2e.yml | 41 +++++++++++++++++ docker-compose.yml | 26 +---------- test/cypress/.gitignore | 3 +- test/cypress/db/Dockerfile | 4 +- .../integration/claim/claimPhoto.spec.js | 10 ++--- .../outLogin/recoverPassword.spec.js | 2 +- .../integration/outLogin/twoFactor.spec.js | 4 +- test/cypress/support/index.js | 3 ++ 10 files changed, 102 insertions(+), 37 deletions(-) create mode 100644 Dockerfile.e2e create mode 100644 docker-compose.e2e.yml diff --git a/Dockerfile.e2e b/Dockerfile.e2e new file mode 100644 index 000000000..c3078d319 --- /dev/null +++ b/Dockerfile.e2e @@ -0,0 +1,44 @@ +FROM node:lts-bookworm +ENV SHELL bash +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN npm install -g pnpm@8.15.1 +RUN pnpm setup + +RUN pnpm install -g @quasar/cli@2.2.1 + +RUN apt-get -y --fix-missing update +RUN apt-get -y --fix-missing upgrade +RUN apt-get -y --no-install-recommends install apt-utils +RUN apt-get install --fix-missing -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb + +WORKDIR /app + +COPY \ + package.json \ + .npmrc \ + pnpm-lock.yaml \ + ./ + +RUN pnpm install +RUN pnpm install cypress +RUN npx cypress install + +COPY \ + quasar.config.js \ + index.html \ + jsconfig.json \ + quasar.extensions.json \ + .eslintignore \ + .eslintrc.cjs \ + postcss.config.js \ + cypress.config.js \ + ./ + +COPY src src +COPY test/cypress test/cypress +COPY public public + +# RUN npx quasar build + +CMD ["npx", "quasar", "dev"] diff --git a/cypress.config.js b/cypress.config.js index 87ad1334f..42ceceac1 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -2,7 +2,7 @@ const { defineConfig } = require('cypress'); module.exports = defineConfig({ e2e: { - baseUrl: 'http://main:4000/', + baseUrl: 'http://front:9000/', experimentalStudio: true, fixturesFolder: 'test/cypress/fixtures', screenshotsFolder: 'test/cypress/screenshots', diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml new file mode 100644 index 000000000..31c48033c --- /dev/null +++ b/docker-compose.e2e.yml @@ -0,0 +1,41 @@ +services: + front: + image: registry.verdnatura.es/salix-frontend:${VERSION:?} + build: + context: . + dockerfile: ./Dockerfile.e2e + ports: + - 9000:9000 + back: + image: registry.verdnatura.es/salix-back:${VERSION:?} + build: + context: . + dockerfile: back/Dockerfile + depends_on: + - db + ports: + - 3000:3000 + - 5000:5000 + volumes: + - ./test/cypress/storage:/salix/storage + db: + image: db + command: npx myt run -t --ci -n salix-front_default + build: + context: . + dockerfile: test/cypress/db/Dockerfile + target: db + volumes: + - /var/run/docker.sock:/var/run/docker.sock + e2e: + image: registry.verdnatura.es/salix-frontend:${VERSION:?} + command: npx cypress run + build: + context: . + dockerfile: ./Dockerfile.e2e + # e2e-2: + # image: registry.verdnatura.es/salix-frontend:${VERSION:?} + # command: npx cypress run --config-file test/cypress/configs/cypress.config.2.js + # build: + # context: . + # dockerfile: ./Dockerfile.e2e diff --git a/docker-compose.yml b/docker-compose.yml index ee3d7c103..86b9b204c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,31 +1,7 @@ +version: '3.7' services: main: image: registry.verdnatura.es/salix-frontend:${VERSION:?} build: context: . dockerfile: ./Dockerfile - ports: - - 4000:4000 - environment: - - VUE_APP_API_URL=http://back:3000 - back: - image: registry.verdnatura.es/salix-back:${VERSION:?} - build: - context: . - dockerfile: back/Dockerfile - depends_on: - - db - ports: - - 3000:3000 - - 5000:5000 - volumes: - - ./test/cypress/storage:/salix/storage - db: - image: db - command: npx myt run -t -d --ci -n salix-front_default - build: - context: . - dockerfile: test/cypress/db/Dockerfile - target: db - volumes: - - /var/run/docker.sock:/var/run/docker.sock diff --git a/test/cypress/.gitignore b/test/cypress/.gitignore index 3f91dd465..01dd8593d 100644 --- a/test/cypress/.gitignore +++ b/test/cypress/.gitignore @@ -1,2 +1,3 @@ videos/* -screenshots/* \ No newline at end of file +screenshots/* +storage/* diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index 93e898511..634c8cfe3 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -24,11 +24,13 @@ WORKDIR /salix # COPY .git .git # COPY myt.config.yml . -# RUN pnpm i @verdnatura/myt COPY --from=back salix/db db COPY --from=back salix/myt.config.yml . COPY --from=back salix/.git .git + COPY node_modules node_modules +# RUN pnpm i @verdnatura/myt USAR NODE_MODULES HASTA QUE ESTE LA RAMA DE MYT FUSIONADA (MIENTRAS INSTALAR EN LILIUM, MYT Y MODIFICAR EL CODIGO DE myt-run.js) + FROM base AS db diff --git a/test/cypress/integration/claim/claimPhoto.spec.js b/test/cypress/integration/claim/claimPhoto.spec.js index 9b2978b19..e78e37fe2 100755 --- a/test/cypress/integration/claim/claimPhoto.spec.js +++ b/test/cypress/integration/claim/claimPhoto.spec.js @@ -22,14 +22,12 @@ describe('ClaimPhoto', () => { }); it('should open first image dialog change to second and close', () => { - cy.get( - ':nth-child(1) > .q-card > .q-img > .q-img__container > .q-img__image' - ).click(); + cy.get(':nth-last-child(1) > .q-card').click(); cy.get('.q-carousel__slide > .q-img > .q-img__container > .q-img__image').should( 'be.visible' ); - cy.get('.q-carousel__control > .q-btn > .q-btn__content > .q-icon').click(); + cy.get('.q-carousel__control > button').click(); cy.get( '.q-dialog__inner > .q-toolbar > .q-btn > .q-btn__content > .q-icon' @@ -41,7 +39,7 @@ describe('ClaimPhoto', () => { it('should remove third and fourth file', () => { cy.get( - '.multimediaParent > :nth-child(3) > .q-btn > .q-btn__content > .q-icon' + '.multimediaParent > :nth-last-child(1) > .q-btn > .q-btn__content > .q-icon' ).click(); cy.get( '.q-card__actions > .q-btn--unelevated > .q-btn__content > .block' @@ -49,7 +47,7 @@ describe('ClaimPhoto', () => { cy.get('.q-notification__message').should('have.text', 'Data deleted'); cy.get( - '.multimediaParent > :nth-child(3) > .q-btn > .q-btn__content > .q-icon' + '.multimediaParent > :nth-last-child(1) > .q-btn > .q-btn__content > .q-icon' ).click(); cy.get( '.q-card__actions > .q-btn--unelevated > .q-btn__content > .block' diff --git a/test/cypress/integration/outLogin/recoverPassword.spec.js b/test/cypress/integration/outLogin/recoverPassword.spec.js index eec81b661..48f6f8563 100755 --- a/test/cypress/integration/outLogin/recoverPassword.spec.js +++ b/test/cypress/integration/outLogin/recoverPassword.spec.js @@ -24,7 +24,7 @@ describe('Recover Password', () => { it('should change password to user', () => { // Get token from mail cy.request( - `http://localhost:3000/api/Mails?filter=%7B%22where%22%3A%20%7B%22receiver%22%3A%20%22${username}%40mydomain.com%22%7D%2C%20%22order%22%3A%20%5B%22id%20DESC%22%5D%7D&access_token=DEFAULT_TOKEN` + `/api/Mails?filter=%7B%22where%22%3A%20%7B%22receiver%22%3A%20%22${username}%40mydomain.com%22%7D%2C%20%22order%22%3A%20%5B%22id%20DESC%22%5D%7D&access_token=DEFAULT_TOKEN` ).then((response) => { const regex = /access_token=([a-zA-Z0-9]+)/; const [match] = response.body[0].body.match(regex); diff --git a/test/cypress/integration/outLogin/twoFactor.spec.js b/test/cypress/integration/outLogin/twoFactor.spec.js index 4d8561f0f..6a8ac9c06 100755 --- a/test/cypress/integration/outLogin/twoFactor.spec.js +++ b/test/cypress/integration/outLogin/twoFactor.spec.js @@ -11,7 +11,7 @@ describe('Two Factor', () => { it('should enable two factor to sysadmin', () => { cy.request( 'PATCH', - `http://localhost:3000/api/VnUsers/${userId}/update-user?access_token=DEFAULT_TOKEN`, + `/api/VnUsers/${userId}/update-user?access_token=DEFAULT_TOKEN`, { twoFactor: 'email' } ); }); @@ -41,7 +41,7 @@ describe('Two Factor', () => { // Get code from mail cy.request( - `http://localhost:3000/api/Mails?filter=%7B%22where%22%3A%20%7B%22receiver%22%3A%20%22${username}%40mydomain.com%22%7D%2C%20%22order%22%3A%20%5B%22id%20DESC%22%5D%7D&access_token=DEFAULT_TOKEN` + `/api/Mails?filter=%7B%22where%22%3A%20%7B%22receiver%22%3A%20%22${username}%40mydomain.com%22%7D%2C%20%22order%22%3A%20%5B%22id%20DESC%22%5D%7D&access_token=DEFAULT_TOKEN` ).then((response) => { const tempDiv = document.createElement('div'); tempDiv.innerHTML = response.body[0].body; diff --git a/test/cypress/support/index.js b/test/cypress/support/index.js index 4385698ec..5581875c6 100644 --- a/test/cypress/support/index.js +++ b/test/cypress/support/index.js @@ -15,3 +15,6 @@ import './commands'; +Cypress.Screenshot.defaults({ + screenshotOnRunFailure: false, +}); From da61df0a2aefaf60ba49de204ead8d3bcc404cba Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:08:47 +0200 Subject: [PATCH 008/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 22 +++++++++++++----- cypress.config.js | 4 ++-- dind.sh | 12 ++++++++++ docker-compose.e2e.yml | 30 +++++++++++++----------- e2e.sh | 11 +++++++++ test/cypress/db/Dockerfile | 39 ++++++++------------------------ test/cypress/support/commands.js | 2 +- 7 files changed, 69 insertions(+), 51 deletions(-) create mode 100644 dind.sh create mode 100644 e2e.sh diff --git a/Jenkinsfile b/Jenkinsfile index 516574519..bd9fb2bd1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -92,12 +92,22 @@ pipeline { IMAGE = "$REGISTRY/salix-back" } steps { - sh 'docker pull $IMAGE:dev' - sh 'docker ps -a' - sh 'docker network create salix_default' - sh 'docker-compose -f docker-compose.yml build db' - sh 'docker-compose -f docker-compose.yml up db' - sh 'docker run --name back $IMAGE:dev' + // // sh 'docker pull $IMAGE:dev' + // sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + // // sh 'docker ps -a' + // sh 'docker network create salix_default' + // sh 'docker-compose -f docker-compose.yml build db' + // sh 'docker-compose -f docker-compose.yml up db' + // sh 'docker run --name back $IMAGE:dev' + sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' + sh 'cd front' + // sh '# export VERSION=e2e-try' + sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' + sh 'docker-compose -f docker-compose.e2e.yml up db' + sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' + sh 'docker-compose -f docker-compose.e2e.yml -d up front' + sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' + } post { always { diff --git a/cypress.config.js b/cypress.config.js index 42ceceac1..08c361029 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -2,14 +2,14 @@ const { defineConfig } = require('cypress'); module.exports = defineConfig({ e2e: { - baseUrl: 'http://front:9000/', + baseUrl: 'http://localhost:9000/', experimentalStudio: true, fixturesFolder: 'test/cypress/fixtures', screenshotsFolder: 'test/cypress/screenshots', supportFile: 'test/cypress/support/index.js', videosFolder: 'test/cypress/videos', video: false, - specPattern: 'test/cypress/integration/**/*.spec.js', + specPattern: 'test/cypress/integration/claim/*.spec.js', experimentalRunAllSpecs: true, component: { componentFolder: 'src', diff --git a/dind.sh b/dind.sh new file mode 100644 index 000000000..7d9ae525f --- /dev/null +++ b/dind.sh @@ -0,0 +1,12 @@ +docker stop dind-container || true && docker rm dind-container || true +docker run --privileged -d \ + -p 2376:2376 \ + -e DOCKER_TLS_CERTDIR="" \ + --name dind-container \ + -v /home/alexm/Projects/salix-front:/front \ + docker:dind \ + dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock + +docker exec -it dind-container sh + + diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 31c48033c..3f38a8c10 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -6,33 +6,37 @@ services: dockerfile: ./Dockerfile.e2e ports: - 9000:9000 - back: - image: registry.verdnatura.es/salix-back:${VERSION:?} - build: - context: . - dockerfile: back/Dockerfile - depends_on: - - db - ports: - - 3000:3000 - - 5000:5000 - volumes: - - ./test/cypress/storage:/salix/storage + network_mode: host db: image: db - command: npx myt run -t --ci -n salix-front_default + command: npx myt run -t -d build: context: . dockerfile: test/cypress/db/Dockerfile target: db volumes: - /var/run/docker.sock:/var/run/docker.sock + network_mode: host e2e: image: registry.verdnatura.es/salix-frontend:${VERSION:?} command: npx cypress run build: context: . dockerfile: ./Dockerfile.e2e + network_mode: host + # back: + # image: back + # build: + # context: ./salix + # dockerfile: salix/back/Dockerfile + # # depends_on: + # # - db + # ports: + # - 3000:3000 + # - 5000:5000 + # volumes: + # - ./test/cypress/storage:/salix/storage + # e2e-2: # image: registry.verdnatura.es/salix-frontend:${VERSION:?} # command: npx cypress run --config-file test/cypress/configs/cypress.config.2.js diff --git a/e2e.sh b/e2e.sh new file mode 100644 index 000000000..1ca5fcf38 --- /dev/null +++ b/e2e.sh @@ -0,0 +1,11 @@ +git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git +cd front +# export VERSION=e2e-try +docker buildx build -f salix/back/Dockerfile -t back ./salix +docker-compose -f docker-compose.e2e.yml up db +docker run --net=host -v ./test/cypress/storage:/salix/storage -d back +docker-compose -f docker-compose.e2e.yml -d up front +docker-compose -f docker-compose.e2e.yml up e2e --build + + + diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index 634c8cfe3..67d299b8e 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -1,37 +1,18 @@ -FROM registry.verdnatura.es/salix-back:e2e-try AS back -FROM docker:dind AS base - -ENV TZ Europe/Madrid -ARG DEBIAN_FRONTEND=noninteractive - -RUN apk update \ - && apk add --update nodejs npm python3 \ - krb5-dev libressl-dev - -RUN apk update \ - && apk add --virtual build-dependencies \ - build-base gcc wget git - - +FROM node:lts-bookworm +ENV SHELL bash +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN npm install -g pnpm@8.15.1 +RUN pnpm setup +RUN apt install libkrb5-dev libssl-dev RUN npm i -g pnpm WORKDIR /salix -# COPY --from=back /.git /test/cypress/.git -# COPY --from=back myt.config.yml /test/cypress -# COPY db db -# COPY node_modules node_modules -# COPY .git .git -# COPY myt.config.yml . - -COPY --from=back salix/db db -COPY --from=back salix/myt.config.yml . -COPY --from=back salix/.git .git +COPY salix/db db +COPY salix/myt.config.yml . +COPY salix/.git .git COPY node_modules node_modules # RUN pnpm i @verdnatura/myt USAR NODE_MODULES HASTA QUE ESTE LA RAMA DE MYT FUSIONADA (MIENTRAS INSTALAR EN LILIUM, MYT Y MODIFICAR EL CODIGO DE myt-run.js) - -FROM base AS db - -WORKDIR /salix diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 83f45b721..285520913 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -83,7 +83,7 @@ Cypress.Commands.add('getValue', (selector) => { Cypress.Commands.add('selectOption', (selector, option) => { cy.waitForElement(selector); cy.get(selector).find('.q-select__dropdown-icon').click(); - cy.get('.q-menu .q-item').contains(option).click(); + cy.get('.q-menu .q-item').contains(option).should('be.visible').click(); }); Cypress.Commands.add('fillInForm', (obj, form = '.q-form > .q-card') => { From 421ac4b9ac6ee68029ad981c37f66c8e353e4bb8 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:11:45 +0200 Subject: [PATCH 009/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bd9fb2bd1..7124b65ab 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -100,7 +100,7 @@ pipeline { // sh 'docker-compose -f docker-compose.yml up db' // sh 'docker run --name back $IMAGE:dev' sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd front' + // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' From 7b4d3d45baf11d85850b08a24945736cb6f1965c Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:13:53 +0200 Subject: [PATCH 010/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 7124b65ab..bd64f5912 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -102,6 +102,7 @@ pipeline { sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' + sh 'rm -rf salix' sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' From 04962de8e2802db8ec7992c92344209f4884066c Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:15:10 +0200 Subject: [PATCH 011/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index bd64f5912..7ff67ed39 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -99,10 +99,10 @@ pipeline { // sh 'docker-compose -f docker-compose.yml build db' // sh 'docker-compose -f docker-compose.yml up db' // sh 'docker run --name back $IMAGE:dev' + sh 'rm -rf salix' sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' - sh 'rm -rf salix' sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' From 064ce8042b0187ab175ea210f17e8e05d5f4e99d Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:22:12 +0200 Subject: [PATCH 012/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7ff67ed39..b24a1adef 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -103,7 +103,7 @@ pipeline { sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' - sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' + sh 'docker build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' sh 'docker-compose -f docker-compose.e2e.yml -d up front' From 8781905cab474694403b1bffd98c49cae13cd77e Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:26:12 +0200 Subject: [PATCH 013/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b24a1adef..d4668b637 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -92,6 +92,10 @@ pipeline { IMAGE = "$REGISTRY/salix-back" } steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-e2e${env.BUILD_ID}" + } // // sh 'docker pull $IMAGE:dev' // sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' // // sh 'docker ps -a' @@ -104,9 +108,9 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up db' + sh 'docker-compose -f docker-compose.e2e.yml up db -d' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml -d up front' + sh 'docker-compose -f docker-compose.e2e.yml -d up front -d' sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' } From 91538acfaf911e0548a01721718542d652b1d7e1 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:31:43 +0200 Subject: [PATCH 014/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d4668b637..fc806ac5f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -108,9 +108,9 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up db -d' + sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml -d up front -d' + sh 'docker-compose -f docker-compose.e2e.yml up front -d' sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' } From 43f0b72ff8a9d75dc966191931f703724fea77b8 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:52:06 +0200 Subject: [PATCH 015/516] feat: refs #6695 jenkins run e2e --- docker-compose.e2e.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 3f38a8c10..62c0c10d9 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -13,7 +13,6 @@ services: build: context: . dockerfile: test/cypress/db/Dockerfile - target: db volumes: - /var/run/docker.sock:/var/run/docker.sock network_mode: host From 6c5ae8d7e6d8f2389d7a2f4c78498c7cd1c11eae Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 12:56:11 +0200 Subject: [PATCH 016/516] feat: refs #6695 jenkins run e2e --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index fc806ac5f..231a210fa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -110,7 +110,7 @@ pipeline { sh 'docker build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up front -d' + sh 'docker-compose -f docker-compose.e2e.yml up front' sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' } From d41a6e9142c0edd9142a5566a568b5c5df55c98b Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 4 Oct 2024 13:00:12 +0200 Subject: [PATCH 017/516] feat: refs #6695 jenkins run e2e --- package.json | 1 - pnpm-lock.yaml | 722 +++---------------------------------- test/cypress/db/Dockerfile | 4 +- 3 files changed, 48 insertions(+), 679 deletions(-) diff --git a/package.json b/package.json index 47e85dc57..eaaa0b812 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "dependencies": { "@quasar/cli": "^2.3.0", "@quasar/extras": "^1.16.9", - "@verdnatura/myt": "^1.6.11", "axios": "^1.4.0", "chromium": "^3.0.3", "croppie": "^2.6.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 191a5b40d..4d06b651a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,6 @@ dependencies: '@quasar/extras': specifier: ^1.16.9 version: 1.16.9 - '@verdnatura/myt': - specifier: ^1.6.11 - version: 1.6.11 axios: specifier: ^1.4.0 version: 1.6.7 @@ -1293,11 +1290,6 @@ packages: dev: true optional: true - /@sindresorhus/is@2.1.1: - resolution: {integrity: sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==} - engines: {node: '>=10'} - dev: false - /@sindresorhus/is@4.6.0: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -1308,10 +1300,6 @@ packages: engines: {node: '>=14.16'} dev: false - /@sqltools/formatter@1.2.5: - resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} - dev: false - /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -1509,24 +1497,6 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@verdnatura/myt@1.6.11: - resolution: {integrity: sha512-uqdbSJSznBBzAoRkvBt600nUMEPL1PJ2v73eWMZbaoGUMiZiNAehYjs4gIrObP1cxC85JOx97XoLpG0BzPsaig==} - hasBin: true - dependencies: - '@sqltools/formatter': 1.2.5 - colors: 1.4.0 - ejs: 3.1.10 - fs-extra: 11.2.0 - getopts: 2.3.0 - ini: 4.1.1 - mysql2: 3.11.3 - nodegit: 0.27.0 - require-yaml: 0.0.1 - sha.js: 2.4.11 - transitivePeerDependencies: - - supports-color - dev: false - /@vitejs/plugin-vue@2.3.4(vite@5.1.4)(vue@3.4.19): resolution: {integrity: sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==} engines: {node: '>=12.0.0'} @@ -1666,10 +1636,6 @@ packages: through: 2.3.8 dev: true - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: false - /abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -1730,6 +1696,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -1758,11 +1725,6 @@ packages: type-fest: 0.21.3 dev: true - /ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} - engines: {node: '>=0.10.0'} - dev: false - /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1783,6 +1745,7 @@ packages: engines: {node: '>=8'} dependencies: color-convert: 2.0.1 + dev: true /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} @@ -1805,10 +1768,6 @@ packages: picomatch: 2.3.1 dev: true - /aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} - dev: false - /arch@2.2.0: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: true @@ -1858,16 +1817,9 @@ packages: zip-stream: 4.1.1 dev: true - /are-we-there-yet@1.1.7: - resolution: {integrity: sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==} - deprecated: This package is no longer supported. - dependencies: - delegates: 1.0.0 - readable-stream: 2.3.8 - dev: false - /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: true /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -1880,10 +1832,12 @@ packages: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 + dev: true /assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} + dev: true /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -1896,6 +1850,7 @@ packages: /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1923,14 +1878,11 @@ packages: /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - - /aws-ssl-profiles@1.1.2: - resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} - engines: {node: '>= 6.0.0'} - dev: false + dev: true /aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + dev: true /axios@1.6.7: resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} @@ -1953,6 +1905,7 @@ packages: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 + dev: true /big-integer@1.6.52: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} @@ -1964,13 +1917,6 @@ packages: engines: {node: '>=8'} dev: true - /bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} - dependencies: - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - dev: false - /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -2045,6 +1991,7 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 + dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2063,24 +2010,9 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true - /buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} - dev: false - - /buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - dev: false - /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - /buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} - dev: false - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: false @@ -2112,14 +2044,6 @@ packages: engines: {node: '>=8'} dev: true - /cacheable-lookup@2.0.1: - resolution: {integrity: sha512-EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==} - engines: {node: '>=10'} - dependencies: - '@types/keyv': 3.1.4 - keyv: 4.5.4 - dev: false - /cacheable-lookup@5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} @@ -2193,6 +2117,7 @@ packages: /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2222,6 +2147,7 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} @@ -2257,10 +2183,6 @@ packages: fsevents: 2.3.3 dev: true - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false - /chromium@3.0.3: resolution: {integrity: sha512-TfbzP/3t38Us5xrbb9x87M/y5I/j3jx0zeJhhQ72gjp6dwJuhVP6hBZnBH4wEg7512VVXk9zCfTuPFOdw7bQqg==} os: [darwin, linux, win32] @@ -2362,11 +2284,6 @@ packages: engines: {node: '>=0.8'} dev: true - /code-point-at@1.1.0: - resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} - engines: {node: '>=0.10.0'} - dev: false - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -2378,6 +2295,7 @@ packages: engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 + dev: true /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} @@ -2385,16 +2303,12 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - dev: false - /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2511,10 +2425,6 @@ packages: engines: {node: '>=0.8'} dev: false - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: false - /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -2559,6 +2469,7 @@ packages: /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2707,6 +2618,7 @@ packages: engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 + dev: true /date-time@3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} @@ -2750,6 +2662,7 @@ packages: dependencies: ms: 2.1.3 supports-color: 8.1.1 + dev: true /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -2763,13 +2676,6 @@ packages: ms: 2.1.2 supports-color: 8.1.1 - /decompress-response@5.0.0: - resolution: {integrity: sha512-TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==} - engines: {node: '>=10'} - dependencies: - mimic-response: 2.1.0 - dev: false - /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -2844,15 +2750,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false - - /denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - dev: false - /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -2861,12 +2758,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - /detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - dev: false - /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -2887,10 +2778,6 @@ packages: dependencies: is-obj: 2.0.0 - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -2899,6 +2786,7 @@ packages: dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 + dev: true /editorconfig@1.0.4: resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} @@ -2914,14 +2802,6 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.9.2 - dev: false - /electron-to-chromium@1.4.677: resolution: {integrity: sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==} dev: true @@ -3545,6 +3425,7 @@ packages: /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: true /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -3584,9 +3465,11 @@ packages: /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} + dev: true /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} @@ -3616,6 +3499,7 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} @@ -3646,12 +3530,6 @@ packages: flat-cache: 3.2.0 dev: true - /filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - dependencies: - minimatch: 5.1.6 - dev: false - /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} @@ -3727,6 +3605,7 @@ packages: /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -3740,6 +3619,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -3764,6 +3644,7 @@ packages: /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: true /fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} @@ -3773,15 +3654,6 @@ packages: jsonfile: 6.1.0 universalify: 2.0.1 - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: false - /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} @@ -3792,12 +3664,6 @@ packages: universalify: 2.0.1 dev: true - /fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - dependencies: - minipass: 2.9.0 - dev: false - /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -3812,26 +3678,6 @@ packages: /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /gauge@2.7.4: - resolution: {integrity: sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==} - deprecated: This package is no longer supported. - dependencies: - aproba: 1.2.0 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 1.0.2 - strip-ansi: 3.0.1 - wide-align: 1.1.5 - dev: false - - /generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} - dependencies: - is-property: 1.0.2 - dev: false - /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -3867,10 +3713,6 @@ packages: engines: {node: '>=16'} dev: true - /getopts@2.3.0: - resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} - dev: false - /getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} dependencies: @@ -3881,6 +3723,7 @@ packages: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 + dev: true /git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} @@ -3961,29 +3804,6 @@ packages: dependencies: get-intrinsic: 1.2.4 - /got@10.7.0: - resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==} - engines: {node: '>=10'} - dependencies: - '@sindresorhus/is': 2.1.1 - '@szmarczak/http-timer': 4.0.6 - '@types/cacheable-request': 6.0.3 - '@types/keyv': 3.1.4 - '@types/responselike': 1.0.3 - cacheable-lookup: 2.0.1 - cacheable-request: 7.0.4 - decompress-response: 5.0.0 - duplexer3: 0.1.5 - get-stream: 5.2.0 - lowercase-keys: 2.0.0 - mimic-response: 2.1.0 - p-cancelable: 2.1.1 - p-event: 4.2.0 - responselike: 2.0.1 - to-readable-stream: 2.1.0 - type-fest: 0.10.0 - dev: false - /got@11.8.6: resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} engines: {node: '>=10.19.0'} @@ -4040,20 +3860,6 @@ packages: whatwg-mimetype: 3.0.0 dev: true - /har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - dev: false - - /har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - dependencies: - ajv: 6.12.6 - har-schema: 2.0.0 - dev: false - /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4076,10 +3882,6 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: false - /has-yarn@3.0.0: resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4153,15 +3955,6 @@ packages: - debug dev: false - /http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - dependencies: - assert-plus: 1.0.0 - jsprim: 1.4.2 - sshpk: 1.18.0 - dev: false - /http-signature@1.3.6: resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} engines: {node: '>=0.10'} @@ -4224,17 +4017,12 @@ packages: engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 + dev: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: true - /ignore-walk@3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} - dependencies: - minimatch: 3.1.2 - dev: false - /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -4289,6 +4077,7 @@ packages: /ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true /inquirer@8.2.6: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} @@ -4353,13 +4142,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point@1.0.0: - resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} - engines: {node: '>=0.10.0'} - dependencies: - number-is-nan: 1.0.1 - dev: false - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4419,10 +4201,6 @@ packages: isobject: 3.0.1 dev: true - /is-property@1.0.2: - resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} - dev: false - /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -4475,6 +4253,7 @@ packages: /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} @@ -4485,17 +4264,6 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: false - /jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true @@ -4532,9 +4300,11 @@ packages: hasBin: true dependencies: argparse: 2.0.1 + dev: true /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4545,6 +4315,7 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -4552,6 +4323,7 @@ packages: /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -4559,6 +4331,7 @@ packages: /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} @@ -4571,6 +4344,7 @@ packages: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + dev: true /jsonc-eslint-parser@1.4.1: resolution: {integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==} @@ -4587,12 +4361,6 @@ packages: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} dev: true - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - optionalDependencies: - graceful-fs: 4.2.11 - dev: false - /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: @@ -4605,16 +4373,6 @@ packages: engines: {'0': node >= 0.2.0} dev: true - /jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - dev: false - /jsprim@2.0.2: resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} engines: {'0': node >=0.6.0} @@ -4774,6 +4532,7 @@ packages: /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} @@ -4793,10 +4552,6 @@ packages: wrap-ansi: 6.2.0 dev: true - /long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - dev: false - /loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: @@ -4835,16 +4590,6 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: false - - /lru.min@1.1.1: - resolution: {integrity: sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==} - engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - dev: false - /magic-string@0.30.7: resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} @@ -4917,11 +4662,6 @@ packages: engines: {node: '>=4'} dev: false - /mimic-response@2.1.0: - resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} - engines: {node: '>=8'} - dev: false - /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -4942,6 +4682,7 @@ packages: engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true /minimatch@9.0.1: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} @@ -4960,24 +4701,11 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - /minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - dependencies: - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: false - /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} dev: true - /minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - dependencies: - minipass: 2.9.0 - dev: false - /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -5007,21 +4735,6 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true - /mysql2@3.11.3: - resolution: {integrity: sha512-Qpu2ADfbKzyLdwC/5d4W7+5Yz7yBzCU05YWt5npWzACST37wJsB23wgOSo00qi043urkiRwXtEvJc9UnuLX/MQ==} - engines: {node: '>= 8.0'} - dependencies: - aws-ssl-profiles: 1.1.2 - denque: 2.1.0 - generate-function: 2.3.1 - iconv-lite: 0.6.3 - long: 5.2.3 - lru.min: 1.1.1 - named-placeholders: 1.1.3 - seq-queue: 0.0.5 - sqlstring: 2.3.3 - dev: false - /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -5030,17 +4743,6 @@ packages: thenify-all: 1.6.0 dev: true - /named-placeholders@1.1.3: - resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} - engines: {node: '>=12.0.0'} - dependencies: - lru-cache: 7.18.3 - dev: false - - /nan@2.20.0: - resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==} - dev: false - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -5050,18 +4752,6 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /needle@2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - dependencies: - debug: 3.2.7(supports-color@8.1.1) - iconv-lite: 0.4.24 - sax: 1.4.1 - transitivePeerDependencies: - - supports-color - dev: false - /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5077,80 +4767,10 @@ packages: engines: {node: '>= 6.13.0'} dev: false - /node-gyp@4.0.0: - resolution: {integrity: sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==} - engines: {node: '>= 4.0.0'} - hasBin: true - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - nopt: 3.0.6 - npmlog: 4.1.2 - osenv: 0.1.5 - request: 2.88.2 - rimraf: 2.7.1 - semver: 5.3.0 - tar: 4.4.19 - which: 1.3.1 - dev: false - - /node-pre-gyp@0.13.0: - resolution: {integrity: sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ==} - deprecated: 'Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future' - hasBin: true - dependencies: - detect-libc: 1.0.3 - mkdirp: 0.5.6 - needle: 2.9.1 - nopt: 4.0.3 - npm-packlist: 1.4.8 - npmlog: 4.1.2 - rc: 1.2.8 - rimraf: 2.7.1 - semver: 5.7.2 - tar: 4.4.19 - transitivePeerDependencies: - - supports-color - dev: false - /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true - /nodegit@0.27.0: - resolution: {integrity: sha512-E9K4gPjWiA0b3Tx5lfWCzG7Cvodi2idl3V5UD2fZrOrHikIfrN7Fc2kWLtMUqqomyoToYJLeIC8IV7xb1CYRLA==} - engines: {node: '>= 6'} - requiresBuild: true - dependencies: - fs-extra: 7.0.1 - got: 10.7.0 - json5: 2.2.3 - lodash: 4.17.21 - nan: 2.20.0 - node-gyp: 4.0.0 - node-pre-gyp: 0.13.0 - ramda: 0.25.0 - tar-fs: 1.16.3 - transitivePeerDependencies: - - supports-color - dev: false - - /nopt@3.0.6: - resolution: {integrity: sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: false - - /nopt@4.0.3: - resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==} - hasBin: true - dependencies: - abbrev: 1.1.1 - osenv: 0.1.5 - dev: false - /nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5179,24 +4799,6 @@ packages: engines: {node: '>=14.16'} dev: false - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: false - - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: false - - /npm-packlist@1.4.8: - resolution: {integrity: sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==} - dependencies: - ignore-walk: 3.0.4 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: false - /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -5209,31 +4811,12 @@ packages: dependencies: path-key: 4.0.0 - /npmlog@4.1.2: - resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==} - deprecated: This package is no longer supported. - dependencies: - are-we-there-yet: 1.1.7 - console-control-strings: 1.1.0 - gauge: 2.7.4 - set-blocking: 2.0.0 - dev: false - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: true - /number-is-nan@1.0.1: - resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} - engines: {node: '>=0.10.0'} - dev: false - - /oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - dev: false - /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5314,23 +4897,10 @@ packages: wcwidth: 1.0.1 dev: true - /os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} - engines: {node: '>=0.10.0'} - dev: false - /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - /osenv@0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} - deprecated: This package is no longer supported. - dependencies: - os-homedir: 1.0.2 - os-tmpdir: 1.0.2 - dev: false - /ospath@1.2.2: resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} dev: true @@ -5345,18 +4915,6 @@ packages: engines: {node: '>=12.20'} dev: false - /p-event@4.2.0: - resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} - engines: {node: '>=8'} - dependencies: - p-timeout: 3.2.0 - dev: false - - /p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - dev: false - /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5392,13 +4950,6 @@ packages: aggregate-error: 3.1.0 dev: true - /p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} - engines: {node: '>=8'} - dependencies: - p-finally: 1.0.0 - dev: false - /package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -5486,6 +5037,7 @@ packages: /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -5611,13 +5163,7 @@ packages: /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - /pump@1.0.3: - resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: false + dev: true /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -5628,6 +5174,7 @@ packages: /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + dev: true /pupa@3.1.0: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} @@ -5649,11 +5196,6 @@ packages: dependencies: side-channel: 1.0.5 - /qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - dev: false - /quasar@2.14.5: resolution: {integrity: sha512-N+iRYoby09P9l+R5nKfA0tCPXdXJJHCPifjP8CkL/JASX5yHEjuwh7KoNiWzYLZPbsYXVuQKqwtDy0qXuXTv2g==} engines: {node: '>= 10.18.1', npm: '>= 6.13.4', yarn: '>= 1.21.1'} @@ -5671,10 +5213,6 @@ packages: engines: {node: '>=10'} dev: false - /ramda@0.25.0: - resolution: {integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==} - dev: false - /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: @@ -5780,33 +5318,6 @@ packages: throttleit: 1.0.1 dev: true - /request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - dependencies: - aws-sign2: 0.7.0 - aws4: 1.12.0 - caseless: 0.12.0 - combined-stream: 1.0.8 - extend: 3.0.2 - forever-agent: 0.6.1 - form-data: 2.3.3 - har-validator: 5.1.5 - http-signature: 1.2.0 - is-typedarray: 1.0.0 - isstream: 0.1.2 - json-stringify-safe: 5.0.1 - mime-types: 2.1.35 - oauth-sign: 0.9.0 - performance-now: 2.1.0 - qs: 6.5.3 - safe-buffer: 5.2.1 - tough-cookie: 2.5.0 - tunnel-agent: 0.6.0 - uuid: 3.4.0 - dev: false - /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5817,12 +5328,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /require-yaml@0.0.1: - resolution: {integrity: sha512-M6eVEgLPRbeOhgSCnOTtdrOOEQzbXRchg24Xa13c39dMuraFKdI9emUo97Rih0YEFzSICmSKg8w4RQp+rd9pOQ==} - dependencies: - js-yaml: 4.1.0 - dev: false - /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -6004,10 +5509,6 @@ packages: resolution: {integrity: sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==} dev: true - /sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - dev: false - /selfsigned@2.4.1: resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} @@ -6023,16 +5524,6 @@ packages: semver: 7.6.0 dev: false - /semver@5.3.0: - resolution: {integrity: sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==} - hasBin: true - dev: false - - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - dev: false - /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6065,10 +5556,6 @@ packages: transitivePeerDependencies: - supports-color - /seq-queue@0.0.5: - resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} - dev: false - /serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: @@ -6086,10 +5573,6 @@ packages: transitivePeerDependencies: - supports-color - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false - /set-function-length@1.2.1: resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} engines: {node: '>= 0.4'} @@ -6104,14 +5587,6 @@ packages: /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - /sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: false - /shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -6192,11 +5667,6 @@ packages: engines: {node: '>= 10.x'} dev: true - /sqlstring@2.3.3: - resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} - engines: {node: '>= 0.6'} - dev: false - /sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} @@ -6211,6 +5681,7 @@ packages: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 + dev: true /stack-trace@1.0.0-pre2: resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} @@ -6229,15 +5700,6 @@ packages: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true - /string-width@1.0.2: - resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} - engines: {node: '>=0.10.0'} - dependencies: - code-point-at: 1.1.0 - is-fullwidth-code-point: 1.0.0 - strip-ansi: 3.0.1 - dev: false - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6265,13 +5727,6 @@ packages: safe-buffer: 5.2.1 dev: true - /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: 2.1.1 - dev: false - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -6339,6 +5794,7 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: true /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} @@ -6362,28 +5818,6 @@ packages: strip-ansi: 6.0.1 dev: true - /tar-fs@1.16.3: - resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==} - dependencies: - chownr: 1.1.4 - mkdirp: 0.5.6 - pump: 1.0.3 - tar-stream: 1.6.2 - dev: false - - /tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} - engines: {node: '>= 0.8.0'} - dependencies: - bl: 1.2.3 - buffer-alloc: 1.2.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - readable-stream: 2.3.8 - to-buffer: 1.1.1 - xtend: 4.0.2 - dev: false - /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -6395,19 +5829,6 @@ packages: readable-stream: 3.6.2 dev: true - /tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} - dependencies: - chownr: 1.1.4 - fs-minipass: 1.2.7 - minipass: 2.9.0 - minizlib: 1.3.3 - mkdirp: 0.5.6 - safe-buffer: 5.2.1 - yallist: 3.1.1 - dev: false - /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -6475,19 +5896,10 @@ packages: rimraf: 3.0.2 dev: true - /to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} - dev: false - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - /to-readable-stream@2.1.0: - resolution: {integrity: sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==} - engines: {node: '>=8'} - dev: false - /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6498,14 +5910,6 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - /tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - dependencies: - psl: 1.9.0 - punycode: 2.3.1 - dev: false - /tough-cookie@4.1.3: resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} @@ -6554,6 +5958,7 @@ packages: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 + dev: true /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} @@ -6562,6 +5967,7 @@ packages: /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -6575,11 +5981,6 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.10.0: - resolution: {integrity: sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==} - engines: {node: '>=8'} - dev: false - /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -6647,11 +6048,6 @@ packages: crypto-random-string: 4.0.0 dev: false - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: false - /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -6717,6 +6113,7 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 + dev: true /url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -6732,12 +6129,6 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - /uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: 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. - hasBin: true - dev: false - /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -6759,6 +6150,7 @@ packages: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.3.0 + dev: true /vite-jsconfig-paths@2.0.1(vite@5.1.4): resolution: {integrity: sha512-rabcTTfKs0MdAsQWcZjbIMo5fcp6jthZce7uFEPgVPgpSY+RNOwjzIJOPES6cB/GJZLSoLGfHM9kt5HNmJvp7A==} @@ -7092,13 +6484,6 @@ packages: engines: {node: '>=12'} dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -7115,12 +6500,6 @@ packages: stackback: 0.0.2 dev: true - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - dependencies: - string-width: 4.2.3 - dev: false - /widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -7180,11 +6559,6 @@ packages: engines: {node: '>=12'} dev: true - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -7194,10 +6568,6 @@ packages: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} dev: false - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false - /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index 67d299b8e..f4d695933 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -13,6 +13,6 @@ COPY salix/db db COPY salix/myt.config.yml . COPY salix/.git .git -COPY node_modules node_modules -# RUN pnpm i @verdnatura/myt USAR NODE_MODULES HASTA QUE ESTE LA RAMA DE MYT FUSIONADA (MIENTRAS INSTALAR EN LILIUM, MYT Y MODIFICAR EL CODIGO DE myt-run.js) +# COPY node_modules node_modules +RUN pnpm i @verdnatura/myt From a9fdd8cafd48534043cd4d0be9fc3dc56455ffd2 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 09:57:37 +0200 Subject: [PATCH 018/516] feat: refs #6695 jenkins run e2e remove ports --- docker-compose.e2e.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 62c0c10d9..f00e68aec 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -4,8 +4,6 @@ services: build: context: . dockerfile: ./Dockerfile.e2e - ports: - - 9000:9000 network_mode: host db: image: db From 764849ffd8852525299c8133f2dae2b24b9cea6b Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 10:02:26 +0200 Subject: [PATCH 019/516] feat: refs #6695 jenkins run e2e front deteach --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 231a210fa..57103e0fb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -110,7 +110,7 @@ pipeline { sh 'docker build -f salix/back/Dockerfile -t back ./salix' sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' } From 422d3428c5f7786f35edbfcf4ebf811c7f9abdf3 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 10:08:49 +0200 Subject: [PATCH 020/516] feat: refs #6695 jenkins run e2e rebuild --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 57103e0fb..a6c903eb7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -108,10 +108,10 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up db' + sh 'docker-compose -f docker-compose.e2e.yml up db --build' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - sh 'docker-compose -f docker-compose.e2e.yml up e2e --build' + sh 'docker-compose -f docker-compose.e2e.yml up -d front --build' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { From efcb70e74145e0ad42a4c6c97942e1e594ade751 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 10:30:46 +0200 Subject: [PATCH 021/516] feat: refs #6695 jenkins run e2e whitout rebuild --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a6c903eb7..65d83fdb3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -108,9 +108,9 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up db --build' + sh 'docker-compose -f docker-compose.e2e.yml up db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up -d front --build' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' sh 'docker-compose -f docker-compose.e2e.yml up e2e' } From 0f08e151bcc4e9f8ade3be66cf656e9d409d4a38 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 10:36:11 +0200 Subject: [PATCH 022/516] feat: refs #6695 jenkins run e2e rebuild --- Jenkinsfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 65d83fdb3..0f4099848 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -104,13 +104,17 @@ pipeline { // sh 'docker-compose -f docker-compose.yml up db' // sh 'docker run --name back $IMAGE:dev' sh 'rm -rf salix' + // sh 'docker rm -f back' + // sh 'docker rm -f db' + // sh 'docker rm -f front' + // sh 'docker rm -f e2e' sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up db' + sh 'docker-compose -f docker-compose.e2e.yml up --build db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' sh 'docker-compose -f docker-compose.e2e.yml up e2e' } From 3013da930d91839b0c1dc4d2680f47ad79663d1c Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 10:46:22 +0200 Subject: [PATCH 023/516] feat: refs #6695 jenkins run e2e try down and rm --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 0f4099848..72148d69b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -104,6 +104,8 @@ pipeline { // sh 'docker-compose -f docker-compose.yml up db' // sh 'docker run --name back $IMAGE:dev' sh 'rm -rf salix' + sh 'docker-compose down' + sh 'docker-compose rm' // sh 'docker rm -f back' // sh 'docker rm -f db' // sh 'docker rm -f front' From 154fc7d79eed8ee69d9c86a8f12a235de0c48a49 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 11:42:39 +0200 Subject: [PATCH 024/516] feat: refs #6695 jenkins run e2e try fix db --- test/cypress/db/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index f4d695933..a287b90f3 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -2,9 +2,10 @@ FROM node:lts-bookworm ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" +RUN apt-get update +RUN apt install libkrb5-dev libssl-dev RUN npm install -g pnpm@8.15.1 RUN pnpm setup -RUN apt install libkrb5-dev libssl-dev RUN npm i -g pnpm WORKDIR /salix From 99d0b0cb980f33659809e7c35fcfa48d8d98b8d5 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 11:53:16 +0200 Subject: [PATCH 025/516] feat(jenkinsE2E): refs #6695 try new sintax --- Jenkinsfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 72148d69b..3f06c9bb0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -114,10 +114,10 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up --build db' + sh 'docker compose -f docker-compose.e2e.yml up --build db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' + sh 'docker compose -f docker-compose.e2e.yml up -d --build front' + sh 'docker compose -f docker-compose.e2e.yml up e2e' } post { From 779bc29a9f9fd50405bd45abe71e701f0225b0e5 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 12:01:28 +0200 Subject: [PATCH 026/516] feat(jenkinsE2E): refs #6695 new image --- Jenkinsfile | 6 +++--- test/cypress/db/Dockerfile | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3f06c9bb0..72148d69b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -114,10 +114,10 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker compose -f docker-compose.e2e.yml up --build db' + sh 'docker-compose -f docker-compose.e2e.yml up --build db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker compose -f docker-compose.e2e.yml up -d --build front' - sh 'docker compose -f docker-compose.e2e.yml up e2e' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index a287b90f3..f481ab891 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -1,9 +1,10 @@ -FROM node:lts-bookworm +FROM node:20-bookworm-slim +ENV DEBIAN_FRONTEND=noninteractive ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN apt-get update -RUN apt install libkrb5-dev libssl-dev +RUN apt install -y libkrb5-dev libssl-dev RUN npm install -g pnpm@8.15.1 RUN pnpm setup RUN npm i -g pnpm From f7bc5f5aff66c023e4e0748a2c7000c61c74d549 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 12:26:07 +0200 Subject: [PATCH 027/516] feat(jenkinsE2E): refs #6695 new image --- test/cypress/db/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index f481ab891..10b9f3a52 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20-bookworm-slim +FROM node:20-bookworm ENV DEBIAN_FRONTEND=noninteractive ENV SHELL bash ENV PNPM_HOME="/pnpm" From e4b709013eaaca8bf83a614f0cde129a301bb9b6 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 13:51:21 +0200 Subject: [PATCH 028/516] feat(jenkinsE2E): refs #6695 try fix db --- Jenkinsfile | 4 +++- docker-compose.e2e.yml | 18 +++++++++--------- test/cypress/db/Dockerfile | 6 ++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 72148d69b..1c5dc0217 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -114,7 +114,9 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up --build db' + sh 'pnpm i @verdnatura/myt' + sh 'cd salix && npx myt run -t --ci -d -n front_default' + // sh 'docker-compose -f docker-compose.e2e.yml up --build db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' sh 'docker-compose -f docker-compose.e2e.yml up e2e' diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index f00e68aec..698479a1e 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -5,15 +5,15 @@ services: context: . dockerfile: ./Dockerfile.e2e network_mode: host - db: - image: db - command: npx myt run -t -d - build: - context: . - dockerfile: test/cypress/db/Dockerfile - volumes: - - /var/run/docker.sock:/var/run/docker.sock - network_mode: host + # db: + # image: db + # command: npx myt run -t --ci -d -n front_default + # build: + # context: . + # dockerfile: test/cypress/db/Dockerfile + # network_mode: host + # volumes: + # - /var/run/docker.sock:/var/run/docker.sock e2e: image: registry.verdnatura.es/salix-frontend:${VERSION:?} command: npx cypress run diff --git a/test/cypress/db/Dockerfile b/test/cypress/db/Dockerfile index 10b9f3a52..f4d695933 100644 --- a/test/cypress/db/Dockerfile +++ b/test/cypress/db/Dockerfile @@ -1,12 +1,10 @@ -FROM node:20-bookworm -ENV DEBIAN_FRONTEND=noninteractive +FROM node:lts-bookworm ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN apt-get update -RUN apt install -y libkrb5-dev libssl-dev RUN npm install -g pnpm@8.15.1 RUN pnpm setup +RUN apt install libkrb5-dev libssl-dev RUN npm i -g pnpm WORKDIR /salix From 8985d04d6297895f273e147bf03dbc8b740ee531 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 13:53:45 +0200 Subject: [PATCH 029/516] feat(jenkinsE2E): refs #6695 try fix db --- Jenkinsfile | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1c5dc0217..433de1d17 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -64,25 +64,26 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('Test') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - NODE_ENV = "" - } - steps { - sh 'pnpm run test:unit:ci' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } - } - } + // UNCOMMENT ME! + // stage('Test') { + // when { + // expression { !PROTECTED_BRANCH } + // } + // environment { + // NODE_ENV = "" + // } + // steps { + // sh 'pnpm run test:unit:ci' + // } + // post { + // always { + // junit( + // testResults: 'junitresults.xml', + // allowEmptyResults: true + // ) + // } + // } + // } stage('E2E') { when { expression { !PROTECTED_BRANCH } @@ -114,11 +115,11 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' sh 'docker build -f salix/back/Dockerfile -t back ./salix' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' sh 'pnpm i @verdnatura/myt' sh 'cd salix && npx myt run -t --ci -d -n front_default' // sh 'docker-compose -f docker-compose.e2e.yml up --build db' sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' sh 'docker-compose -f docker-compose.e2e.yml up e2e' } From b52b98f3d7c2c004ffe871e7f68836ec9894eff8 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 7 Oct 2024 13:56:40 +0200 Subject: [PATCH 030/516] feat(jenkinsE2E): refs #6695 try fix db --- docker-compose.e2e.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 698479a1e..82b6fb3d9 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -5,6 +5,13 @@ services: context: . dockerfile: ./Dockerfile.e2e network_mode: host + e2e: + image: registry.verdnatura.es/salix-frontend:${VERSION:?} + command: npx cypress run + build: + context: . + dockerfile: ./Dockerfile.e2e + network_mode: host # db: # image: db # command: npx myt run -t --ci -d -n front_default @@ -14,13 +21,7 @@ services: # network_mode: host # volumes: # - /var/run/docker.sock:/var/run/docker.sock - e2e: - image: registry.verdnatura.es/salix-frontend:${VERSION:?} - command: npx cypress run - build: - context: . - dockerfile: ./Dockerfile.e2e - network_mode: host + # back: # image: back # build: From c3fa4839c0ddeca09800d356ba51b9de5ddf1d41 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 21 Oct 2024 11:34:39 +0200 Subject: [PATCH 031/516] feat: refs #6695 run front --- Dockerfile | 2 +- Jenkinsfile | 14 +++++++------- docker-compose.e2e.yml | 3 ++- e2e.sh | 16 +++++++++------- proxy.mjs | 6 ++++++ quasar.config.js | 2 +- 6 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 proxy.mjs diff --git a/Dockerfile b/Dockerfile index 1906dc920..6f6c43e5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,5 +2,5 @@ FROM node:stretch-slim RUN corepack enable pnpm RUN pnpm install -g @quasar/cli WORKDIR /app -COPY dist/spa ./ +COPY dist/spa proxy.mjs ./ CMD ["quasar", "serve", "./", "--history", "--hostname", "0.0.0.0"] diff --git a/Jenkinsfile b/Jenkinsfile index 433de1d17..e0e27524b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -114,13 +114,13 @@ pipeline { sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' - sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - sh 'pnpm i @verdnatura/myt' - sh 'cd salix && npx myt run -t --ci -d -n front_default' - // sh 'docker-compose -f docker-compose.e2e.yml up --build db' - sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' + // sh 'docker build -f salix/back/Dockerfile -t back ./salix' + sh 'docker-compose -f docker-compose.e2e.yml up front --build' + // sh 'pnpm i @verdnatura/myt' + // sh 'cd salix && npx myt run -t --ci -d -n front_default' + // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' + // sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' + // sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 82b6fb3d9..6b36bf486 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -1,9 +1,10 @@ services: front: image: registry.verdnatura.es/salix-frontend:${VERSION:?} + command: quasar serve --history --proxy ./proxy.mjs --hostname localhost --port 9000 build: context: . - dockerfile: ./Dockerfile.e2e + dockerfile: ./Dockerfile network_mode: host e2e: image: registry.verdnatura.es/salix-frontend:${VERSION:?} diff --git a/e2e.sh b/e2e.sh index 1ca5fcf38..67b6ce035 100644 --- a/e2e.sh +++ b/e2e.sh @@ -1,11 +1,13 @@ git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git cd front -# export VERSION=e2e-try -docker buildx build -f salix/back/Dockerfile -t back ./salix -docker-compose -f docker-compose.e2e.yml up db -docker run --net=host -v ./test/cypress/storage:/salix/storage -d back -docker-compose -f docker-compose.e2e.yml -d up front +export VERSION=e2e-try +# docker buildx build -f salix/back/Dockerfile -t back ./salix +# pnpm i @verdnatura/myt +# cd salix && npx myt run -t --ci -d -n front_default +# docker run --net=host -v ./test/cypress/storage:/salix/storage -d back +# docker-compose -f docker-compose.e2e.yml -d up front +# docker-compose -f docker-compose.e2e.yml up e2e --build + +docker-compose -f docker-compose.e2e.yml up front --build -d docker-compose -f docker-compose.e2e.yml up e2e --build - - diff --git a/proxy.mjs b/proxy.mjs new file mode 100644 index 000000000..378368dd4 --- /dev/null +++ b/proxy.mjs @@ -0,0 +1,6 @@ +export default [ + { + path: '/api', + rule: { target: 'http://localhost:3000' }, + }, +]; diff --git a/quasar.config.js b/quasar.config.js index 822f62e1d..e6445310c 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -109,7 +109,7 @@ module.exports = configure(function (/* ctx */) { }, proxy: { '/api': { - target: 'http://back:3000', + target: 'http://localhost:3000', logLevel: 'debug', changeOrigin: true, secure: false, From 358c62451156c5edd729107571e08819b7ac18cd Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 21 Oct 2024 11:36:22 +0200 Subject: [PATCH 032/516] feat: refs #6695 run front --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e0e27524b..ab016ef7e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,7 +115,7 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up front --build' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' From f40e5f6cdf168656bc2899e8d4f5519f75307b46 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 21 Oct 2024 11:36:41 +0200 Subject: [PATCH 033/516] feat: refs #6695 run front --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ab016ef7e..27e076436 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,7 +115,7 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + sh 'docker-compose -f docker-compose.e2e.yml up --build front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' From f558c4db87baafd08babe47f31bec92ea95dbb6c Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 21 Oct 2024 11:38:24 +0200 Subject: [PATCH 034/516] feat: refs #6695 run front quasar build --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 27e076436..af6b5a6cc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,6 +115,7 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' + sh 'quasar build' sh 'docker-compose -f docker-compose.e2e.yml up --build front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' From 6b06ccd3ff801ef76f7c936bdbac50beb86134d4 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 21 Oct 2024 11:45:27 +0200 Subject: [PATCH 035/516] feat: refs #6695 run front --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index af6b5a6cc..b88300ba7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -116,7 +116,8 @@ pipeline { // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml up --build front' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' From 9aeaac7648eb65753ee4fe3dd9bca98442bc295b Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 25 Oct 2024 09:26:06 +0200 Subject: [PATCH 036/516] chore: refs #6695 try use docker compose --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b88300ba7..f357eb530 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -116,8 +116,8 @@ pipeline { // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'docker compose -f docker-compose.e2e.yml build front' + sh 'docker compose -f docker-compose.e2e.yml up front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' From 9c6c37997722325b89183d08bf3245783b89d90c Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 25 Oct 2024 09:29:02 +0200 Subject: [PATCH 037/516] chore: refs #6695 get docker compose version --- Jenkinsfile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f357eb530..f03627e4e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,9 +115,10 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'quasar build' - sh 'docker compose -f docker-compose.e2e.yml build front' - sh 'docker compose -f docker-compose.e2e.yml up front' + sh 'docker compose version' + // // // sh 'quasar build' + // // // sh 'docker compose -f docker-compose.e2e.yml build front' + // // // sh 'docker compose -f docker-compose.e2e.yml up front' // sh 'pnpm i @verdnatura/myt' // sh 'cd salix && npx myt run -t --ci -d -n front_default' // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' From e10ee60f6295c0ced463d25b7446513ac9252d44 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 25 Oct 2024 09:31:08 +0200 Subject: [PATCH 038/516] chore: refs #6695 get docker compose version --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index f03627e4e..f5f334450 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -115,7 +115,7 @@ pipeline { // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker compose version' + sh 'docker-compose version' // // // sh 'quasar build' // // // sh 'docker compose -f docker-compose.e2e.yml build front' // // // sh 'docker compose -f docker-compose.e2e.yml up front' From e9a9c4bcef732f745e2b5ad5ab9a219175dc7fda Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 12 Dec 2024 10:26:52 +0100 Subject: [PATCH 042/516] fix: refs #6695 e2e.sh --- Dockerfile.e2e | 2 +- e2e.sh | 28 ++++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index c3078d319..d6634a684 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -41,4 +41,4 @@ COPY public public # RUN npx quasar build -CMD ["npx", "quasar", "dev"] +CMD ["npx", "cypress", "run"] diff --git a/e2e.sh b/e2e.sh index 67b6ce035..e231906c2 100644 --- a/e2e.sh +++ b/e2e.sh @@ -1,10 +1,30 @@ git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git cd front export VERSION=e2e-try -# docker buildx build -f salix/back/Dockerfile -t back ./salix -# pnpm i @verdnatura/myt -# cd salix && npx myt run -t --ci -d -n front_default -# docker run --net=host -v ./test/cypress/storage:/salix/storage -d back +export SHELL=/bin/sh +export ENV=~/.profile +touch ~/.profile +apk add --no-cache curl +apk add --no-cache ca-certificates +update-ca-certificates +curl -fsSL https://nodejs.org/dist/v20.18.1/node-v20.18.1.tar.gz -o node.tar.gz +tar -xzf node.tar.gz -C /usr/local --strip-components=1 +apk add --no-cache python3 make gcc g++ libgcc libstdc++ linux-headers musl-dev +./configure +make -j$(nproc) +make install + +curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=8.15.1 sh - + +# DB +pnpm i @verdnatura/myt +cd salix && npx myt run -t --ci -d -n front_default + +# Back +docker buildx build -f salix/back/Dockerfile -t back ./salix +docker run --net=host -v ./test/cypress/storage:/salix/storage -d back + + # docker-compose -f docker-compose.e2e.yml -d up front # docker-compose -f docker-compose.e2e.yml up e2e --build From 68015056ab3c586bf61efafebb2376670632d7f5 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 28 Jan 2025 08:41:20 +0100 Subject: [PATCH 043/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index aec80e782..0ab08638e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -91,8 +91,8 @@ pipeline { expression { !PROTECTED_BRANCH } } environment { - CREDENTIALS = credentials('docker-registry') - IMAGE = "$REGISTRY/salix-back" + // CREDENTIALS = credentials('docker-registry') + // IMAGE = "$REGISTRY/salix-back" } steps { script { @@ -109,15 +109,16 @@ pipeline { sh 'rm -rf salix' sh 'docker-compose down' sh 'docker-compose rm' + sh 'docker-compose -f docker-compose.e2e.yml up front --build' // sh 'docker rm -f back' // sh 'docker rm -f db' // sh 'docker rm -f front' // sh 'docker rm -f e2e' - sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' + // sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' // sh 'cd front' // sh '# export VERSION=e2e-try' // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - sh 'docker-compose version' + // sh 'docker-compose version' // // // sh 'quasar build' // // // sh 'docker compose -f docker-compose.e2e.yml build front' // // // sh 'docker compose -f docker-compose.e2e.yml up front' From 813f5e9331474c9ac440bfe686c94fe3cd3c86d7 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 28 Jan 2025 08:42:46 +0100 Subject: [PATCH 044/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0ab08638e..fe7a3bf15 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -90,10 +90,10 @@ pipeline { when { expression { !PROTECTED_BRANCH } } - environment { - // CREDENTIALS = credentials('docker-registry') - // IMAGE = "$REGISTRY/salix-back" - } + // environment { + // // CREDENTIALS = credentials('docker-registry') + // // IMAGE = "$REGISTRY/salix-back" + // } steps { script { def packageJson = readJSON file: 'package.json' From 1f35adeb30744eb7b8b68c6b78814b6e16977531 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 28 Jan 2025 11:42:09 +0100 Subject: [PATCH 045/516] fix: refs #6695 dockerFile --- Dockerfile.e2e | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index d6634a684..109ec5d3e 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -29,8 +29,8 @@ COPY \ index.html \ jsconfig.json \ quasar.extensions.json \ - .eslintignore \ - .eslintrc.cjs \ + # .eslintignore \ + # .eslintrc.js \ postcss.config.js \ cypress.config.js \ ./ From 413891ce10d7e6a17a314628cafa3f99f5e6b61c Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 07:29:30 +0100 Subject: [PATCH 046/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index fe7a3bf15..139d4a46c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -106,6 +106,7 @@ pipeline { // sh 'docker-compose -f docker-compose.yml build db' // sh 'docker-compose -f docker-compose.yml up db' // sh 'docker run --name back $IMAGE:dev' + sh 'export VERSION=e2e-try' sh 'rm -rf salix' sh 'docker-compose down' sh 'docker-compose rm' From 38b8a1322525bca8d5fe96a881b3f98108f50b93 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 07:34:37 +0100 Subject: [PATCH 047/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 51 ++++++++++----------------------------------------- 1 file changed, 10 insertions(+), 41 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 139d4a46c..eb7c49543 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,7 +66,6 @@ pipeline { sh 'pnpm install --prefer-offline' } } - // UNCOMMENT ME! // stage('Test') { // when { // expression { !PROTECTED_BRANCH } @@ -90,47 +89,17 @@ pipeline { when { expression { !PROTECTED_BRANCH } } - // environment { - // // CREDENTIALS = credentials('docker-registry') - // // IMAGE = "$REGISTRY/salix-back" - // } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-e2e${env.BUILD_ID}" - } - // // sh 'docker pull $IMAGE:dev' - // sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - // // sh 'docker ps -a' - // sh 'docker network create salix_default' - // sh 'docker-compose -f docker-compose.yml build db' - // sh 'docker-compose -f docker-compose.yml up db' - // sh 'docker run --name back $IMAGE:dev' - sh 'export VERSION=e2e-try' - sh 'rm -rf salix' - sh 'docker-compose down' - sh 'docker-compose rm' - sh 'docker-compose -f docker-compose.e2e.yml up front --build' - // sh 'docker rm -f back' - // sh 'docker rm -f db' - // sh 'docker rm -f front' - // sh 'docker rm -f e2e' - // sh 'git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git' - // sh 'cd front' - // sh '# export VERSION=e2e-try' - // sh 'docker build -f salix/back/Dockerfile -t back ./salix' - // sh 'docker-compose version' - // // // sh 'quasar build' - // // // sh 'docker compose -f docker-compose.e2e.yml build front' - // // // sh 'docker compose -f docker-compose.e2e.yml up front' - // sh 'pnpm i @verdnatura/myt' - // sh 'cd salix && npx myt run -t --ci -d -n front_default' - // // sh 'docker-compose -f docker-compose.e2e.yml up --build db' - // sh 'docker run --net=host -v ./test/cypress/storage:/salix/storage -d back' - // sh 'docker-compose -f docker-compose.e2e.yml up e2e' - + environment { + NODE_ENV = "" } - post { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + steps { + sh 'docker-compose -f docker-compose.e2e.yml up front --build' + } + post { always { junit( testResults: 'junitresults.xml', From ed9f21170eb6bad52c74860d4a4e93a4328ea17f Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 07:37:11 +0100 Subject: [PATCH 048/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index eb7c49543..d176d5eb2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,25 +66,6 @@ pipeline { sh 'pnpm install --prefer-offline' } } - // stage('Test') { - // when { - // expression { !PROTECTED_BRANCH } - // } - // environment { - // NODE_ENV = "" - // } - // steps { - // sh 'pnpm run test:unit:ci' - // } - // post { - // always { - // junit( - // testResults: 'junitresults.xml', - // allowEmptyResults: true - // ) - // } - // } - // } stage('E2E') { when { expression { !PROTECTED_BRANCH } @@ -92,11 +73,11 @@ pipeline { environment { NODE_ENV = "" } - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - } steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } sh 'docker-compose -f docker-compose.e2e.yml up front --build' } post { From a2dd8a7d8751566a2ee2ba1e58452cb394c5373d Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 07:38:54 +0100 Subject: [PATCH 049/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d176d5eb2..f1b1b5036 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,7 +78,9 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - sh 'docker-compose -f docker-compose.e2e.yml up front --build' + sh 'export VERSION=e2e-try' + sh 'docker compose -f docker-compose.e2e.yml build front' + sh 'docker compose -f docker-compose.e2e.yml up front' } post { always { From 9b80f4023e1a149a7eef2e434dd8d787153adb3f Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 07:46:50 +0100 Subject: [PATCH 050/516] build: refs #6695 try e2e jenkins --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f1b1b5036..ab3e4e567 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,8 +79,8 @@ pipeline { env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } sh 'export VERSION=e2e-try' - sh 'docker compose -f docker-compose.e2e.yml build front' - sh 'docker compose -f docker-compose.e2e.yml up front' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up front' } post { always { From 144d1fe620334bae026c5acf9e10b267e071fce3 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:17:55 +0100 Subject: [PATCH 051/516] build: refs #6695 try run front --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ab3e4e567..6fc9bd0d3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -71,7 +71,7 @@ pipeline { expression { !PROTECTED_BRANCH } } environment { - NODE_ENV = "" + CREDENTIALS = credentials('docker-registry') } steps { script { From f5b56ff5d453f6170deed50069483331432081aa Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:21:19 +0100 Subject: [PATCH 052/516] build: refs #6695 try run front --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6fc9bd0d3..ad368eef2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,7 +78,8 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - sh 'export VERSION=e2e-try' + // sh 'export VERSION=e2e-try' + sh "echo VERSION=${env.VERSION}" sh 'docker-compose -f docker-compose.e2e.yml build front' sh 'docker-compose -f docker-compose.e2e.yml up front' } From 89b0791da3c74801bbc422e24885cdf7f810eba5 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:23:36 +0100 Subject: [PATCH 053/516] build: refs #6695 try run front --- Jenkinsfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ad368eef2..aae840103 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,16 +72,14 @@ pipeline { } environment { CREDENTIALS = credentials('docker-registry') + IMAGE = "$REGISTRY/salix-back" } steps { script { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - // sh 'export VERSION=e2e-try' - sh "echo VERSION=${env.VERSION}" - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'docker-compose -f docker-compose.e2e.yml up front --build' } post { always { From d635be0e9738d0cebc7a3907ee6041d46c1e8e84 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:26:25 +0100 Subject: [PATCH 054/516] build: refs #6695 try run front --- Jenkinsfile | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index aae840103..80d629bdd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -74,12 +74,15 @@ pipeline { CREDENTIALS = credentials('docker-registry') IMAGE = "$REGISTRY/salix-back" } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - } - sh 'docker-compose -f docker-compose.e2e.yml up front --build' + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + sh """ + export VERSION=${env.VERSION} + docker-compose -f docker-compose.e2e.yml up front --build + """ } post { always { From 539a452137cf81ec11128fa357c037e671db967e Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:27:56 +0100 Subject: [PATCH 055/516] build: refs #6695 try run front --- docker-compose.e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 6b36bf486..a92bc6bdc 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -1,6 +1,6 @@ services: front: - image: registry.verdnatura.es/salix-frontend:${VERSION:?} + image: $REGISTRY/salix-frontend:$VERSION command: quasar serve --history --proxy ./proxy.mjs --hostname localhost --port 9000 build: context: . From 9803d65415d78b27472cc5be9fe1b2eb20d7db89 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:29:35 +0100 Subject: [PATCH 056/516] build: refs #6695 try run front --- docker-compose.e2e.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index a92bc6bdc..7bf6576bb 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -1,6 +1,7 @@ +version: '3.7' services: front: - image: $REGISTRY/salix-frontend:$VERSION + image: registry.verdnatura.es/salix-frontend:${VERSION:?} command: quasar serve --history --proxy ./proxy.mjs --hostname localhost --port 9000 build: context: . From 04fe560a7b4d4c9e29bd2fb72f31bcc5ee51f3a6 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:31:38 +0100 Subject: [PATCH 057/516] build: refs #6695 try run front --- Jenkinsfile | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 80d629bdd..71418bab4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,17 +72,16 @@ pipeline { } environment { CREDENTIALS = credentials('docker-registry') - IMAGE = "$REGISTRY/salix-back" } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - } - sh """ - export VERSION=${env.VERSION} - docker-compose -f docker-compose.e2e.yml up front --build - """ + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + sh "echo VERSION=${env.VERSION}" + sh 'docker-compose --version' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up front' } post { always { From ce19a9875117664f58e3ddc1d9bc4dc248863772 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 08:38:07 +0100 Subject: [PATCH 058/516] build: refs #6695 try run front --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 71418bab4..16db79e96 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,8 +78,7 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - sh "echo VERSION=${env.VERSION}" - sh 'docker-compose --version' + sh 'quasar build' sh 'docker-compose -f docker-compose.e2e.yml build front' sh 'docker-compose -f docker-compose.e2e.yml up front' } From ba49d0364703b3b2833b2b641c7968604c6d8439 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 29 Jan 2025 11:50:30 +0100 Subject: [PATCH 059/516] fix: refs #6695 storage --- e2e.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e.sh b/e2e.sh index e231906c2..f9b75f4c9 100644 --- a/e2e.sh +++ b/e2e.sh @@ -22,7 +22,7 @@ cd salix && npx myt run -t --ci -d -n front_default # Back docker buildx build -f salix/back/Dockerfile -t back ./salix -docker run --net=host -v ./test/cypress/storage:/salix/storage -d back +docker run --net=host -v $(pwd)/test/cypress/storage:/salix/storage -d back # docker-compose -f docker-compose.e2e.yml -d up front From b43ab0f9c20b34c9038b37ecc548194871b3d3b8 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 08:55:18 +0100 Subject: [PATCH 060/516] build: refs #6695 try run db --- Jenkinsfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 16db79e96..0ff12180a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,9 +78,11 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up front' + // sh 'quasar build' + // sh 'docker-compose -f docker-compose.e2e.yml build front' + // sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'pnpm i @verdnatura/myt' + sh 'npx myt run -t -d' } post { always { From bcfe5556f7c4937b1e3b4abe96b0be43a0726fe2 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 09:46:32 +0100 Subject: [PATCH 061/516] build: refs #6695 try run db --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 0ff12180a..8cf7cf2e6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,6 +81,7 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git && cd salix' sh 'pnpm i @verdnatura/myt' sh 'npx myt run -t -d' } From 96f0c470f9bbb76d03094e4d33077d11931d6d69 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 12:19:28 +0100 Subject: [PATCH 062/516] build: refs #6695 try run db --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8cf7cf2e6..7a1fd65a3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -84,6 +84,7 @@ pipeline { sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git && cd salix' sh 'pnpm i @verdnatura/myt' sh 'npx myt run -t -d' + } post { always { From b7cc5fdce2d4d2d7fba67fffa942a04b6111b4ec Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 12:20:26 +0100 Subject: [PATCH 063/516] build: refs #6695 try run db --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 7a1fd65a3..dfc605337 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,6 +81,7 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git && cd salix' sh 'pnpm i @verdnatura/myt' sh 'npx myt run -t -d' From ff08b44b3f3b323a282a64d424de461aa85c3e21 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 12:23:40 +0100 Subject: [PATCH 064/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index dfc605337..9d8b89362 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,9 +83,9 @@ pipeline { // sh 'docker-compose -f docker-compose.e2e.yml up front' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git && cd salix' + sh 'ls' sh 'pnpm i @verdnatura/myt' sh 'npx myt run -t -d' - } post { always { From cfde6e508f48aad355724c21e00aa07a33129c75 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 12:25:33 +0100 Subject: [PATCH 065/516] build: refs #6695 try run db --- Jenkinsfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9d8b89362..a6784e911 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -82,10 +82,8 @@ pipeline { // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git && cd salix' - sh 'ls' - sh 'pnpm i @verdnatura/myt' - sh 'npx myt run -t -d' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + sh 'cd salix && && pnpm i @verdnatura/mytnpx myt run -t -d' } post { always { From 7ebb27a2173708db6978e39854436237cd802137 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 12:26:25 +0100 Subject: [PATCH 066/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a6784e911..d22d42ca1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,7 +83,7 @@ pipeline { // sh 'docker-compose -f docker-compose.e2e.yml up front' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd salix && && pnpm i @verdnatura/mytnpx myt run -t -d' + sh 'cd salix && pnpm i @verdnatura/myt && npx myt run -t -d' } post { always { From 712d23b6329991bb588756db759947c9058bc018 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 13:58:44 +0100 Subject: [PATCH 067/516] build: refs #6695 try run db --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index d22d42ca1..e40e4a2be 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -84,6 +84,12 @@ pipeline { sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i @verdnatura/myt && npx myt run -t -d' + sh 'docker-compose -f salix/docker-compose.yml build back && \ + docker-compose -f salix/docker-compose.yml run -d --service-ports \ + --network e2e_network \ + -v $(pwd)/test/cypress/storage:/salix/storage \ + back + ' } post { always { From a85cc20603bcbed3e28ad7f0e66c20dfc8c80536 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 13:59:50 +0100 Subject: [PATCH 068/516] build: refs #6695 try run db --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e40e4a2be..2053f3d79 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -88,8 +88,7 @@ pipeline { docker-compose -f salix/docker-compose.yml run -d --service-ports \ --network e2e_network \ -v $(pwd)/test/cypress/storage:/salix/storage \ - back - ' + back' } post { always { From eacb240d56411781f615a6c68aab2c4035e59ef5 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:10:19 +0100 Subject: [PATCH 069/516] build: refs #6695 try run db --- Jenkinsfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2053f3d79..f930925e1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,12 +83,9 @@ pipeline { // sh 'docker-compose -f docker-compose.e2e.yml up front' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd salix && pnpm i @verdnatura/myt && npx myt run -t -d' - sh 'docker-compose -f salix/docker-compose.yml build back && \ - docker-compose -f salix/docker-compose.yml run -d --service-ports \ - --network e2e_network \ - -v $(pwd)/test/cypress/storage:/salix/storage \ - back' + sh 'cd salix && pnpm i --offline @verdnatura/myt && npx myt run -t -d -n e2e_default' + sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' + sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } post { always { From c95708d359433c63fcdbfb2eb104638bd4fd9586 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:13:36 +0100 Subject: [PATCH 070/516] build: refs #6695 try run db --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index f930925e1..b1e9f0b2c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,6 +81,8 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' + sh 'docker network rm e2e_default' + sh 'docker network create e2e_default' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --offline @verdnatura/myt && npx myt run -t -d -n e2e_default' From 1082d62a7fa88e01ac683227b7ca7e5ff7946b23 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:16:06 +0100 Subject: [PATCH 071/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b1e9f0b2c..b79b142c3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,7 +81,7 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' - sh 'docker network rm e2e_default' + sh 'docker network ls --filter name=^e2e_default$ --format '{{.Name}}' | grep -q e2e_default && docker network rm e2e_default' sh 'docker network create e2e_default' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' From 7db0950535eb5c6b2b32075b3f70d28448cdd2ed Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:17:18 +0100 Subject: [PATCH 072/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b79b142c3..d5531f5da 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,7 +81,7 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' - sh 'docker network ls --filter name=^e2e_default$ --format '{{.Name}}' | grep -q e2e_default && docker network rm e2e_default' + sh 'docker network ls --filter name=^e2e_default$ --format \'{{.Name}}\' | grep -q e2e_default && docker network rm e2e_default' sh 'docker network create e2e_default' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' From 8cfc0770e10017025dca9bf0ffe53ae3e5c2780c Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:18:23 +0100 Subject: [PATCH 073/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index d5531f5da..cee69b0d0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,7 +81,7 @@ pipeline { // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' - sh 'docker network ls --filter name=^e2e_default$ --format \'{{.Name}}\' | grep -q e2e_default && docker network rm e2e_default' + sh "docker network rm e2e_default || true" sh 'docker network create e2e_default' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' From ab5570355019e1f712873338d3e3c76337b28081 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:19:56 +0100 Subject: [PATCH 074/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index cee69b0d0..6c02bf9f0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,7 +86,7 @@ pipeline { sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --offline @verdnatura/myt && npx myt run -t -d -n e2e_default' - sh 'docker buildx build -f salix/back/Dockerfile -t back ./salix' + sh 'docker buildx build --file salix/back/Dockerfile -t back ./salix' sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } post { From b4c56d0dbb9c9d4d344abd67e6c93bed82b9cc26 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:20:39 +0100 Subject: [PATCH 075/516] build: refs #6695 try run db --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6c02bf9f0..b799da595 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -82,7 +82,7 @@ pipeline { // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' sh "docker network rm e2e_default || true" - sh 'docker network create e2e_default' + sh 'docker network create e2e_default || true' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --offline @verdnatura/myt && npx myt run -t -d -n e2e_default' From 87eeacfcfb930eeef4552858a4f2c54069e7c2ba Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:22:02 +0100 Subject: [PATCH 076/516] build: refs #6695 try run db --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b799da595..58a0fc59f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -85,7 +85,8 @@ pipeline { sh 'docker network create e2e_default || true' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd salix && pnpm i --offline @verdnatura/myt && npx myt run -t -d -n e2e_default' + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d -n e2e_default' + sh 'docker version' sh 'docker buildx build --file salix/back/Dockerfile -t back ./salix' sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } From 1d435d1816d8c08f8bb140b884938853116d2d86 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:24:51 +0100 Subject: [PATCH 077/516] build: refs #6695 try run db --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 58a0fc59f..a3cb587a1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,8 +86,8 @@ pipeline { sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d -n e2e_default' - sh 'docker version' - sh 'docker buildx build --file salix/back/Dockerfile -t back ./salix' + sh 'docker buildx version' + sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } post { From 321c6b46a70dd9b92922e7a1bbe55fa7d093625b Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:26:00 +0100 Subject: [PATCH 078/516] build: refs #6695 try run db --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a3cb587a1..e3fcd302c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,7 +86,6 @@ pipeline { sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d -n e2e_default' - sh 'docker buildx version' sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } From ff625f683a8a3f1762bfc92e4e1852276bf8bd13 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:31:06 +0100 Subject: [PATCH 079/516] build: refs #6695 try run db --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index e3fcd302c..ef08a3d89 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -86,7 +86,8 @@ pipeline { sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d -n e2e_default' - sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + // sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' } post { From 6033ff4790699f7b0f74baf4f924a96bb8b81d79 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 14:50:53 +0100 Subject: [PATCH 080/516] build: refs #6695 try run db --- Jenkinsfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ef08a3d89..adff4c85f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,17 +78,19 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } + // sh 'quasar build' // sh 'docker-compose -f docker-compose.e2e.yml build front' // sh 'docker-compose -f docker-compose.e2e.yml up front' - sh "docker network rm e2e_default || true" - sh 'docker network create e2e_default || true' + + // sh "docker network rm e2e_default || true" + // sh 'docker network create e2e_default || true' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d -n e2e_default' + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' // sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' - sh 'docker run --net=e2e_default -v $(pwd)/test/cypress/storage:/salix/storage back' + sh 'docker run --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' } post { always { From ba68907f4248489f075696682f3c9d9681067494 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 30 Jan 2025 15:07:59 +0100 Subject: [PATCH 081/516] build: refs #6695 try run db back front --- Jenkinsfile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index adff4c85f..a77e7a731 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,18 +79,20 @@ pipeline { env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - // sh 'quasar build' - // sh 'docker-compose -f docker-compose.e2e.yml build front' - // sh 'docker-compose -f docker-compose.e2e.yml up front' // sh "docker network rm e2e_default || true" // sh 'docker network create e2e_default || true' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + // Db sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + // Backend sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - // sh 'docker buildx build --tag back -f salix/back/Dockerfile ./salix' - sh 'docker run --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + sh 'docker run -d --name salix --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + // Frontend + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' } post { always { From 2e793164ec9580441240ff7f59139c100addbc36 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 07:52:54 +0100 Subject: [PATCH 082/516] build: refs #6695 try run e2e --- Jenkinsfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a77e7a731..4e8cf8a26 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,8 +78,6 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - - // sh "docker network rm e2e_default || true" // sh 'docker network create e2e_default || true' sh 'rm -rf salix' @@ -93,6 +91,9 @@ pipeline { sh 'quasar build' sh 'docker-compose -f docker-compose.e2e.yml build front' sh 'docker-compose -f docker-compose.e2e.yml up -d front' + // E2E + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { always { From d9602307c99d2e57d3313afc73634d4211060dc1 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:07:41 +0100 Subject: [PATCH 083/516] feat: refs #6695 better stages for e2e --- Jenkinsfile | 56 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4e8cf8a26..9527003e3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -73,27 +73,43 @@ pipeline { environment { CREDENTIALS = credentials('docker-registry') } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + stages { + stage('Network') { + steps { + // sh "docker network rm e2e_default || true" + // sh 'docker network create e2e_default || true' + } + } + stage('DB') { + steps { + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + } + } + stage('Back') { + steps { + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Front') { + steps { + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' + } + } + stage('Test') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + } } - // sh "docker network rm e2e_default || true" - // sh 'docker network create e2e_default || true' - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - // Db - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - // Backend - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - // Frontend - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - // E2E - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { always { From 502b55a8ce7adc30228dc8885349bf9be383b94c Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:08:34 +0100 Subject: [PATCH 084/516] feat: refs #6695 better stages for e2e --- Jenkinsfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9527003e3..2c06f651a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,12 +78,12 @@ pipeline { env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } stages { - stage('Network') { - steps { - // sh "docker network rm e2e_default || true" - // sh 'docker network create e2e_default || true' - } - } + // stage('Network') { + // steps { + // // sh "docker network rm e2e_default || true" + // // sh 'docker network create e2e_default || true' + // } + // } stage('DB') { steps { sh 'rm -rf salix' From ddf8238914c0c682a044c8ab9795ca7365985335 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:10:32 +0100 Subject: [PATCH 085/516] feat: refs #6695 better stages for e2e --- Jenkinsfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2c06f651a..01fff9e2f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -73,9 +73,11 @@ pipeline { environment { CREDENTIALS = credentials('docker-registry') } - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } } stages { // stage('Network') { From 9f3a7aa452b0f1914631609ba632536500f0ee31 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:16:02 +0100 Subject: [PATCH 086/516] feat: refs #6695 better stages for e2e --- Jenkinsfile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 01fff9e2f..2b7c51f97 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -73,12 +73,6 @@ pipeline { environment { CREDENTIALS = credentials('docker-registry') } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - } - } stages { // stage('Network') { // steps { @@ -86,6 +80,14 @@ pipeline { // // sh 'docker network create e2e_default || true' // } // } + stage('Setup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + } + } stage('DB') { steps { sh 'rm -rf salix' From 0724e768ee5ea2e7d39d8e394c7b59b954ca2559 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:28:32 +0100 Subject: [PATCH 087/516] feat: refs #6695 better stages for e2e rollback --- Jenkinsfile | 60 ++++++++++++++++++----------------------------------- 1 file changed, 20 insertions(+), 40 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2b7c51f97..2ce6d1a54 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -73,47 +73,27 @@ pipeline { environment { CREDENTIALS = credentials('docker-registry') } - stages { - // stage('Network') { - // steps { - // // sh "docker network rm e2e_default || true" - // // sh 'docker network create e2e_default || true' - // } - // } - stage('Setup') { - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - } - } - } - stage('DB') { - steps { - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - } - } - stage('Back') { - steps { - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Front') { - steps { - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - } - } - stage('Test') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } + // sh "docker network rm e2e_default || true" + // sh 'docker network create e2e_default || true' + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + // Db + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + // Backend + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + // Frontend + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' + // E2E + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { always { From a5e9b2f455cacf80e6aa425d8e9993bc01cf4074 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:38:25 +0100 Subject: [PATCH 088/516] feat: refs #6695 when failure, clean --- Jenkinsfile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 2ce6d1a54..d4bb25575 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -95,6 +95,12 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml build e2e' sh 'docker-compose -f docker-compose.e2e.yml up e2e' } + failure { + echo 'Removing containers...' + sh 'docker rm -f vn-database || true' + sh 'docker rm -f salix_e2e || true' + sh 'docker-compose -f docker-compose.e2e.yml down || true' + } post { always { junit( From 872037182756549dc26f6b96b336b3d8a9b6930a Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 10:38:59 +0100 Subject: [PATCH 089/516] feat: refs #6695 when failure, clean --- Jenkinsfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d4bb25575..246c0af61 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -95,13 +95,13 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml build e2e' sh 'docker-compose -f docker-compose.e2e.yml up e2e' } - failure { - echo 'Removing containers...' - sh 'docker rm -f vn-database || true' - sh 'docker rm -f salix_e2e || true' - sh 'docker-compose -f docker-compose.e2e.yml down || true' - } post { + failure { + echo 'Removing containers...' + sh 'docker rm -f vn-database || true' + sh 'docker rm -f salix_e2e || true' + sh 'docker-compose -f docker-compose.e2e.yml down || true' + } always { junit( testResults: 'junitresults.xml', From e9d4d79da0dd1a4b219d5e4af983e82b8f46d3a6 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 12:30:23 +0100 Subject: [PATCH 090/516] build: refs #6695 try run e2e --- cypress.config.js | 4 ++-- docker-compose.e2e.yml | 4 +++- proxy.mjs | 2 +- quasar.config.js | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cypress.config.js b/cypress.config.js index f2482db7e..559c0571e 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -5,7 +5,7 @@ import { defineConfig } from 'cypress'; export default defineConfig({ e2e: { - baseUrl: 'http://localhost:9000/', + baseUrl: 'http://127.0.0.1:9000/', experimentalStudio: true, fixturesFolder: 'test/cypress/fixtures', screenshotsFolder: 'test/cypress/screenshots', @@ -13,7 +13,7 @@ export default defineConfig({ videosFolder: 'test/cypress/videos', downloadsFolder: 'test/cypress/downloads', video: false, - specPattern: 'test/cypress/integration/claim/*.spec.js', + specPattern: 'test/cypress/integration/claim/claimAction.spec.js', experimentalRunAllSpecs: true, watchForFileChanges: true, reporter: 'cypress-mochawesome-reporter', diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 7bf6576bb..2ed4ae4fc 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -2,7 +2,7 @@ version: '3.7' services: front: image: registry.verdnatura.es/salix-frontend:${VERSION:?} - command: quasar serve --history --proxy ./proxy.mjs --hostname localhost --port 9000 + command: quasar serve --history --proxy ./proxy.mjs --hostname 127.0.0.1 --port 9000 build: context: . dockerfile: ./Dockerfile @@ -21,6 +21,7 @@ services: # context: . # dockerfile: test/cypress/db/Dockerfile # network_mode: host + # privileged: true # volumes: # - /var/run/docker.sock:/var/run/docker.sock @@ -43,3 +44,4 @@ services: # build: # context: . # dockerfile: ./Dockerfile.e2e + # diff --git a/proxy.mjs b/proxy.mjs index 378368dd4..1e9bcf96b 100644 --- a/proxy.mjs +++ b/proxy.mjs @@ -1,6 +1,6 @@ export default [ { path: '/api', - rule: { target: 'http://localhost:3000' }, + rule: { target: 'http://127.0.0.1:3000' }, }, ]; diff --git a/quasar.config.js b/quasar.config.js index 4cdb2b8c4..9a354467c 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -109,7 +109,7 @@ export default configure(function (/* ctx */) { }, proxy: { '/api': { - target: 'http://localhost:3000', + target: 'http://127.0.0.1:3000', logLevel: 'debug', changeOrigin: true, secure: false, From 8dd2659d9f7ec20d73cc7099fb7a29e565a18b63 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 12:42:54 +0100 Subject: [PATCH 091/516] build: refs #6695 add unit test --- Jenkinsfile | 95 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 246c0af61..6b3a1b480 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,50 +66,75 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('E2E') { + stage('Test') { when { expression { !PROTECTED_BRANCH } } environment { - CREDENTIALS = credentials('docker-registry') + NODE_ENV = "" } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + parallel{ + stage('Unit') { + steps { + sh 'pnpm run test:unit:ci' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } } - // sh "docker network rm e2e_default || true" - // sh 'docker network create e2e_default || true' - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - // Db - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - // Backend - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - // Frontend - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - // E2E - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } - post { - failure { - echo 'Removing containers...' - sh 'docker rm -f vn-database || true' - sh 'docker rm -f salix_e2e || true' - sh 'docker-compose -f docker-compose.e2e.yml down || true' - } - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) + stage('E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + } + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + // sh "docker network rm e2e_default || true" + // sh 'docker network create e2e_default || true' + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + // Db + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + // Backend + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + // Frontend + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' + // E2E + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + } + post { + failure { + echo 'Removing containers...' + sh 'docker rm -f vn-database || true' + sh 'docker rm -f salix_e2e || true' + sh 'docker-compose -f docker-compose.e2e.yml down || true' + } + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } } } + } + stage('Build') { when { expression { PROTECTED_BRANCH } From 7811e44d8b0ecf76ff29db01598eda1d2c9e70d1 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 12:50:36 +0100 Subject: [PATCH 092/516] build: refs #6695 always clean dockers --- Jenkinsfile | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6b3a1b480..b0c1311df 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -99,8 +99,6 @@ pipeline { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" } - // sh "docker network rm e2e_default || true" - // sh 'docker network create e2e_default || true' sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' // Db @@ -117,13 +115,10 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { - failure { - echo 'Removing containers...' + always { sh 'docker rm -f vn-database || true' sh 'docker rm -f salix_e2e || true' sh 'docker-compose -f docker-compose.e2e.yml down || true' - } - always { junit( testResults: 'junitresults.xml', allowEmptyResults: true From 41bd5a424a925c63ffb81dc2e427b8eb44fd0a24 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 12:55:43 +0100 Subject: [PATCH 093/516] build: refs #6695 try use stages --- Jenkinsfile | 54 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 36 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b0c1311df..fef88be2d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -94,31 +94,48 @@ pipeline { environment { CREDENTIALS = credentials('docker-registry') } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + stages { + stage('Setup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } + } + stage('Up Database') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + } + } + stage('Up Backend') { + steps { + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Up Frontend') { + steps { + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml build front' + sh 'docker-compose -f docker-compose.e2e.yml up -d front' + } + } + stage('Run E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + } } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - // Db - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - // Backend - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - // Frontend - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - // E2E - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' } post { always { sh 'docker rm -f vn-database || true' sh 'docker rm -f salix_e2e || true' sh 'docker-compose -f docker-compose.e2e.yml down || true' + junit( testResults: 'junitresults.xml', allowEmptyResults: true @@ -126,6 +143,7 @@ pipeline { } } } + } } From 0a2b4816676462356295950c0e5e97fa1ef345f6 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 13:15:36 +0100 Subject: [PATCH 094/516] test: refs #6695 build backend and frontend in parallel --- Jenkinsfile | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index fef88be2d..a23fad69b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -105,25 +105,24 @@ pipeline { sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } } - stage('Up Database') { - steps { - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + stage('Up') { + parallel { + stage('DB & Backend') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Frontend') { + steps { + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + } + } } } - stage('Up Backend') { - steps { - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Up Frontend') { - steps { - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml build front' - sh 'docker-compose -f docker-compose.e2e.yml up -d front' - } - } - stage('Run E2E') { + stage('Run') { steps { sh 'docker-compose -f docker-compose.e2e.yml build e2e' sh 'docker-compose -f docker-compose.e2e.yml up e2e' From 3ad58311e2fe5c5846bc85900fc74af1cbb97dc7 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 13:31:56 +0100 Subject: [PATCH 095/516] test: refs #6695 rollback build backend and frontend in parallel --- Jenkinsfile | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a23fad69b..570c6e826 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -105,27 +105,27 @@ pipeline { sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } } - stage('Up') { - parallel { - stage('DB & Backend') { - steps { - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Frontend') { - steps { - sh 'quasar build' - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - } - } + stage('Up Database') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' } } - stage('Run') { + stage('Up Backend') { steps { - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - sh 'docker-compose -f docker-compose.e2e.yml up e2e' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Up Frontend') { + steps { + sh 'quasar build' + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + } + } + stage('Run E2E') { + steps { + sh 'docker-compose docker-compose.e2e.yml build e2e' + sh 'docker-compose docker-compose.e2e.yml up e2e' } } } From 60430e40053ff6d6cdb5ddee4ab2b06d4ef36261 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 13:39:36 +0100 Subject: [PATCH 096/516] test: refs #6695 fix e2e command --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 570c6e826..de20a6ac3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -124,8 +124,7 @@ pipeline { } stage('Run E2E') { steps { - sh 'docker-compose docker-compose.e2e.yml build e2e' - sh 'docker-compose docker-compose.e2e.yml up e2e' + sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' } } } From 5b692612ae119342095a5506535f99a04758127a Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:10:22 +0100 Subject: [PATCH 097/516] test: refs #6695 front use quasar dev (more fast) --- Jenkinsfile | 2 +- docker-compose.e2e.yml | 6 ++---- proxy-serve.js | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index de20a6ac3..ba2b818b7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -124,7 +124,7 @@ pipeline { } stage('Run E2E') { steps { - sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } } } diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 2ed4ae4fc..79b83b824 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -1,14 +1,12 @@ version: '3.7' services: front: - image: registry.verdnatura.es/salix-frontend:${VERSION:?} - command: quasar serve --history --proxy ./proxy.mjs --hostname 127.0.0.1 --port 9000 + command: npx quasar dev build: context: . - dockerfile: ./Dockerfile + dockerfile: ./Dockerfile.e2e network_mode: host e2e: - image: registry.verdnatura.es/salix-frontend:${VERSION:?} command: npx cypress run build: context: . diff --git a/proxy-serve.js b/proxy-serve.js index 415968c85..1e9bcf96b 100644 --- a/proxy-serve.js +++ b/proxy-serve.js @@ -1,6 +1,6 @@ export default [ { path: '/api', - rule: { target: 'http://0.0.0.0:3000' }, + rule: { target: 'http://127.0.0.1:3000' }, }, ]; From c47bdd6b9d7f4b2348aa72dcf62a56185b5fced9 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:18:16 +0100 Subject: [PATCH 098/516] test: refs #6695 better clean --- Jenkinsfile | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ba2b818b7..a86945a5e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -100,6 +100,7 @@ pipeline { script { def packageJson = readJSON file: 'package.json' env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() } sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' @@ -118,7 +119,6 @@ pipeline { } stage('Up Frontend') { steps { - sh 'quasar build' sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } @@ -130,10 +130,7 @@ pipeline { } post { always { - sh 'docker rm -f vn-database || true' - sh 'docker rm -f salix_e2e || true' - sh 'docker-compose -f docker-compose.e2e.yml down || true' - + cleanDockerE2E() junit( testResults: 'junitresults.xml', allowEmptyResults: true @@ -182,3 +179,11 @@ pipeline { } } } + +def cleanDockerE2E() { + script { + sh 'docker rm -f vn-database || true' + sh 'docker rm -f salix_e2e || true' + sh 'docker-compose -f docker-compose.e2e.yml down || true' + } +} From 34d44cfa3e0cf56834a353685136ebfe659b5b7e Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:36:09 +0100 Subject: [PATCH 099/516] test: refs #6695 e2e use junitresults --- docker-compose.e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 79b83b824..f9b56e5df 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -7,7 +7,7 @@ services: dockerfile: ./Dockerfile.e2e network_mode: host e2e: - command: npx cypress run + command: npx cypress run --reporter junit --reporter-options "mochaFile=junitresults.xml" build: context: . dockerfile: ./Dockerfile.e2e From 930da78f6c494280d1281e59c2aceb06a64d3473 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:40:33 +0100 Subject: [PATCH 100/516] test: refs #6695 check e2e erros --- test/cypress/integration/claim/claimAction.spec.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/cypress/integration/claim/claimAction.spec.js b/test/cypress/integration/claim/claimAction.spec.js index 685e120ce..dea036fcb 100644 --- a/test/cypress/integration/claim/claimAction.spec.js +++ b/test/cypress/integration/claim/claimAction.spec.js @@ -21,6 +21,7 @@ describe('ClaimAction', () => { }); it('should change destination from other button', () => { + throw new Error('Error intencionado para provocar un fallo'); // REMOVE ME! const rowData = [true]; cy.fillRow(firstRow, rowData); From 900b76a4dbee37ba28448b82e1c68850406d71d3 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:50:03 +0100 Subject: [PATCH 101/516] test: refs #6695 back and front in parallel --- Jenkinsfile | 99 +++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 53 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a86945a5e..6a65fc69a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,83 +66,76 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('Test') { + stage('Test: Unit') { when { expression { !PROTECTED_BRANCH } } environment { NODE_ENV = "" } - parallel{ - stage('Unit') { + steps { + sh 'pnpm run test:unit:ci' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } + } + stage('E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + } + stages { + stage('Setup') { steps { - sh 'pnpm run test:unit:ci' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } } - stage('E2E') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - CREDENTIALS = credentials('docker-registry') - } - stages { - stage('Setup') { - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } - } - stage('Up Database') { + stage('Up') { + parallel { + stage('Database & Backend') { steps { sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - } - } - stage('Up Backend') { - steps { sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' } } - stage('Up Frontend') { + stage('Frontend') { steps { sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } - stage('Run E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } - } - } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } } } - + stage('Run E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + } + } + } + post { + always { + cleanDockerE2E() + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } } - } - stage('Build') { when { expression { PROTECTED_BRANCH } From 8f0f993a64f2eccf8f08b8c1981c4532c105179a Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:52:11 +0100 Subject: [PATCH 102/516] test: refs #6695 better stages --- Jenkinsfile | 128 +++++++++++++++++++++++++++------------------------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6a65fc69a..3e3122fd2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,74 +66,78 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('Test: Unit') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - NODE_ENV = "" - } - steps { - sh 'pnpm run test:unit:ci' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } - } - } - stage('E2E') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - CREDENTIALS = credentials('docker-registry') - } + stage('Test') { stages { - stage('Setup') { + stage('Unit') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + NODE_ENV = "" + } steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + sh 'pnpm run test:unit:ci' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } + } + stage('E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + } + stages { + stage('Setup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() + } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } + } + stage('Up') { + parallel { + stage('Database & Backend') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Frontend') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + } + } + } + } + stage('Run E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + } + } + } + post { + always { cleanDockerE2E() - } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } - } - stage('Up') { - parallel { - stage('Database & Backend') { - steps { - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Frontend') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - } + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } } } - stage('Run E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } - } - } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } } } stage('Build') { From 940bc7f1ffedf727a7be667c0df4ac4cc1c78623 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:56:42 +0100 Subject: [PATCH 103/516] test: refs #6695 better stages --- Jenkinsfile | 126 ++++++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 64 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3e3122fd2..a058122de 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,76 +66,74 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('Test') { - stages { - stage('Unit') { - when { - expression { !PROTECTED_BRANCH } + stages { + stage('Unit') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + NODE_ENV = "" + } + steps { + sh 'pnpm run test:unit:ci' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } - environment { - NODE_ENV = "" + } + } + stage('E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + } + stages { + stage('Setup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() + } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } } - steps { - sh 'pnpm run test:unit:ci' + stage('Up') { + parallel { + stage('Database & Backend') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Frontend') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + } + } + } } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) + stage('Run E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } } } - stage('E2E') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - CREDENTIALS = credentials('docker-registry') - } - stages { - stage('Setup') { - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } - } - stage('Up') { - parallel { - stage('Database & Backend') { - steps { - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Frontend') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - } - } - } - } - stage('Run E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } - } - } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } + post { + always { + cleanDockerE2E() + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } } } From caf76e40713f3414e291f1182b1e99c4938a8257 Mon Sep 17 00:00:00 2001 From: alexm Date: Fri, 31 Jan 2025 14:58:02 +0100 Subject: [PATCH 104/516] test: refs #6695 better stages --- Jenkinsfile | 124 ++++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 63 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a058122de..cce67a551 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,75 +66,73 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stages { - stage('Unit') { - when { - expression { !PROTECTED_BRANCH } + stage('Test: Unit') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + NODE_ENV = "" + } + steps { + sh 'pnpm run test:unit:ci' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } - environment { - NODE_ENV = "" + } + } + stage('Test: E2E') { + when { + expression { !PROTECTED_BRANCH } + } + environment { + CREDENTIALS = credentials('docker-registry') + } + stages { + stage('Setup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() + } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } } - steps { - sh 'pnpm run test:unit:ci' + stage('Up') { + parallel { + stage('Database & Backend') { + steps { + sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' + sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' + } + } + stage('Frontend') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' + } + } + } } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) + stage('Run E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' } } } - stage('E2E') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - CREDENTIALS = credentials('docker-registry') - } - stages { - stage('Setup') { - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } - } - stage('Up') { - parallel { - stage('Database & Backend') { - steps { - sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' - sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' - sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' - } - } - stage('Frontend') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' - } - } - } - } - stage('Run E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' - } - } - } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } + post { + always { + cleanDockerE2E() + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } } } From 35f90f5ea1a31bcffcbdbaf9e482fc3e726f7b97 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 07:53:43 +0100 Subject: [PATCH 105/516] test: refs #6695 better stages --- Jenkinsfile | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index cce67a551..e6db94f8c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -90,6 +90,7 @@ pipeline { expression { !PROTECTED_BRANCH } } environment { + NODE_ENV = "" CREDENTIALS = credentials('docker-registry') } stages { @@ -105,10 +106,14 @@ pipeline { } } stage('Up') { - parallel { - stage('Database & Backend') { + parallel{ + stage('Database') { steps { sh 'cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d' + } + } + stage('Backend') { + steps { sh 'docker build -f ./salix/back/Dockerfile -t back ./salix' sh 'docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back' } @@ -125,14 +130,14 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up e2e' } } - } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) + post { + always { + cleanDockerE2E() + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } } } } From 1ca6fd15b55df9043444e9e10590fa17a4bbb199 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 07:58:34 +0100 Subject: [PATCH 106/516] test: refs #6695 better stages --- Jenkinsfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e6db94f8c..af9c084b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -130,14 +130,14 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up e2e' } } - post { - always { - cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } + } + post { + always { + cleanDockerE2E() + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) } } } From 3a14c76ad079c0810eb55569ddd9d5c3aaa37fd4 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:18:05 +0100 Subject: [PATCH 107/516] test: refs #6695 capture e2e erros and publish --- Jenkinsfile | 41 +++++++++++++++++++++++++---------------- cypress.config.js | 2 +- docker-compose.e2e.yml | 2 +- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index af9c084b6..442b3206e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,18 +93,16 @@ pipeline { NODE_ENV = "" CREDENTIALS = credentials('docker-registry') } - stages { - stage('Setup') { - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - } - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } + stages { stage('Up') { parallel{ stage('Database') { @@ -127,17 +125,28 @@ pipeline { } stage('Run E2E') { steps { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' + script { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + def result = sh(script: 'docker-compose -f docker-compose.e2e.yml ps -q e2e | xargs docker inspect -f "{{.State.ExitCode}}"', returnStatus: true) + sh 'docker cp $(docker-compose -f docker-compose.e2e.yml ps -q e2e):/app/test/cypress/reports ./test/cypress/' + if (result != 0) { + error("Cypress E2E tests failed with exit code: ${result}") + } + } } } } post { always { + publishHTML([ + allowMissing: true, + alwaysLinkToLastBuild: true, + keepAll: true, + reportDir: 'test/cypress/reports', + reportFiles: '*.html', + reportName: 'Cypress Mochawesome Report' + ]) cleanDockerE2E() - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) } } } diff --git a/cypress.config.js b/cypress.config.js index 559c0571e..ba30a50f3 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -24,6 +24,7 @@ export default defineConfig({ embeddedScreenshots: true, reportDir: 'test/cypress/reports', inlineAssets: true, + json: true, }, component: { componentFolder: 'src', @@ -33,7 +34,6 @@ export default defineConfig({ setupNodeEvents: async (on, config) => { const plugin = await import('cypress-mochawesome-reporter/plugin'); plugin.default(on); - return config; }, viewportWidth: 1280, diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index f9b56e5df..79b83b824 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -7,7 +7,7 @@ services: dockerfile: ./Dockerfile.e2e network_mode: host e2e: - command: npx cypress run --reporter junit --reporter-options "mochaFile=junitresults.xml" + command: npx cypress run build: context: . dockerfile: ./Dockerfile.e2e From 9955dc73d72a57f27675c45b5632084b8ac927a5 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:19:30 +0100 Subject: [PATCH 108/516] test: refs #6695 capture e2e erros and publish --- Jenkinsfile | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 442b3206e..e33e54e3a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,12 +93,10 @@ pipeline { NODE_ENV = "" CREDENTIALS = credentials('docker-registry') } - steps { - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - } + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() sh 'rm -rf salix' sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } From 32dbdbddbbc0f9b5e77caec3b0eea0725dfb339b Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:21:17 +0100 Subject: [PATCH 109/516] test: refs #6695 capture e2e erros and publish --- Jenkinsfile | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e33e54e3a..d69365495 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -93,14 +93,18 @@ pipeline { NODE_ENV = "" CREDENTIALS = credentials('docker-registry') } - script { - def packageJson = readJSON file: 'package.json' - env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" - cleanDockerE2E() - sh 'rm -rf salix' - sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' - } stages { + stage('Steup') { + steps { + script { + def packageJson = readJSON file: 'package.json' + env.VERSION = "${packageJson.version}-build${env.BUILD_ID}" + cleanDockerE2E() + } + sh 'rm -rf salix' + sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' + } + } stage('Up') { parallel{ stage('Database') { From db6783e9d46d8652e5235bccc43eec9499704440 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:29:49 +0100 Subject: [PATCH 110/516] test: refs #6695 try handle e2e erros and publish --- Jenkinsfile | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d69365495..7fde7a199 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,10 +129,21 @@ pipeline { steps { script { sh 'docker-compose -f docker-compose.e2e.yml up e2e' - def result = sh(script: 'docker-compose -f docker-compose.e2e.yml ps -q e2e | xargs docker inspect -f "{{.State.ExitCode}}"', returnStatus: true) - sh 'docker cp $(docker-compose -f docker-compose.e2e.yml ps -q e2e):/app/test/cypress/reports ./test/cypress/' - if (result != 0) { - error("Cypress E2E tests failed with exit code: ${result}") + // Obtener el ID del contenedor e2e + def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() + if (containerId) { + // Obtener el exit code del contenedor + def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() + + // Copiar reportes desde el contenedor a Jenkins + sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" + + // Si hubo errores en Cypress, fallar el build + if (exitCode != '0') { + error("Cypress E2E tests failed with exit code: ${exitCode}") + } + } else { + error("No se encontró el contenedor e2e.") } } } @@ -140,14 +151,15 @@ pipeline { } post { always { - publishHTML([ - allowMissing: true, - alwaysLinkToLastBuild: true, - keepAll: true, - reportDir: 'test/cypress/reports', - reportFiles: '*.html', - reportName: 'Cypress Mochawesome Report' - ]) + // sh 'docker cp $(docker-compose -f docker-compose.e2e.yml ps -q e2e):/app/test/cypress/reports ./test/cypress/' // in run + // publishHTML([ + // allowMissing: true, + // alwaysLinkToLastBuild: true, + // keepAll: true, + // reportDir: 'test/cypress/reports', + // reportFiles: '*.html', + // reportName: 'Cypress Mochawesome Report' + // ]) cleanDockerE2E() } } From 040673f50043acf65b88b67722c8d3ebf0ab04fb Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:47:11 +0100 Subject: [PATCH 111/516] test: refs #6695 try handle e2e erros and publish --- Jenkinsfile | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7fde7a199..5d518bc71 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -94,7 +94,7 @@ pipeline { CREDENTIALS = credentials('docker-registry') } stages { - stage('Steup') { + stage('Setup') { steps { script { def packageJson = readJSON file: 'package.json' @@ -129,21 +129,15 @@ pipeline { steps { script { sh 'docker-compose -f docker-compose.e2e.yml up e2e' - // Obtener el ID del contenedor e2e def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() if (containerId) { - // Obtener el exit code del contenedor def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() - - // Copiar reportes desde el contenedor a Jenkins sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" - - // Si hubo errores en Cypress, fallar el build if (exitCode != '0') { error("Cypress E2E tests failed with exit code: ${exitCode}") } } else { - error("No se encontró el contenedor e2e.") + error("The Docker container for E2E tests could not be created") } } } @@ -151,15 +145,6 @@ pipeline { } post { always { - // sh 'docker cp $(docker-compose -f docker-compose.e2e.yml ps -q e2e):/app/test/cypress/reports ./test/cypress/' // in run - // publishHTML([ - // allowMissing: true, - // alwaysLinkToLastBuild: true, - // keepAll: true, - // reportDir: 'test/cypress/reports', - // reportFiles: '*.html', - // reportName: 'Cypress Mochawesome Report' - // ]) cleanDockerE2E() } } From 1ea6af8eb9826a6a5cd809378821eac0b594715a Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 08:58:59 +0100 Subject: [PATCH 112/516] test: refs #6695 handle e2e erros --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5d518bc71..b46974047 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -134,7 +134,8 @@ pipeline { def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" if (exitCode != '0') { - error("Cypress E2E tests failed with exit code: ${exitCode}") + def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() + error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") } } else { error("The Docker container for E2E tests could not be created") From eb8792f0b7d60ada6983ed350dce9228da9efebd Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 09:07:06 +0100 Subject: [PATCH 113/516] test: refs #6695 handle e2e erros --- cypress.config.js | 1 - test/cypress/integration/claim/claimAction.spec.js | 1 - 2 files changed, 2 deletions(-) diff --git a/cypress.config.js b/cypress.config.js index ba30a50f3..040778bf9 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -24,7 +24,6 @@ export default defineConfig({ embeddedScreenshots: true, reportDir: 'test/cypress/reports', inlineAssets: true, - json: true, }, component: { componentFolder: 'src', diff --git a/test/cypress/integration/claim/claimAction.spec.js b/test/cypress/integration/claim/claimAction.spec.js index dea036fcb..685e120ce 100644 --- a/test/cypress/integration/claim/claimAction.spec.js +++ b/test/cypress/integration/claim/claimAction.spec.js @@ -21,7 +21,6 @@ describe('ClaimAction', () => { }); it('should change destination from other button', () => { - throw new Error('Error intencionado para provocar un fallo'); // REMOVE ME! const rowData = [true]; cy.fillRow(firstRow, rowData); From e28e5217bda437525fac90fdd044155901a6d665 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 09:13:18 +0100 Subject: [PATCH 114/516] test: refs #6695 handle e2e errors (better cypress config) --- cypress.config.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cypress.config.js b/cypress.config.js index 040778bf9..38c50464c 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -6,7 +6,11 @@ import { defineConfig } from 'cypress'; export default defineConfig({ e2e: { baseUrl: 'http://127.0.0.1:9000/', - experimentalStudio: true, + experimentalStudio: false, // Desactivado para evitar tiempos de espera innecesarios + defaultCommandTimeout: 10000, + requestTimeout: 10000, + responseTimeout: 30000, + pageLoadTimeout: 60000, fixturesFolder: 'test/cypress/fixtures', screenshotsFolder: 'test/cypress/screenshots', supportFile: 'test/cypress/support/index.js', From 38fea35f4f61df8e281ce518cd77a9fe6e9be9f2 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 09:34:23 +0100 Subject: [PATCH 115/516] test: refs #6695 handle e2e errors (better cypress config) --- Dockerfile.e2e | 22 ++++++++-------- cypress.config.js | 6 +++++ test/cypress/support/commands.js | 44 +++++++++++++------------------- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 109ec5d3e..91269f8d8 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -2,27 +2,27 @@ FROM node:lts-bookworm ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN npm install -g pnpm@8.15.1 -RUN pnpm setup +RUN npm install -g pnpm@8.15.1 && \ + pnpm setup -RUN pnpm install -g @quasar/cli@2.2.1 - -RUN apt-get -y --fix-missing update -RUN apt-get -y --fix-missing upgrade -RUN apt-get -y --no-install-recommends install apt-utils -RUN apt-get install --fix-missing -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb +RUN apt-get -y --fix-missing update && \ + apt-get -y --fix-missing upgrade && \ + apt-get -y --no-install-recommends install apt-utils libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb && \ + apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /app + COPY \ package.json \ .npmrc \ pnpm-lock.yaml \ ./ -RUN pnpm install -RUN pnpm install cypress -RUN npx cypress install +RUN pnpm install && \ + pnpm install -g @quasar/cli@2.2.1 && \ + pnpm install cypress && \ + npx cypress install COPY \ quasar.config.js \ diff --git a/cypress.config.js b/cypress.config.js index 38c50464c..8bf934b29 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -37,6 +37,12 @@ export default defineConfig({ setupNodeEvents: async (on, config) => { const plugin = await import('cypress-mochawesome-reporter/plugin'); plugin.default(on); + // if (process.env.JENKINS_URL) { + // on('fail', (error) => { + // // Detener la ejecución en caso de fallo solo en Jenkins + // throw new Error(error.message); + // }); + // } return config; }, viewportWidth: 1280, diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 6a436c1eb..83f6eaab7 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -87,34 +87,26 @@ Cypress.Commands.add('getValue', (selector) => { }); // Fill Inputs -Cypress.Commands.add('selectOption', (selector, option, timeout = 5000) => { - cy.waitForElement(selector, timeout); - cy.get(selector).click(); - cy.get(selector).invoke('data', 'url').as('dataUrl'); - cy.get(selector) - .clear() - .type(option) - .then(() => { - cy.get('.q-menu', { timeout }) - .should('be.visible') // Asegurarse de que el menú está visible - .and('exist') // Verificar que el menú existe - .then(() => { - cy.get('@dataUrl').then((url) => { - if (url) { - // Esperar a que el menú no esté visible (desaparezca) - cy.get('.q-menu').should('not.be.visible'); - // Ahora esperar a que el menú vuelva a aparecer - cy.get('.q-menu').should('be.visible').and('exist'); - } - }); - }); - }); +Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { + cy.waitForElement(selector, timeout); // Esperar a que el selector sea visible + cy.get(selector).click().invoke('data', 'url').as('dataUrl'); + + // Escribir la opción deseada + cy.get(selector).clear().type(option); + cy.get('.q-menu', { timeout }).should('be.visible').and('exist'); + + // Si hay una URL, espera a que el menú desaparezca y vuelva a aparecer + cy.get('@dataUrl').then((url) => { + if (url) { + cy.get('.q-menu').should('be.visible').and('exist'); + + cy.get('.q-menu').should('not.be.visible'); + cy.get('.q-menu').should('be.visible').and('exist'); + } + }); // Finalmente, seleccionar la opción deseada - cy.get('.q-menu:visible') // Asegurarse de que estamos dentro del menú visible - .find('.q-item') // Encontrar los elementos de las opciones - .contains(option) // Verificar que existe una opción que contenga el texto deseado - .click(); // Hacer clic en la opción + cy.get('.q-menu:visible').find('.q-item').contains(option).click(); }); Cypress.Commands.add('countSelectOptions', (selector, option) => { From 0264e85aa70454f748cb82330b87d608cd1440ef Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 10:06:41 +0100 Subject: [PATCH 116/516] test: refs #6695 handle e2e errors (better cypress config) --- test/cypress/support/index.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/cypress/support/index.js b/test/cypress/support/index.js index c57c1a303..075e0c8eb 100644 --- a/test/cypress/support/index.js +++ b/test/cypress/support/index.js @@ -27,7 +27,17 @@ function randomNumber(options = { length: 10 }) { function randomizeValue(characterSet, options) { return Array.from({ length: options.length }, () => - characterSet.charAt(Math.floor(Math.random() * characterSet.length)) + characterSet.charAt(Math.floor(Math.random() * characterSet.length)), ).join(''); } + +const style = document.createElement('style'); +style.innerHTML = ` + * { + transition: none !important; + animation: none !important; + } +`; +document.head.appendChild(style); + export { randomString, randomNumber, randomizeValue }; From 97b93b5e38160625bf1a571c3d8ad8d0dfa3b784 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 10:42:29 +0100 Subject: [PATCH 117/516] test: refs #6695 fix selectOption command --- test/cypress/support/commands.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 83f6eaab7..8f20ab899 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -92,18 +92,20 @@ Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { cy.get(selector).click().invoke('data', 'url').as('dataUrl'); // Escribir la opción deseada - cy.get(selector).clear().type(option); - cy.get('.q-menu', { timeout }).should('be.visible').and('exist'); - - // Si hay una URL, espera a que el menú desaparezca y vuelva a aparecer + let hasUrl; cy.get('@dataUrl').then((url) => { - if (url) { - cy.get('.q-menu').should('be.visible').and('exist'); - - cy.get('.q-menu').should('not.be.visible'); - cy.get('.q-menu').should('be.visible').and('exist'); - } + hasUrl = url; + cy.intercept('GET', url).as('dataRequest'); // Ajusta el método y la URL según sea necesario }); + cy.get(selector).clear().type(option); + + if (hasUrl) { + cy.wait('@dataRequest').then(() => { + cy.get('.q-menu').should('be.visible').and('exist'); + cy.get('.q-menu').should('not.be.visible'); // Esperar que el menú desaparezca + cy.get('.q-menu').should('be.visible').and('exist'); // Esperar que reaparezca + }); + } // Finalmente, seleccionar la opción deseada cy.get('.q-menu:visible').find('.q-item').contains(option).click(); From c9679ac835e99b610c4c925b84e152cae7082e65 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 10:42:39 +0100 Subject: [PATCH 118/516] test: refs #6695 fix selectOption command --- test/cypress/support/commands.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 8f20ab899..aab1c80c7 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -95,15 +95,15 @@ Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { let hasUrl; cy.get('@dataUrl').then((url) => { hasUrl = url; - cy.intercept('GET', url).as('dataRequest'); // Ajusta el método y la URL según sea necesario + cy.intercept('GET', url).as('dataRequest'); }); cy.get(selector).clear().type(option); if (hasUrl) { cy.wait('@dataRequest').then(() => { cy.get('.q-menu').should('be.visible').and('exist'); - cy.get('.q-menu').should('not.be.visible'); // Esperar que el menú desaparezca - cy.get('.q-menu').should('be.visible').and('exist'); // Esperar que reaparezca + cy.get('.q-menu').should('not.be.visible'); + cy.get('.q-menu').should('be.visible').and('exist'); }); } From 6f839df3114ddf67e06489b8ab20fbc6ae34518c Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 10:55:12 +0100 Subject: [PATCH 119/516] test: refs #6695 fix selectOption command --- test/cypress/integration/claim/claimAction.spec.js | 4 ++-- test/cypress/support/commands.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/cypress/integration/claim/claimAction.spec.js b/test/cypress/integration/claim/claimAction.spec.js index 685e120ce..e98be85fc 100644 --- a/test/cypress/integration/claim/claimAction.spec.js +++ b/test/cypress/integration/claim/claimAction.spec.js @@ -24,9 +24,9 @@ describe('ClaimAction', () => { const rowData = [true]; cy.fillRow(firstRow, rowData); - cy.get('[title="Change destination"]').click(); + cy.get('[title="Change destination"]').click({ force: true }); cy.selectOption(destinationRow, 'Confeccion'); - cy.get('.q-card > .q-card__actions > .q-btn--standard').click(); + cy.get('.q-card > .q-card__actions > .q-btn--standard').click({ force: true }); }); it('should regularize', () => { diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index aab1c80c7..01f706aff 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -89,7 +89,7 @@ Cypress.Commands.add('getValue', (selector) => { // Fill Inputs Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { cy.waitForElement(selector, timeout); // Esperar a que el selector sea visible - cy.get(selector).click().invoke('data', 'url').as('dataUrl'); + cy.get(selector).click({ force: true }).invoke('data', 'url').as('dataUrl'); // Escribir la opción deseada let hasUrl; @@ -102,13 +102,13 @@ Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { if (hasUrl) { cy.wait('@dataRequest').then(() => { cy.get('.q-menu').should('be.visible').and('exist'); - cy.get('.q-menu').should('not.be.visible'); + cy.get('.q-menu').should('not.be.visible'); cy.get('.q-menu').should('be.visible').and('exist'); }); } // Finalmente, seleccionar la opción deseada - cy.get('.q-menu:visible').find('.q-item').contains(option).click(); + cy.get('.q-menu:visible').find('.q-item').contains(option).click({ force: true }); }); Cypress.Commands.add('countSelectOptions', (selector, option) => { From 49d7b6bc443acb8c1a4fccb8bb1171a4ab0fdb9c Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 11:00:48 +0100 Subject: [PATCH 120/516] test: refs #6695 try run all claim e2e --- cypress.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.js b/cypress.config.js index 8bf934b29..c64daefd5 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -17,7 +17,7 @@ export default defineConfig({ videosFolder: 'test/cypress/videos', downloadsFolder: 'test/cypress/downloads', video: false, - specPattern: 'test/cypress/integration/claim/claimAction.spec.js', + specPattern: 'test/cypress/integration/claim/*.spec.js', experimentalRunAllSpecs: true, watchForFileChanges: true, reporter: 'cypress-mochawesome-reporter', From 31cedc8a7ee19c258761fa928f9c5f75627c67ae Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 11:13:00 +0100 Subject: [PATCH 121/516] test: refs #6695 use quasar serve --- Jenkinsfile | 1 + docker-compose.e2e.yml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b46974047..4f99f9ab1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -120,6 +120,7 @@ pipeline { } stage('Frontend') { steps { + sh 'quasar build' // Use quasar prod version sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 79b83b824..d32c0917d 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -1,7 +1,8 @@ version: '3.7' services: front: - command: npx quasar dev + # command: npx quasar dev + command: npx quasar serve --history --proxy ./proxy.mjs --hostname 127.0.0.1 --port 9000 build: context: . dockerfile: ./Dockerfile.e2e From 5a82c4804649bd5779d8adc7e6226f142338f5cd Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 11:32:30 +0100 Subject: [PATCH 122/516] test: refs #6695 use quasar serve --- docker-compose.e2e.yml | 2 +- e2e.sh | 39 ++++++--------------------------------- 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index d32c0917d..adb315c45 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -5,7 +5,7 @@ services: command: npx quasar serve --history --proxy ./proxy.mjs --hostname 127.0.0.1 --port 9000 build: context: . - dockerfile: ./Dockerfile.e2e + dockerfile: ./Dockerfile network_mode: host e2e: command: npx cypress run diff --git a/e2e.sh b/e2e.sh index f9b75f4c9..537cacb41 100644 --- a/e2e.sh +++ b/e2e.sh @@ -1,33 +1,6 @@ -git clone --branch dev https://gitea.verdnatura.es/verdnatura/salix.git -cd front -export VERSION=e2e-try -export SHELL=/bin/sh -export ENV=~/.profile -touch ~/.profile -apk add --no-cache curl -apk add --no-cache ca-certificates -update-ca-certificates -curl -fsSL https://nodejs.org/dist/v20.18.1/node-v20.18.1.tar.gz -o node.tar.gz -tar -xzf node.tar.gz -C /usr/local --strip-components=1 -apk add --no-cache python3 make gcc g++ libgcc libstdc++ linux-headers musl-dev -./configure -make -j$(nproc) -make install - -curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=8.15.1 sh - - -# DB -pnpm i @verdnatura/myt -cd salix && npx myt run -t --ci -d -n front_default - -# Back -docker buildx build -f salix/back/Dockerfile -t back ./salix -docker run --net=host -v $(pwd)/test/cypress/storage:/salix/storage -d back - - -# docker-compose -f docker-compose.e2e.yml -d up front -# docker-compose -f docker-compose.e2e.yml up e2e --build - -docker-compose -f docker-compose.e2e.yml up front --build -d -docker-compose -f docker-compose.e2e.yml up e2e --build - +cd salix && pnpm i --prefer-offline @verdnatura/myt && npx myt run -t -d +cd .. && docker build -f ./salix/back/Dockerfile -t back ./salix +docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back +quasar build +docker-compose -f docker-compose.e2e.yml up -d --build front +docker-compose -f docker-compose.e2e.yml up e2e From 010e76a3b8ef59853cb85fda1eaa4d24efcf91b6 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 11:41:14 +0100 Subject: [PATCH 123/516] test: refs #6695 run all e2e --- cypress.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress.config.js b/cypress.config.js index c64daefd5..96df785a2 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -17,7 +17,7 @@ export default defineConfig({ videosFolder: 'test/cypress/videos', downloadsFolder: 'test/cypress/downloads', video: false, - specPattern: 'test/cypress/integration/claim/*.spec.js', + specPattern: 'test/cypress/integration/**/*.spec.js', experimentalRunAllSpecs: true, watchForFileChanges: true, reporter: 'cypress-mochawesome-reporter', From b278dec6c9f82cd09de0cf0b0db2dcae70ff2428 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 12:05:17 +0100 Subject: [PATCH 124/516] test: refs #6695 run all e2e --- Jenkinsfile | 2 +- e2e.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4f99f9ab1..53d6862d4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -129,7 +129,7 @@ pipeline { stage('Run E2E') { steps { script { - sh 'docker-compose -f docker-compose.e2e.yml up e2e' + sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() if (containerId) { def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() diff --git a/e2e.sh b/e2e.sh index 537cacb41..486792eed 100644 --- a/e2e.sh +++ b/e2e.sh @@ -3,4 +3,4 @@ cd .. && docker build -f ./salix/back/Dockerfile -t back ./salix docker run -d --name salix_e2e --net=host -v $(pwd)/test/cypress/storage:/salix/storage back quasar build docker-compose -f docker-compose.e2e.yml up -d --build front -docker-compose -f docker-compose.e2e.yml up e2e +docker-compose -f docker-compose.e2e.yml up --build e2e From 86d5ae781a8771891c737b40e426e32e50324010 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 12:56:34 +0100 Subject: [PATCH 125/516] test: refs #6695 run e2e parallel --- Jenkinsfile | 50 +++++++++++++++++++++++++++++++++++------------ cypress.config.js | 6 ------ 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 53d6862d4..0cb21df6b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -124,29 +124,35 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } + stage('Build E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + } + } } } stage('Run E2E') { - steps { + steps { script { - sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' - def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() - if (containerId) { - def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() - sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" - if (exitCode != '0') { - def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() - error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") - } - } else { - error("The Docker container for E2E tests could not be created") - } + runCypressTests(['claim', 'ticket']) } } } } post { always { + sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' + def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() + if (containerId) { + def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() + sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" + if (exitCode != '0') { + def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() + error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") + } + } else { + error("The Docker container for E2E tests could not be created") + } cleanDockerE2E() } } @@ -195,3 +201,21 @@ def cleanDockerE2E() { sh 'docker-compose -f docker-compose.e2e.yml down || true' } } + +def runCypressTests(folders) { + script { + def parallelStages = [:] + folders.each { folder -> + parallelStages["E2E - ${folder}"] = { + stage("E2E - ${folder}") { + steps { + script { + sh "docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/${folder}/**/*.spec.js" + } + } + } + } + } + parallel parallelStages + } +} diff --git a/cypress.config.js b/cypress.config.js index 96df785a2..ee14c3733 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -37,12 +37,6 @@ export default defineConfig({ setupNodeEvents: async (on, config) => { const plugin = await import('cypress-mochawesome-reporter/plugin'); plugin.default(on); - // if (process.env.JENKINS_URL) { - // on('fail', (error) => { - // // Detener la ejecución en caso de fallo solo en Jenkins - // throw new Error(error.message); - // }); - // } return config; }, viewportWidth: 1280, From 7abe89775f40e8a5bd3fe1e2cbeeb02d270dcf55 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 12:58:49 +0100 Subject: [PATCH 126/516] test: refs #6695 run e2e parallel --- Jenkinsfile | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0cb21df6b..1d6ec3a51 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -141,18 +141,17 @@ pipeline { } post { always { - sh 'docker-compose -f docker-compose.e2e.yml up --build e2e' - def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() - if (containerId) { - def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() - sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" - if (exitCode != '0') { - def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() - error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") - } - } else { - error("The Docker container for E2E tests could not be created") - } + // def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() + // if (containerId) { + // def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() + // sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" + // if (exitCode != '0') { + // def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() + // error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") + // } + // } else { + // error("The Docker container for E2E tests could not be created") + // } cleanDockerE2E() } } From 39ba6e91750379205e103b64a6f00b252802819a Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 13:06:01 +0100 Subject: [PATCH 127/516] test: refs #6695 try run e2e parallel --- Jenkinsfile | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1d6ec3a51..919db8949 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -132,9 +132,16 @@ pipeline { } } stage('Run E2E') { - steps { - script { - runCypressTests(['claim', 'ticket']) + parallel{ + stage('Claim') { + steps { + sh 'docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' + } + } + stage('Ticket') { + steps { + sh 'docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/ticket/**/*.spec.js' + } } } } From 258ff52e3ce2d98532213fdf5ceefb465ec7d1b4 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 13:09:31 +0100 Subject: [PATCH 128/516] test: refs #6695 try run e2e parallel --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 919db8949..eff34ecbc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -135,12 +135,12 @@ pipeline { parallel{ stage('Claim') { steps { - sh 'docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' } } stage('Ticket') { steps { - sh 'docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/ticket/**/*.spec.js' + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/ticket/**/*.spec.js' } } } From 2e8caf6e8f929f1eed9615cf4a390ab7ba13faec Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 13:15:50 +0100 Subject: [PATCH 129/516] test: refs #6695 try run e2e parallel --- Jenkinsfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index eff34ecbc..ee6c0ff7f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -131,16 +131,16 @@ pipeline { } } } - stage('Run E2E') { + stage('Run: Globals') { parallel{ - stage('Claim') { + stage('outLogin') { steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/outLogin/**/*.spec.js' } } - stage('Ticket') { + stage('vnComponent') { steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/ticket/**/*.spec.js' + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/vnComponent/**/*.spec.js' } } } From 1da88fd70c4f07c2cfa180210fab18dc53fae393 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 13:19:32 +0100 Subject: [PATCH 130/516] test: refs #6695 try run e2e parallel --- Jenkinsfile | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ee6c0ff7f..028480712 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -105,6 +105,11 @@ pipeline { sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } } + stage('Build E2E') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml build e2e' + } + } stage('Up') { parallel{ stage('Database') { @@ -124,11 +129,6 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } - stage('Build E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - } - } } } stage('Run: Globals') { @@ -145,6 +145,20 @@ pipeline { } } } + stage('Run: Specifics') { + parallel{ + stage('claim') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' + } + } + stage('item') { + steps { + sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/item/**/*.spec.js' + } + } + } + } } post { always { From d0ba2f41e114cbfdf568697fe3e052613df08bad Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 13:42:41 +0100 Subject: [PATCH 131/516] test: refs #6695 run all e2e --- Jenkinsfile | 71 ++++++++++++----------------------------------------- 1 file changed, 16 insertions(+), 55 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 028480712..224a49c97 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -105,11 +105,6 @@ pipeline { sh 'git clone https://gitea.verdnatura.es/verdnatura/salix.git' } } - stage('Build E2E') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml build e2e' - } - } stage('Up') { parallel{ stage('Database') { @@ -129,32 +124,27 @@ pipeline { sh 'docker-compose -f docker-compose.e2e.yml up -d --build front' } } - } - } - stage('Run: Globals') { - parallel{ - stage('outLogin') { + stage('Build Cypress') { steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/outLogin/**/*.spec.js' - } - } - stage('vnComponent') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/vnComponent/**/*.spec.js' + sh 'docker-compose -f docker-compose.e2e.yml build e2e' } } } } - stage('Run: Specifics') { - parallel{ - stage('claim') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/claim/**/*.spec.js' - } - } - stage('item') { - steps { - sh 'docker-compose -f docker-compose.e2e.yml run e2e npx cypress run --config specPattern=test/cypress/integration/item/**/*.spec.js' + stage('Run E2E') { + steps { + script { + sh 'docker-compose -f docker-compose.e2e.yml up e2e' + def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() + if (containerId) { + def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() + sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" + if (exitCode != '0') { + def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() + error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") + } + } else { + error("The Docker container for E2E tests could not be created") } } } @@ -162,17 +152,6 @@ pipeline { } post { always { - // def containerId = sh(script: "docker-compose -f docker-compose.e2e.yml ps -q e2e", returnStdout: true).trim() - // if (containerId) { - // def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim() - // sh "docker cp ${containerId}:/app/test/cypress/reports ./test/cypress/" - // if (exitCode != '0') { - // def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim() - // error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}") - // } - // } else { - // error("The Docker container for E2E tests could not be created") - // } cleanDockerE2E() } } @@ -221,21 +200,3 @@ def cleanDockerE2E() { sh 'docker-compose -f docker-compose.e2e.yml down || true' } } - -def runCypressTests(folders) { - script { - def parallelStages = [:] - folders.each { folder -> - parallelStages["E2E - ${folder}"] = { - stage("E2E - ${folder}") { - steps { - script { - sh "docker-compose run e2e npx cypress run --config specPattern=test/cypress/integration/${folder}/**/*.spec.js" - } - } - } - } - } - parallel parallelStages - } -} From b8761d3e4c921e0477a43a370344a470e19bdf46 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 14:16:32 +0100 Subject: [PATCH 132/516] test: refs #6695 run all e2e (try use cypress-vite && retries) --- cypress.config.js | 11 +++++++++++ package.json | 1 + pnpm-lock.yaml | 15 +++++++++++++++ .../integration/vnComponent/VnLocation.spec.js | 10 +++++----- test/cypress/support/commands.js | 4 +++- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/cypress.config.js b/cypress.config.js index ee14c3733..2ceb523c7 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -1,4 +1,5 @@ import { defineConfig } from 'cypress'; +import vitePreprocessor from 'cypress-vite'; // https://docs.cypress.io/app/tooling/reporters // https://docs.cypress.io/app/references/configuration // https://www.npmjs.com/package/cypress-mochawesome-reporter @@ -35,6 +36,7 @@ export default defineConfig({ supportFile: 'test/cypress/support/unit.js', }, setupNodeEvents: async (on, config) => { + on('file:preprocessor', vitePreprocessor()); const plugin = await import('cypress-mochawesome-reporter/plugin'); plugin.default(on); return config; @@ -42,4 +44,13 @@ export default defineConfig({ viewportWidth: 1280, viewportHeight: 720, }, + retries: { + experimentalStrategy: 'detect-flake-and-pass-on-threshold', + experimentalOptions: { + maxRetries: 1, + passesRequired: 1, + }, + openMode: false, + runMode: true, + }, }); diff --git a/package.json b/package.json index 17f39cad7..381aca34c 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "autoprefixer": "^10.4.14", "cypress": "^13.6.6", "cypress-mochawesome-reporter": "^3.8.2", + "cypress-vite": "^1.6.0", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-cypress": "^4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31a01e69c..8dd87347b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,6 +76,9 @@ devDependencies: cypress-mochawesome-reporter: specifier: ^3.8.2 version: 3.8.2(cypress@13.17.0)(mocha@11.0.1) + cypress-vite: + specifier: ^1.6.0 + version: 1.6.0(vite@6.0.11) eslint: specifier: ^9.18.0 version: 9.18.0 @@ -3338,6 +3341,18 @@ packages: - mocha dev: true + /cypress-vite@1.6.0(vite@6.0.11): + resolution: {integrity: sha512-6oZPDvHgLEZjuFgoejtRuyph369zbVn7fjh4hzhMar3XvKT5YhTEoA+KixksMuxNEaLn9uqA4HJVz6l7BybwBQ==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + dependencies: + chokidar: 3.6.0 + debug: 4.4.0(supports-color@8.1.1) + vite: 6.0.11(@types/node@22.10.7)(sass-embedded@1.83.4)(sass@1.83.4) + transitivePeerDependencies: + - supports-color + dev: true + /cypress@13.17.0: resolution: {integrity: sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} diff --git a/test/cypress/integration/vnComponent/VnLocation.spec.js b/test/cypress/integration/vnComponent/VnLocation.spec.js index 751b3a065..4cfcf2184 100644 --- a/test/cypress/integration/vnComponent/VnLocation.spec.js +++ b/test/cypress/integration/vnComponent/VnLocation.spec.js @@ -1,4 +1,4 @@ -const { randomNumber, randomString } = require('../../support'); +import { randomNumber, randomString } from 'test/cypress/support/index.js'; describe('VnLocation', () => { const locationOptions = '[role="listbox"] > div.q-virtual-scroll__content > .q-item'; @@ -40,7 +40,7 @@ describe('VnLocation', () => { cy.selectOption(countrySelector, country); cy.dataCy('locationProvince').type(`${province}{enter}`); cy.get( - `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) ` + `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix} > :nth-child(3) `, ).click(); cy.dataCy('locationProvince').should('have.value', province); }); @@ -87,7 +87,7 @@ describe('VnLocation', () => { .get(':nth-child(1)') .should('have.length.at.least', 2); cy.get( - firstOption.concat(' > .q-item__section > .q-item__label--caption') + firstOption.concat(' > .q-item__section > .q-item__label--caption'), ).should('have.text', postCodeLabel); cy.get(firstOption).click(); cy.get('.q-btn-group > .q-btn--standard > .q-btn__content > .q-icon').click(); @@ -103,7 +103,7 @@ describe('VnLocation', () => { cy.get('.q-card > h1').should('have.text', 'New postcode'); cy.selectOption( `${createForm.prefix} > :nth-child(4) > .q-select > ${createForm.sufix}`, - province + province, ); cy.get(dialogInputs).eq(0).clear(); cy.get(dialogInputs).eq(0).type(postCode); @@ -156,7 +156,7 @@ describe('VnLocation', () => { cy.get(createLocationButton).click(); cy.selectOption( `${createForm.prefix} > :nth-child(5) > :nth-child(3) `, - 'España' + 'España', ); cy.dataCy('Province_icon').click(); diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 01f706aff..aa67a9558 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -27,7 +27,9 @@ // DO NOT REMOVE // Imports Quasar Cypress AE predefined commands // import { registerCommands } from '@quasar/quasar-app-extension-testing-e2e-cypress'; -Cypress.Commands.add('waitUntil', { prevSubject: 'optional' }, require('./waitUntil')); +import waitUntil from './waitUntil'; +Cypress.Commands.add('waitUntil', { prevSubject: 'optional' }, waitUntil); + Cypress.Commands.add('resetDB', () => { cy.exec('pnpm run resetDatabase'); }); From 42ba6969adb52fe637d4f64ad125a567df45af74 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 15:09:40 +0100 Subject: [PATCH 133/516] test: refs #6695 run all e2e (try better selectOption) --- cypress.config.js | 9 --- src/pages/InvoiceOut/InvoiceOutList.vue | 2 - .../integration/client/clientList.spec.js | 2 +- test/cypress/support/commands.js | 64 ++++++------------- 4 files changed, 22 insertions(+), 55 deletions(-) diff --git a/cypress.config.js b/cypress.config.js index 2ceb523c7..4c7731fd0 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -44,13 +44,4 @@ export default defineConfig({ viewportWidth: 1280, viewportHeight: 720, }, - retries: { - experimentalStrategy: 'detect-flake-and-pass-on-threshold', - experimentalOptions: { - maxRetries: 1, - passesRequired: 1, - }, - openMode: false, - runMode: true, - }, }); diff --git a/src/pages/InvoiceOut/InvoiceOutList.vue b/src/pages/InvoiceOut/InvoiceOutList.vue index 9398ded64..c322da342 100644 --- a/src/pages/InvoiceOut/InvoiceOutList.vue +++ b/src/pages/InvoiceOut/InvoiceOutList.vue @@ -21,7 +21,6 @@ import VnSection from 'src/components/common/VnSection.vue'; const { t } = useI18n(); const { viewSummary } = useSummaryDialog(); const tableRef = ref(); -const invoiceOutSerialsOptions = ref([]); const customerOptions = ref([]); const selectedRows = ref([]); const hasSelectedCards = computed(() => selectedRows.value.length > 0); @@ -369,7 +368,6 @@ watchEffect(selectedRows); url="InvoiceOutSerials" v-model="data.serial" :label="t('invoiceOutModule.serial')" - :options="invoiceOutSerialsOptions" option-label="description" option-value="code" option-filter diff --git a/test/cypress/integration/client/clientList.spec.js b/test/cypress/integration/client/clientList.spec.js index dcded63b0..9b83a00f2 100644 --- a/test/cypress/integration/client/clientList.spec.js +++ b/test/cypress/integration/client/clientList.spec.js @@ -62,7 +62,7 @@ describe('Client list', () => { it('Client founded create order', () => { const search = 'Jessica Jones'; cy.searchByLabel('Name', search); - cy.openActionDescriptor('New order'); + cy.clickButtonsDescriptor(3); // New order cy.waitForElement('#formModel'); cy.waitForElement('.q-form'); cy.checkValueForm(1, search); diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index aa67a9558..2cb85153d 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -91,26 +91,30 @@ Cypress.Commands.add('getValue', (selector) => { // Fill Inputs Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { cy.waitForElement(selector, timeout); // Esperar a que el selector sea visible - cy.get(selector).click({ force: true }).invoke('data', 'url').as('dataUrl'); - // Escribir la opción deseada - let hasUrl; - cy.get('@dataUrl').then((url) => { - hasUrl = url; - cy.intercept('GET', url).as('dataRequest'); - }); - cy.get(selector).clear().type(option); + cy.get(selector) + .click({ force: true }) + .invoke('data', 'url') + .then((url) => { + let finished; + if (url) { + cy.intercept('GET', url, () => { + finished = true; + }).as('dataRequest'); + } + cy.get(selector).clear().type(option); - if (hasUrl) { - cy.wait('@dataRequest').then(() => { - cy.get('.q-menu').should('be.visible').and('exist'); - cy.get('.q-menu').should('not.be.visible'); - cy.get('.q-menu').should('be.visible').and('exist'); + if (!finished && url) { + cy.wait('@dataRequest'); + } + + cy.get('.q-menu', { timeout }).should('exist').should('be.visible'); + + cy.get('.q-menu:visible') + .find('.q-item') + .contains(option) + .click({ force: true }); }); - } - - // Finalmente, seleccionar la opción deseada - cy.get('.q-menu:visible').find('.q-item').contains(option).click({ force: true }); }); Cypress.Commands.add('countSelectOptions', (selector, option) => { @@ -281,36 +285,10 @@ Cypress.Commands.add('validateContent', (selector, expectedValue) => { cy.get(selector).should('have.text', expectedValue); }); -Cypress.Commands.add('openActionDescriptor', (opt) => { - cy.openActionsDescriptor(); - const listItem = '[role="menu"] .q-list .q-item'; - cy.contains(listItem, opt).click(); - 1; -}); - Cypress.Commands.add('openActionsDescriptor', () => { cy.get('[data-cy="descriptor-more-opts"]').click(); }); -Cypress.Commands.add('clickButtonsDescriptor', (id) => { - cy.get(`.actions > .q-card__actions> .q-btn:nth-child(${id})`) - .invoke('removeAttr', 'target') - .click(); -}); - -Cypress.Commands.add('openActionDescriptor', (opt) => { - cy.openActionsDescriptor(); - const listItem = '[role="menu"] .q-list .q-item'; - cy.contains(listItem, opt).click(); - 1; -}); - -Cypress.Commands.add('clickButtonsDescriptor', (id) => { - cy.get(`.actions > .q-card__actions> .q-btn:nth-child(${id})`) - .invoke('removeAttr', 'target') - .click(); -}); - Cypress.Commands.add('openActionDescriptor', (opt) => { cy.openActionsDescriptor(); const listItem = '[role="menu"] .q-list .q-item'; From c11993c41349d505876bf320eb33deb38492c527 Mon Sep 17 00:00:00 2001 From: alexm Date: Mon, 3 Feb 2025 15:26:42 +0100 Subject: [PATCH 134/516] test: refs #6695 run all e2e (try better selectOption) --- test/cypress/support/commands.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 2cb85153d..b567177ac 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -108,9 +108,9 @@ Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { cy.wait('@dataRequest'); } - cy.get('.q-menu', { timeout }).should('exist').should('be.visible'); - - cy.get('.q-menu:visible') + cy.get('.q-menu', { timeout }) + .should('exist') + .should('be.visible') .find('.q-item') .contains(option) .click({ force: true }); From 6fe44481b6a57093fb36211c13a86dabe352679a Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 4 Feb 2025 09:13:41 +0100 Subject: [PATCH 135/516] test: refs #6695 run all e2e (try better selectOption) --- .../integration/Order/orderCatalog.spec.js | 3 +- .../integration/client/clientList.spec.js | 1 - test/cypress/support/commands.js | 57 ++++++++++++------- 3 files changed, 36 insertions(+), 25 deletions(-) diff --git a/test/cypress/integration/Order/orderCatalog.spec.js b/test/cypress/integration/Order/orderCatalog.spec.js index cffc47f91..a106d0e8a 100644 --- a/test/cypress/integration/Order/orderCatalog.spec.js +++ b/test/cypress/integration/Order/orderCatalog.spec.js @@ -41,11 +41,10 @@ describe('OrderCatalog', () => { } }); cy.get( - '[data-cy="vn-searchbar"] > .q-field > .q-field__inner > .q-field__control' + '[data-cy="vn-searchbar"] > .q-field > .q-field__inner > .q-field__control', ).type('{enter}'); cy.get(':nth-child(1) > [data-cy="catalogFilterCategory"]').click(); cy.dataCy('catalogFilterValueDialogBtn').last().click(); - cy.get('[data-cy="catalogFilterValueDialogTagSelect"]').click(); cy.selectOption("[data-cy='catalogFilterValueDialogTagSelect']", 'Tallos'); cy.dataCy('catalogFilterValueDialogValueInput').find('input').focus(); cy.dataCy('catalogFilterValueDialogValueInput').find('input').type('2'); diff --git a/test/cypress/integration/client/clientList.spec.js b/test/cypress/integration/client/clientList.spec.js index 9b83a00f2..c1c69882e 100644 --- a/test/cypress/integration/client/clientList.spec.js +++ b/test/cypress/integration/client/clientList.spec.js @@ -66,6 +66,5 @@ describe('Client list', () => { cy.waitForElement('#formModel'); cy.waitForElement('.q-form'); cy.checkValueForm(1, search); - cy.checkValueForm(2, search); }); }); diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index b567177ac..6cb962d81 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -91,32 +91,45 @@ Cypress.Commands.add('getValue', (selector) => { // Fill Inputs Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { cy.waitForElement(selector, timeout); // Esperar a que el selector sea visible - - cy.get(selector) - .click({ force: true }) - .invoke('data', 'url') - .then((url) => { - let finished; - if (url) { - cy.intercept('GET', url, () => { - finished = true; - }).as('dataRequest'); + cy.get(selector).click(); + cy.get('.q-item', { timeout: 5000 }) + .should('exist') + .should('be.visible') + .then(($items) => { + const opcionEncontrada = $items + .toArray() + .some((item) => item.innerText.includes(option)); + if (opcionEncontrada) { + cy.contains('.q-item', option).click(); + } else { + cy.get(selector).clear().type(option); + let retries = 0; + retrySelectOption(selector, option, timeout, retries); } - cy.get(selector).clear().type(option); - - if (!finished && url) { - cy.wait('@dataRequest'); - } - - cy.get('.q-menu', { timeout }) - .should('exist') - .should('be.visible') - .find('.q-item') - .contains(option) - .click({ force: true }); }); }); +function retrySelectOption(selector, option, timeout, retries) { + cy.log('RETRY', retries); + if (retries == 10) throw new Error('Maximum number of retries exceeded → ', option); + cy.get('.q-menu', { timeout }) + .should('exist') + .then(($menu) => { + if ($menu.is(':visible')) { + cy.get('.q-item') + .should('exist') + .should('be.visible') + .contains(option) + .click(); + // cy.get(selector).blur(); + } else { + cy.wait(100).then(() => { + retrySelectOption(selector, option, timeout, retries + 1); + }); + } + }); +} + Cypress.Commands.add('countSelectOptions', (selector, option) => { cy.waitForElement(selector); cy.get(selector).click({ force: true }); From 6388d4e0f4e6562e8ac51382310ee33f1bdd9b20 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 4 Feb 2025 12:59:44 +0100 Subject: [PATCH 136/516] test: refs #6695 run all e2e (try better selectOption) --- .../integration/client/clientSms.spec.js | 2 +- test/cypress/support/commands.js | 77 +++++++++++++++---- 2 files changed, 63 insertions(+), 16 deletions(-) diff --git a/test/cypress/integration/client/clientSms.spec.js b/test/cypress/integration/client/clientSms.spec.js index 731522a5c..5d2ee1323 100644 --- a/test/cypress/integration/client/clientSms.spec.js +++ b/test/cypress/integration/client/clientSms.spec.js @@ -7,6 +7,6 @@ describe('Client notes', () => { }); it('Should load layout', () => { cy.get('.q-page').should('be.visible'); - cy.get('.q-page > :nth-child(2) > :nth-child(1)').should('be.visible'); + cy.get('.q-page').find('.q-card').should('be.visible'); }); }); diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 6cb962d81..1f2139758 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -89,27 +89,74 @@ Cypress.Commands.add('getValue', (selector) => { }); // Fill Inputs -Cypress.Commands.add('selectOption', (selector, option, timeout = 10000) => { - cy.waitForElement(selector, timeout); // Esperar a que el selector sea visible - cy.get(selector).click(); - cy.get('.q-item', { timeout: 5000 }) +Cypress.Commands.add('selectOption', (selector, option, timeout = 2500) => { + cy.waitForElement(selector, timeout); + + cy.get(selector, { timeout }) // Selecciona el elemento que tiene el atributo data-cy + .should('exist') // Verifica que el input exista + .should('be.visible') // Verifica que el input exista + .click() + .then(($el) => { + if ($el.is('input')) { + return checkAriaControl($el); + } + checkAriaControl($el.find('input')); + }); + + function checkAriaControl(input) { + cy.wrap(input) + .invoke('attr', 'aria-controls') // Obtiene el valor del atributo aria-controls + .then((ariaControl) => { + cy.log('ARIA', ariaControl); // Muestra el valor en la consola de Cypress + let retries = 0; + cy.retryCheckItem(ariaControl, selector, option, retries); + }); + } +}); + +Cypress.Commands.add('retryCheckItem', (ariaControl, selector, option, retries) => { + if (retries == 10) throw new Error('Maximum number of retries exceeded → ', option); + cy.get('#' + ariaControl) + .should('exist') + .find('.q-item') .should('exist') - .should('be.visible') .then(($items) => { - const opcionEncontrada = $items + cy.log('ASDASD', $items?.length); + if (!$items?.length) + return cy + .wait(50) + .then(() => + cy.retryCheckItem(ariaControl, selector, option, retries + 1), + ); + const data = $items.toArray().map((item) => item.innerText); + const dataString = JSON.stringify(data); + cy.log('OPTIONS', dataString); + if (data[0] == '') + return cy + .wait(50) + .then(() => + cy.retryCheckItem(ariaControl, selector, option, retries + 1), + ); + cy.log('PASSED'); + const optionFinded = $items .toArray() .some((item) => item.innerText.includes(option)); - if (opcionEncontrada) { - cy.contains('.q-item', option).click(); + + if (optionFinded) { + const itemAClickear = $items + .filter((_, item) => item.innerText.includes(option)) + .first(); + cy.wrap(itemAClickear).click(); // Haz clic en el elemento encontrado } else { - cy.get(selector).clear().type(option); - let retries = 0; - retrySelectOption(selector, option, timeout, retries); + throw new Error('Option not found → ', option); + // cy.get(selector, { timeout }).clear().type(option); + // let retries = 0; + // cy.retrySelectOption(selector, option, timeout, retries); } }); }); -function retrySelectOption(selector, option, timeout, retries) { +Cypress.Commands.add('retrySelectOption', (selector, option, timeout, retries) => { cy.log('RETRY', retries); if (retries == 10) throw new Error('Maximum number of retries exceeded → ', option); cy.get('.q-menu', { timeout }) @@ -121,14 +168,14 @@ function retrySelectOption(selector, option, timeout, retries) { .should('be.visible') .contains(option) .click(); - // cy.get(selector).blur(); + cy.get(selector).blur(); } else { cy.wait(100).then(() => { - retrySelectOption(selector, option, timeout, retries + 1); + cy.retrySelectOption(selector, option, timeout, retries + 1); }); } }); -} +}); Cypress.Commands.add('countSelectOptions', (selector, option) => { cy.waitForElement(selector); From 2c0370d3db88db957d6c79d13bcd2ed19d0d81a9 Mon Sep 17 00:00:00 2001 From: Alex Moreno Date: Tue, 4 Feb 2025 13:07:51 +0000 Subject: [PATCH 137/516] Actualizar docker-compose.e2e.yml --- docker-compose.e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index adb315c45..698f1b7c2 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -8,7 +8,7 @@ services: dockerfile: ./Dockerfile network_mode: host e2e: - command: npx cypress run + command: npx cypress run --browser chrome build: context: . dockerfile: ./Dockerfile.e2e From 8d923a8b758bf69691d39de251baadd538fdb7fb Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 07:15:10 +0100 Subject: [PATCH 138/516] test: refs #6695 e2e run with chrome --- Dockerfile.e2e | 25 +++++++++++++++++-------- cypress.config.js | 3 +++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 91269f8d8..6443cab16 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -2,17 +2,29 @@ FROM node:lts-bookworm ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" + RUN npm install -g pnpm@8.15.1 && \ pnpm setup RUN apt-get -y --fix-missing update && \ apt-get -y --fix-missing upgrade && \ - apt-get -y --no-install-recommends install apt-utils libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb && \ - apt-get clean && rm -rf /var/lib/apt/lists/* + apt-get -y --no-install-recommends install \ + apt-utils \ + libgtk2.0-0 \ + libgtk-3-0 \ + libgbm-dev \ + libnotify-dev \ + libnss3 \ + libxss1 \ + libasound2 \ + libxtst6 \ + xauth \ + xvfb \ + chromium \ + && apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /app - COPY \ package.json \ .npmrc \ @@ -29,16 +41,13 @@ COPY \ index.html \ jsconfig.json \ quasar.extensions.json \ - # .eslintignore \ - # .eslintrc.js \ postcss.config.js \ cypress.config.js \ ./ -COPY src src COPY test/cypress test/cypress -COPY public public -# RUN npx quasar build +ENV CYPRESS_BROWSER=chrome +ENV CHROME_BIN=/usr/bin/chromium CMD ["npx", "cypress", "run"] diff --git a/cypress.config.js b/cypress.config.js index 4c7731fd0..4eb7692ca 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -44,4 +44,7 @@ export default defineConfig({ viewportWidth: 1280, viewportHeight: 720, }, + experimentalMemoryManagement: true, + defaultCommandTimeout: 10000, + numTestsKeptInMemory: 1000, }); From 134d718c6eae78d09f0ea037cbc477442d49478a Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 07:15:15 +0100 Subject: [PATCH 139/516] test: refs #6695 e2e run with chrome --- Dockerfile.e2e | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 6443cab16..5210ebae4 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -37,8 +37,6 @@ RUN pnpm install && \ npx cypress install COPY \ - quasar.config.js \ - index.html \ jsconfig.json \ quasar.extensions.json \ postcss.config.js \ From e8325edefed178dae665bfc1bf6caee82271eb72 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 07:17:56 +0100 Subject: [PATCH 140/516] test: refs #6695 e2e run with chrome --- docker-compose.e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 698f1b7c2..9097e3701 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -8,7 +8,7 @@ services: dockerfile: ./Dockerfile network_mode: host e2e: - command: npx cypress run --browser chrome + command: npx cypress run --browser chromium build: context: . dockerfile: ./Dockerfile.e2e From dbea92cb5360f0003f7765af80a2799a93137856 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 07:44:14 +0100 Subject: [PATCH 141/516] test: refs #6695 e2e better selectOption --- test/cypress/support/commands.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index e33a5bb6e..36a38cfb6 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -148,10 +148,10 @@ Cypress.Commands.add('retryCheckItem', (ariaControl, selector, option, retries) .first(); cy.wrap(itemAClickear).click(); // Haz clic en el elemento encontrado } else { - throw new Error('Option not found → ', option); - // cy.get(selector, { timeout }).clear().type(option); - // let retries = 0; - // cy.retrySelectOption(selector, option, timeout, retries); + // throw new Error('Option not found → ', option); + cy.get(selector, { timeout }).clear().type(option); + let retries = 0; + cy.retrySelectOption(selector, option, timeout, retries); } }); }); From e8788cf2d0e478778ebc6fed2f11da5d7f10a763 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 08:32:32 +0100 Subject: [PATCH 142/516] test: refs #6695 e2e better selectOption --- test/cypress/support/commands.js | 88 ++++++++++++-------------------- 1 file changed, 32 insertions(+), 56 deletions(-) diff --git a/test/cypress/support/commands.js b/test/cypress/support/commands.js index 36a38cfb6..438f0ce8d 100755 --- a/test/cypress/support/commands.js +++ b/test/cypress/support/commands.js @@ -108,74 +108,50 @@ Cypress.Commands.add('selectOption', (selector, option, timeout = 2500) => { .invoke('attr', 'aria-controls') // Obtiene el valor del atributo aria-controls .then((ariaControl) => { cy.log('ARIA', ariaControl); // Muestra el valor en la consola de Cypress - let retries = 0; - cy.retryCheckItem(ariaControl, selector, option, retries); + getItems(ariaControl).then((items) => { + cy.log('items: ', items); + const matchingItem = items + .toArray() + .find((item) => item.innerText.includes(option)); + if (!matchingItem) return findOption(selector, option, ariaControl); + cy.wrap(matchingItem).click(); + }); }); } }); -Cypress.Commands.add('retryCheckItem', (ariaControl, selector, option, retries) => { - if (retries == 10) throw new Error('Maximum number of retries exceeded → ', option); - cy.get('#' + ariaControl) +function getItems(ariaControl, startTime = Cypress._.now(), timeout = 2500) { + return cy + .get('#' + ariaControl, { timeout }) // Se asegura de que el selector aparezca en tiempo razonable .should('exist') .find('.q-item') .should('exist') .then(($items) => { - cy.log('ASDASD', $items?.length); - if (!$items?.length) - return cy - .wait(50) - .then(() => - cy.retryCheckItem(ariaControl, selector, option, retries + 1), + if (!$items?.length || $items.first().text().trim() === '') { + // 🔹 Si ha pasado más tiempo que el límite, falla el test + if (Cypress._.now() - startTime > timeout) { + throw new Error( + `getItems: Tiempo de espera (${timeout}ms) excedido.`, ); - const data = $items.toArray().map((item) => item.innerText); - const dataString = JSON.stringify(data); - cy.log('OPTIONS', dataString); - if (data[0] == '') - return cy - .wait(50) - .then(() => - cy.retryCheckItem(ariaControl, selector, option, retries + 1), - ); - cy.log('PASSED'); - const optionFinded = $items - .toArray() - .some((item) => item.innerText.includes(option)); - - if (optionFinded) { - const itemAClickear = $items - .filter((_, item) => item.innerText.includes(option)) - .first(); - cy.wrap(itemAClickear).click(); // Haz clic en el elemento encontrado - } else { - // throw new Error('Option not found → ', option); - cy.get(selector, { timeout }).clear().type(option); - let retries = 0; - cy.retrySelectOption(selector, option, timeout, retries); + } + return getItems(ariaControl, startTime, timeout); } - }); -}); -Cypress.Commands.add('retrySelectOption', (selector, option, timeout, retries) => { - cy.log('RETRY', retries); - if (retries == 10) throw new Error('Maximum number of retries exceeded → ', option); - cy.get('.q-menu', { timeout }) - .should('exist') - .then(($menu) => { - if ($menu.is(':visible')) { - cy.get('.q-item') - .should('exist') - .should('be.visible') - .contains(option) - .click(); - cy.get(selector).blur(); - } else { - cy.wait(100).then(() => { - cy.retrySelectOption(selector, option, timeout, retries + 1); - }); - } + return cy.wrap($items); }); -}); +} + +function findOption(selector, option, ariaControl) { + cy.get(selector).clear().type(option); + // cy.get('.q-menu').should('not.be.visible'); + getItems(ariaControl).then((items) => { + cy.log('findOption items: ', items); + const matchingItem = items + .toArray() + .find((item) => item.innerText.includes(option)); + cy.wrap(matchingItem).click(); + }); +} Cypress.Commands.add('countSelectOptions', (selector, option) => { cy.waitForElement(selector); From 3946e78dbf36e9a63500bc1fa18c10ef41cc2436 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 08:45:41 +0100 Subject: [PATCH 143/516] test: refs #6695 better Dockerfile.e2e --- Dockerfile.e2e | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 5210ebae4..a7da3f17f 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -25,14 +25,10 @@ RUN apt-get -y --fix-missing update && \ WORKDIR /app -COPY \ - package.json \ - .npmrc \ - pnpm-lock.yaml \ - ./ +COPY package.json .npmrc pnpm-lock.yaml ./ +COPY node_modules ./node_modules -RUN pnpm install && \ - pnpm install -g @quasar/cli@2.2.1 && \ +RUN pnpm install --frozen-lockfile && \ pnpm install cypress && \ npx cypress install From ad5d824d8c59913b64dcdf4e885a88cc23e473db Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 08:52:07 +0100 Subject: [PATCH 144/516] test: refs #6695 better Dockerfile.e2e --- Dockerfile.e2e | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index a7da3f17f..ea7f4f4a2 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -1,11 +1,15 @@ -FROM node:lts-bookworm -ENV SHELL bash +# Etapa 1: Construcción de dependencias +FROM node:lts-bookworm AS builder + +# Configurar PNPM +ENV SHELL=/bin/bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN npm install -g pnpm@8.15.1 && \ pnpm setup +# Actualizar e instalar paquetes necesarios RUN apt-get -y --fix-missing update && \ apt-get -y --fix-missing upgrade && \ apt-get -y --no-install-recommends install \ @@ -21,27 +25,34 @@ RUN apt-get -y --fix-missing update && \ xauth \ xvfb \ chromium \ - && apt-get clean && rm -rf /var/lib/apt/lists/* + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* +# Establecer directorio de trabajo WORKDIR /app +# Copiar archivos de configuración primero COPY package.json .npmrc pnpm-lock.yaml ./ + +# Verificar si node_modules existe en el contexto COPY node_modules ./node_modules -RUN pnpm install --frozen-lockfile && \ - pnpm install cypress && \ - npx cypress install +# Instalar dependencias (solo si node_modules no está disponible) +RUN if [ ! -d "node_modules" ]; then \ + pnpm install --frozen-lockfile; \ + fi -COPY \ - jsconfig.json \ - quasar.extensions.json \ - postcss.config.js \ - cypress.config.js \ - ./ - -COPY test/cypress test/cypress +# Copiar dependencias desde la etapa de construcción +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/test/cypress ./test/cypress +COPY --from=builder /app/jsconfig.json ./jsconfig.json +COPY --from=builder /app/quasar.extensions.json ./quasar.extensions.json +COPY --from=builder /app/postcss.config.js ./postcss.config.js +COPY --from=builder /app/cypress.config.js ./cypress.config.js +# Configuración de Cypress ENV CYPRESS_BROWSER=chrome ENV CHROME_BIN=/usr/bin/chromium +# Comando por defecto CMD ["npx", "cypress", "run"] From f7ce244bf2f4da91e082ea54396e0d740541dcb5 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 09:02:14 +0100 Subject: [PATCH 145/516] test: refs #6695 comment test unit --- Jenkinsfile | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 224a49c97..c38727aab 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,25 +66,25 @@ pipeline { sh 'pnpm install --prefer-offline' } } - stage('Test: Unit') { - when { - expression { !PROTECTED_BRANCH } - } - environment { - NODE_ENV = "" - } - steps { - sh 'pnpm run test:unit:ci' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } - } - } + // stage('Test: Unit') { + // when { + // expression { !PROTECTED_BRANCH } + // } + // environment { + // NODE_ENV = "" + // } + // steps { + // sh 'pnpm run test:unit:ci' + // } + // post { + // always { + // junit( + // testResults: 'junitresults.xml', + // allowEmptyResults: true + // ) + // } + // } + // } stage('Test: E2E') { when { expression { !PROTECTED_BRANCH } From 1f38a342693373c4a0cc51218617943fac9feba6 Mon Sep 17 00:00:00 2001 From: alexm Date: Wed, 5 Feb 2025 09:32:02 +0100 Subject: [PATCH 146/516] test: refs #6695 better Dockerfile.e2e --- Dockerfile.e2e | 44 +++++++++++++++++++----------------------- docker-compose.e2e.yml | 2 ++ 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/Dockerfile.e2e b/Dockerfile.e2e index ea7f4f4a2..720f7414d 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -1,15 +1,11 @@ -# Etapa 1: Construcción de dependencias -FROM node:lts-bookworm AS builder - -# Configurar PNPM -ENV SHELL=/bin/bash +FROM node:lts-bookworm +ENV SHELL bash ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN npm install -g pnpm@8.15.1 && \ pnpm setup -# Actualizar e instalar paquetes necesarios RUN apt-get -y --fix-missing update && \ apt-get -y --fix-missing upgrade && \ apt-get -y --no-install-recommends install \ @@ -28,31 +24,31 @@ RUN apt-get -y --fix-missing update && \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -# Establecer directorio de trabajo WORKDIR /app -# Copiar archivos de configuración primero -COPY package.json .npmrc pnpm-lock.yaml ./ +COPY \ + package.json \ + .npmrc \ + pnpm-lock.yaml \ + ./ -# Verificar si node_modules existe en el contexto -COPY node_modules ./node_modules - -# Instalar dependencias (solo si node_modules no está disponible) +# Verifica si node_modules existe; si no, instala dependencias RUN if [ ! -d "node_modules" ]; then \ - pnpm install --frozen-lockfile; \ - fi + pnpm install; \ + fi && \ + pnpm install cypress && \ + npx cypress install -# Copiar dependencias desde la etapa de construcción -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/test/cypress ./test/cypress -COPY --from=builder /app/jsconfig.json ./jsconfig.json -COPY --from=builder /app/quasar.extensions.json ./quasar.extensions.json -COPY --from=builder /app/postcss.config.js ./postcss.config.js -COPY --from=builder /app/cypress.config.js ./cypress.config.js +COPY \ + jsconfig.json \ + quasar.extensions.json \ + postcss.config.js \ + cypress.config.js \ + ./ + +COPY test/cypress test/cypress -# Configuración de Cypress ENV CYPRESS_BROWSER=chrome ENV CHROME_BIN=/usr/bin/chromium -# Comando por defecto CMD ["npx", "cypress", "run"] diff --git a/docker-compose.e2e.yml b/docker-compose.e2e.yml index 9097e3701..799d37a40 100644 --- a/docker-compose.e2e.yml +++ b/docker-compose.e2e.yml @@ -13,6 +13,8 @@ services: context: . dockerfile: ./Dockerfile.e2e network_mode: host + volumes: + - ./node_modules:/app/node_modules # db: # image: db # command: npx myt run -t --ci -d -n front_default From e597552dc396b28e8735e225bf294655a180f5d6 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 5 Feb 2025 12:55:26 +0100 Subject: [PATCH 147/516] fix: refs #8372 remove trailing commas in various files --- src/boot/qformMixin.js | 9 ++++----- src/components/FormModel.vue | 11 +++++------ src/pages/Customer/components/CustomerNewPayment.vue | 3 +-- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js index 97d80c670..ed21c4137 100644 --- a/src/boot/qformMixin.js +++ b/src/boot/qformMixin.js @@ -9,19 +9,19 @@ export default { if (!form) return; try { const inputsFormCard = form.querySelectorAll( - `input:not([disabled]):not([type="checkbox"])` + `input:not([disabled]):not([type="checkbox"])`, ); if (inputsFormCard.length) { focusFirstInput(inputsFormCard[0]); } const textareas = document.querySelectorAll( - 'textarea:not([disabled]), [contenteditable]:not([disabled])' + 'textarea:not([disabled]), [contenteditable]:not([disabled])', ); if (textareas.length) { focusFirstInput(textareas[textareas.length - 1]); } const inputs = document.querySelectorAll( - 'form#formModel input:not([disabled]):not([type="checkbox"])' + 'form#formModel input:not([disabled]):not([type="checkbox"])', ); const input = inputs[0]; if (!input) return; @@ -31,7 +31,7 @@ export default { console.error(error); } form.addEventListener('keyup', function (evt) { - if (evt.key === 'Enter' && !that.$attrs['prevent-submit']) { + if (evt.key === 'Enter') { const input = evt.target; if (input.type == 'textarea' && evt.shiftKey) { evt.preventDefault(); @@ -44,7 +44,6 @@ export default { return; } evt.preventDefault(); - that.onSubmit(); } }); }, diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index 2e580257c..747f52a45 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -97,7 +97,7 @@ const $props = defineProps({ }); const emit = defineEmits(['onFetch', 'onDataSaved']); const modelValue = computed( - () => $props.model ?? `formModel_${route?.meta?.title ?? route.name}` + () => $props.model ?? `formModel_${route?.meta?.title ?? route.name}`, ).value; const componentIsRendered = ref(false); const arrayData = useArrayData(modelValue); @@ -148,7 +148,7 @@ onMounted(async () => { JSON.stringify(newVal) !== JSON.stringify(originalData.value); isResetting.value = false; }, - { deep: true } + { deep: true }, ); } }); @@ -156,7 +156,7 @@ onMounted(async () => { if (!$props.url) watch( () => arrayData.store.data, - (val) => updateAndEmit('onFetch', val) + (val) => updateAndEmit('onFetch', val), ); watch( @@ -165,7 +165,7 @@ watch( originalData.value = null; reset(); await fetch(); - } + }, ); onBeforeRouteLeave((to, from, next) => { @@ -254,7 +254,7 @@ function filter(value, update, filterOptions) { (ref) => { ref.setOptionIndex(-1); ref.moveOptionSelection(1, true); - } + }, ); } @@ -293,7 +293,6 @@ defineExpose({ class="q-pa-md" :style="maxWidth ? 'max-width: ' + maxWidth : ''" id="formModel" - :prevent-submit="$attrs['prevent-submit']" >