diff --git a/eslint.config.js b/eslint.config.js index 598502eab2cfba0109b2b53b213fed8d590b8074..805dc6fc5c47ba85601b20a186df94f603a0e9f1 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -27,4 +27,7 @@ export default [ "vue/require-prop-types": "off", }, }, + { + ignores: ["src/utils/md5.js"], + }, ]; diff --git a/package-lock.json b/package-lock.json index da62351ca6317c0874411306d9c64fe75b6c9bf9..df430f6f9973e4e4aec5bf381ac9762e338854ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -281,68 +281,68 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.693.0.tgz", - "integrity": "sha512-vgGI2e0Q6pzyhqfrSysi+sk/i+Nl+lMon67oqj/57RcCw9daL1/inpS+ADuwHpiPWkrg+U0bOXnmHjkLeTslJg==", + "version": "3.697.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.697.0.tgz", + "integrity": "sha512-NJ5V9whlb99YVAG/b0nLSb9sM/ZrEJZC+JT3Skxu7dgo6LIFLavdXjEtkR+rFdG34Gps34jwJ7wvKG2mp1zKHg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-bucket-endpoint": "3.693.0", - "@aws-sdk/middleware-expect-continue": "3.693.0", - "@aws-sdk/middleware-flexible-checksums": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-location-constraint": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-sdk-s3": "3.693.0", - "@aws-sdk/middleware-ssec": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/signature-v4-multi-region": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@aws-sdk/xml-builder": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/eventstream-serde-browser": "^3.0.12", - "@smithy/eventstream-serde-config-resolver": "^3.0.9", - "@smithy/eventstream-serde-node": "^3.0.11", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-blob-browser": "^3.1.8", - "@smithy/hash-node": "^3.0.9", - "@smithy/hash-stream-node": "^3.1.8", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/md5-js": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.696.0", + "@aws-sdk/client-sts": "3.696.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.696.0", + "@aws-sdk/middleware-bucket-endpoint": "3.696.0", + "@aws-sdk/middleware-expect-continue": "3.696.0", + "@aws-sdk/middleware-flexible-checksums": "3.697.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-location-constraint": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-sdk-s3": "3.696.0", + "@aws-sdk/middleware-ssec": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/signature-v4-multi-region": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@aws-sdk/xml-builder": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/eventstream-serde-browser": "^3.0.13", + "@smithy/eventstream-serde-config-resolver": "^3.0.10", + "@smithy/eventstream-serde-node": "^3.0.12", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-blob-browser": "^3.1.9", + "@smithy/hash-node": "^3.0.10", + "@smithy/hash-stream-node": "^3.1.9", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/md5-js": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.8", + "@smithy/util-waiter": "^3.1.9", "tslib": "^2.6.2" }, "engines": { @@ -350,47 +350,47 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.693.0.tgz", - "integrity": "sha512-QEynrBC26x6TG9ZMzApR/kZ3lmt4lEIs2D+cHuDxt6fDGzahBUsQFBwJqhizzsM97JJI5YvmJhmihoYjdSSaXA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.696.0.tgz", + "integrity": "sha512-q5TTkd08JS0DOkHfUL853tuArf7NrPeqoS5UOvqJho8ibV9Ak/a/HO4kNvy9Nj3cib/toHYHsQIEtecUPSUUrQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -399,48 +399,48 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.693.0.tgz", - "integrity": "sha512-UEDbYlYtK/e86OOMyFR4zEPyenIxDzO2DRdz3fwVW7RzZ94wfmSwBh/8skzPTuY1G7sI064cjHW0b0QG01Sdtg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.696.0.tgz", + "integrity": "sha512-ikxQ3mo86d1mAq5zTaQAh8rLBERwL+I4MUYu/IVYW2hhl9J2SDsl0SgnKeXQG6S8zWuHcBO587zsZaRta1MQ/g==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.696.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -448,53 +448,53 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.696.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.693.0.tgz", - "integrity": "sha512-4S2y7VEtvdnjJX4JPl4kDQlslxXEZFnC50/UXVUYSt/AMc5A/GgspFNA5FVz4E3Gwpfobbf23hR2NBF8AGvYoQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.696.0.tgz", + "integrity": "sha512-eJOxR8/UyI7kGSRyE751Ea7MKEzllQs7eNveDJy9OP4t/jsN/P19HJ1YHeA1np40JRTUBfqa6WLAAiIXsk8rkg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.696.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.696.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -503,20 +503,20 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.693.0.tgz", - "integrity": "sha512-v6Z/kWmLFqRLDPEwl9hJGhtTgIFHjZugSfF1Yqffdxf4n1AWgtHS7qSegakuMyN5pP4K2tvUD8qHJ+gGe2Bw2A==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.696.0.tgz", + "integrity": "sha512-3c9III1k03DgvRZWg8vhVmfIXPG6hAciN9MzQTzqGngzWAELZF/WONRTRQuDFixVtarQatmLHYVw/atGeA2Byw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/core": "^2.5.2", - "@smithy/node-config-provider": "^3.1.10", + "@aws-sdk/types": "3.696.0", + "@smithy/core": "^2.5.3", + "@smithy/node-config-provider": "^3.1.11", "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.6", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/util-middleware": "^3.0.9", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/util-middleware": "^3.0.10", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -525,15 +525,15 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.693.0.tgz", - "integrity": "sha512-hMUZaRSF7+iBKZfBHNLihFs9zvpM1CB8MBOTnTp5NGCVkRYF3SB2LH+Kcippe0ats4qCyB1eEoyQX99rERp2iQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.696.0.tgz", + "integrity": "sha512-T9iMFnJL7YTlESLpVFT3fg1Lkb1lD+oiaIC8KMpepb01gDUBIpj9+Y+pA/cgRWW0yRxmkDXNazAE2qQTVFGJzA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -541,20 +541,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.693.0.tgz", - "integrity": "sha512-sL8MvwNJU7ZpD7/d2VVb3by1GknIJUxzTIgYtVkDVA/ojo+KRQSSHxcj0EWWXF5DTSh2Tm+LrEug3y1ZyKHsDA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.696.0.tgz", + "integrity": "sha512-GV6EbvPi2eq1+WgY/o2RFA3P7HGmnkIzCNmhwtALFlqMroLYWKE7PSeHw66Uh1dFQeVESn0/+hiUNhu1mB0emA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/node-http-handler": "^3.3.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/node-http-handler": "^3.3.1", "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/util-stream": "^3.3.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/util-stream": "^3.3.1", "tslib": "^2.6.2" }, "engines": { @@ -562,48 +562,48 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.693.0.tgz", - "integrity": "sha512-kvaa4mXhCCOuW7UQnBhYqYfgWmwy7WSBSDClutwSLPZvgrhYj2l16SD2lN4IfYdxARYMJJ1lFYp3/jJG/9Yk4Q==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.696.0.tgz", + "integrity": "sha512-9WsZZofjPjNAAZhIh7c7FOhLK8CR3RnGgUm1tdZzV6ZSM1BuS2m6rdwIilRxAh3fxxKDkmW/r/aYmmCYwA+AYA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-env": "3.693.0", - "@aws-sdk/credential-provider-http": "3.693.0", - "@aws-sdk/credential-provider-process": "3.693.0", - "@aws-sdk/credential-provider-sso": "3.693.0", - "@aws-sdk/credential-provider-web-identity": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-env": "3.696.0", + "@aws-sdk/credential-provider-http": "3.696.0", + "@aws-sdk/credential-provider-process": "3.696.0", + "@aws-sdk/credential-provider-sso": "3.696.0", + "@aws-sdk/credential-provider-web-identity": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/credential-provider-imds": "^3.2.6", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.696.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.693.0.tgz", - "integrity": "sha512-42WMsBjTNnjYxYuM3qD/Nq+8b7UdMopUq5OduMDxoM3mFTV6PXMMnfI4Z1TNnR4tYRvPXAnuNltF6xmjKbSJRA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.696.0.tgz", + "integrity": "sha512-8F6y5FcfRuMJouC5s207Ko1mcVvOXReBOlJmhIwE4QH1CnO/CliIyepnAZrRQ659mo5wIuquz6gXnpYbitEVMg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.693.0", - "@aws-sdk/credential-provider-http": "3.693.0", - "@aws-sdk/credential-provider-ini": "3.693.0", - "@aws-sdk/credential-provider-process": "3.693.0", - "@aws-sdk/credential-provider-sso": "3.693.0", - "@aws-sdk/credential-provider-web-identity": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/credential-provider-env": "3.696.0", + "@aws-sdk/credential-provider-http": "3.696.0", + "@aws-sdk/credential-provider-ini": "3.696.0", + "@aws-sdk/credential-provider-process": "3.696.0", + "@aws-sdk/credential-provider-sso": "3.696.0", + "@aws-sdk/credential-provider-web-identity": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/credential-provider-imds": "^3.2.6", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -611,16 +611,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.693.0.tgz", - "integrity": "sha512-cvxQkrTWHHjeHrPlj7EWXPnFSq8x7vMx+Zn1oTsMpCY445N9KuzjfJTkmNGwU2GT6rSZI9/0MM02aQvl5bBBTQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.696.0.tgz", + "integrity": "sha512-mL1RcFDe9sfmyU5K1nuFkO8UiJXXxLX4JO1gVaDIOvPqwStpUAwi3A1BoeZhWZZNQsiKI810RnYGo0E0WB/hUA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -628,18 +628,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.693.0.tgz", - "integrity": "sha512-479UlJxY+BFjj3pJFYUNC0DCMrykuG7wBAXfsvZqQxKUa83DnH5Q1ID/N2hZLkxjGd4ZW0AC3lTOMxFelGzzpQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.696.0.tgz", + "integrity": "sha512-4SSZ9Nk08JSu4/rX1a+dEac/Ims1HCXfV7YLUe5LGdtRLSKRoQQUy+hkFaGYoSugP/p1UfUPl3BuTO9Vv8z1pA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/token-providers": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/client-sso": "3.696.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/token-providers": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -647,33 +647,33 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.693.0.tgz", - "integrity": "sha512-8LB210Pr6VeCiSb2hIra+sAH4KUBLyGaN50axHtIgufVK8jbKIctTZcVY5TO9Se+1107TsruzeXS7VeqVdJfFA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.696.0.tgz", + "integrity": "sha512-XJ/CVlWChM0VCoc259vWguFUjJDn/QwDqHwbx+K9cg3v6yrqXfK5ai+p/6lx0nQpnk4JzPVeYYxWRpaTsGC9rg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.696.0" } }, "node_modules/@aws-sdk/lib-storage": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.693.0.tgz", - "integrity": "sha512-3sHR0Dnrz63kKyFNx5l2/50i4VnbfCjQbhPkkFwt2Cu/6DjtJp5J8eAr6DHK+vS4cEFkCTQZ7UOayPmHqTLeeQ==", + "version": "3.697.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.697.0.tgz", + "integrity": "sha512-P8WhrBFQ+7NADdeuuMv8o/IG7wwLG67u+ng1JrX4+QQdgoJYXoOceeVee8TjsYd4e+2i2zexIOnYTmpqwNtvxw==", "license": "Apache-2.0", "dependencies": { "@smithy/abort-controller": "^3.1.7", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/smithy-client": "^3.4.3", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/smithy-client": "^3.4.4", "buffer": "5.6.0", "events": "3.3.0", "stream-browserify": "3.0.0", @@ -683,20 +683,20 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-s3": "^3.693.0" + "@aws-sdk/client-s3": "^3.697.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.693.0.tgz", - "integrity": "sha512-cPIa+lxMYiFRHtxKfNIVSFGO6LSgZCk42pu3d7KGwD6hu6vXRD5B2/DD3rPcEH1zgl2j0Kx1oGAV7SRXKHSFag==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.696.0.tgz", + "integrity": "sha512-V07jishKHUS5heRNGFpCWCSTjRJyQLynS/ncUeE8ZYtG66StOOQWftTwDfFOSoXlIqrXgb4oT9atryzXq7Z4LQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", + "@aws-sdk/types": "3.696.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -705,14 +705,14 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.693.0.tgz", - "integrity": "sha512-MuK/gsJWpHz6Tv0CqTCS+QNOxLa2RfPh1biVCu/uO3l7kA0TjQ/C+tfgKvLXeH103tuDrOVINK+bt2ENmI3SWg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.696.0.tgz", + "integrity": "sha512-vpVukqY3U2pb+ULeX0shs6L0aadNep6kKzjme/MyulPjtUDJpD3AekHsXRrCCGLmOqSKqRgQn5zhV9pQhHsb6Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -720,22 +720,22 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.693.0.tgz", - "integrity": "sha512-xkS6zjuE11ob93H9t65kHzphXcUMnN2SmIm2wycUPg+hi8Q6DJA6U2p//6oXkrr9oHy1QvwtllRd7SAd63sFKQ==", + "version": "3.697.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.697.0.tgz", + "integrity": "sha512-K/y43P+NuHu5+21/29BoJSltcPekvcCU8i74KlGGHbW2Z105e5QVZlFjxivcPOjOA3gdC0W4SoFSIWam5RBhzw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -744,14 +744,14 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.693.0.tgz", - "integrity": "sha512-BCki6sAZ5jYwIN/t3ElCiwerHad69ipHwPsDCxJQyeiOnJ8HG+lEpnVIfrnI8A0fLQNSF3Gtx6ahfBpKiv1Oug==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.696.0.tgz", + "integrity": "sha512-zELJp9Ta2zkX7ELggMN9qMCgekqZhFC5V2rOr4hJDEb/Tte7gpfKSObAnw/3AYiVqt36sjHKfdkoTsuwGdEoDg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -759,13 +759,13 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.693.0.tgz", - "integrity": "sha512-eDAExTZ9uNIP7vs2JCVCOuWJauGueisBSn+Ovt7UvvuEUp6KOIJqn8oFxWmyUQu2GvbG4OcaTLgbqD95YHTB0Q==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.696.0.tgz", + "integrity": "sha512-FgH12OB0q+DtTrP2aiDBddDKwL4BPOrm7w3VV9BJrSdkqQCNBPz8S1lb0y5eVH4tBG+2j7gKPlOv1wde4jF/iw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -773,13 +773,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.693.0.tgz", - "integrity": "sha512-dXnXDPr+wIiJ1TLADACI1g9pkSB21KkMIko2u4CJ2JCBoxi5IqeTnVoa6YcC8GdFNVRl+PorZ3Zqfmf1EOTC6w==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.696.0.tgz", + "integrity": "sha512-KhkHt+8AjCxcR/5Zp3++YPJPpFQzxpr+jmONiT/Jw2yqnSngZ0Yspm5wGoRx2hS1HJbyZNuaOWEGuJoxLeBKfA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -787,14 +787,14 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.693.0.tgz", - "integrity": "sha512-0LDmM+VxXp0u3rG0xQRWD/q6Ubi7G8I44tBPahevD5CaiDZTkmNTrVUf0VEJgVe0iCKBppACMBDkLB0/ETqkFw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.696.0.tgz", + "integrity": "sha512-si/maV3Z0hH7qa99f9ru2xpS5HlfSVcasRlNUXKSDm611i7jFMWwGNLUOXFAOLhXotPX5G3Z6BLwL34oDeBMug==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -802,23 +802,23 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.693.0.tgz", - "integrity": "sha512-5A++RBjJ3guyq5pbYs+Oq5hMlA8CK2OWaHx09cxVfhHWl/RoaY8DXrft4gnhoUEBrrubyMw7r9j7RIMLvS58kg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.696.0.tgz", + "integrity": "sha512-M7fEiAiN7DBMHflzOFzh1I2MNSlLpbiH2ubs87bdRc2wZsDPSbs4l3v6h3WLhxoQK0bq6vcfroudrLBgvCuX3Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/core": "^2.5.2", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", + "@smithy/core": "^2.5.3", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -827,13 +827,13 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.693.0.tgz", - "integrity": "sha512-Ro5vzI7SRgEeuoMk3fKqFjGv6mG4c7VsSCDwnkiasmafQFBTPvUIpgmu2FXMHqW/OthvoiOzpSrlJ9Bwlx2f8A==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.696.0.tgz", + "integrity": "sha512-w/d6O7AOZ7Pg3w2d3BxnX5RmGNWb5X4RNxF19rJqcgu/xqxxE/QwZTNd5a7eTsqLXAUIfbbR8hh0czVfC1pJLA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -841,17 +841,17 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.693.0.tgz", - "integrity": "sha512-/KUq/KEpFFbQmNmpp7SpAtFAdViquDfD2W0QcG07zYBfz9MwE2ig48ALynXm5sMpRmnG7sJXjdvPtTsSVPfkiw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.696.0.tgz", + "integrity": "sha512-Lvyj8CTyxrHI6GHd2YVZKIRI5Fmnugt3cpJo0VrKKEgK5zMySwEZ1n4dqPK6czYRWKd5+WnYHYAuU+Wdk6Jsjw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@smithy/core": "^2.5.2", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@smithy/core": "^2.5.3", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -859,16 +859,16 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.693.0.tgz", - "integrity": "sha512-YLUkMsUY0GLW/nfwlZ69cy1u07EZRmsv8Z9m0qW317/EZaVx59hcvmcvb+W4bFqj5E8YImTjoGfE4cZ0F9mkyw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.696.0.tgz", + "integrity": "sha512-7EuH142lBXjI8yH6dVS/CZeiK/WZsmb/8zP6bQbVYpMrppSTgB3MzZZdxVZGzL5r8zPQOU10wLC4kIMy0qdBVQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.9", + "@smithy/util-middleware": "^3.0.10", "tslib": "^2.6.2" }, "engines": { @@ -876,18 +876,18 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.693.0.tgz", - "integrity": "sha512-I/TCM43kZn1xb+EWMAjkcisDVrq3mYsu0ZFP81J9K/PM6n3s9bK04jaY56c3pCl6btigIOHhreutYSRRBJsCDw==", + "version": "3.697.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.697.0.tgz", + "integrity": "sha512-bA70sQZHedI0zz4trESBfEtYMat8oV+ijxnGUWg6L7S3oNuEOh57V/LWz1jn+ieZPgXDrMfegXZm3BaYXxS1XQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-format-url": "3.693.0", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", + "@aws-sdk/signature-v4-multi-region": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-format-url": "3.696.0", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -895,16 +895,16 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.693.0.tgz", - "integrity": "sha512-s7zbbsoVIriTR4ZGaateKuTqz6ddpazAyHvjk7I9kd+NvGNPiuAI18UdbuiiRI6K5HuYKf1ah6mKWFGPG15/kQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.696.0.tgz", + "integrity": "sha512-ijPkoLjXuPtgxAYlDoYls8UaG/VKigROn9ebbvPL/orEY5umedd3iZTcS9T+uAf4Ur3GELLxMQiERZpfDKaz3g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", + "@aws-sdk/middleware-sdk-s3": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -912,31 +912,31 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.693.0.tgz", - "integrity": "sha512-nDBTJMk1l/YmFULGfRbToOA2wjf+FkQT4dMgYCv+V9uSYsMzQj8A7Tha2dz9yv4vnQgYaEiErQ8d7HVyXcVEoA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.696.0.tgz", + "integrity": "sha512-fvTcMADrkwRdNwVmJXi2pSPf1iizmUqczrR1KusH4XehI/KybS4U6ViskRT0v07vpxwL7x+iaD/8fR0PUu5L/g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.693.0" + "@aws-sdk/client-sso-oidc": "^3.696.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.692.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.692.0.tgz", - "integrity": "sha512-RpNvzD7zMEhiKgmlxGzyXaEcg2khvM7wd5sSHVapOcrde1awQSOMGI4zKBQ+wy5TnDfrm170ROz/ERLYtrjPZA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.696.0.tgz", + "integrity": "sha512-9rTvUJIAj5d3//U5FDPWGJ1nFJLuWb30vugGOrWk7aNZ6y9tuA3PI7Cc9dP8WEXKVyK1vuuk8rSFP2iqXnlgrw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -956,14 +956,14 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.693.0.tgz", - "integrity": "sha512-eo4F6DRQ/kxS3gxJpLRv+aDNy76DxQJL5B3DPzpr9Vkq0ygVoi4GT5oIZLVaAVIJmi6k5qq9dLsYZfWLUxJJSg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.696.0.tgz", + "integrity": "sha512-T5s0IlBVX+gkb9g/I6CLt4yAZVzMSiGnbUqWihWsHvQR1WOoIcndQy/Oz/IJXT9T2ipoy7a80gzV6a5mglrioA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", - "@smithy/util-endpoints": "^2.1.5", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", + "@smithy/util-endpoints": "^2.1.6", "tslib": "^2.6.2" }, "engines": { @@ -971,14 +971,14 @@ } }, "node_modules/@aws-sdk/util-format-url": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.693.0.tgz", - "integrity": "sha512-0O4fSq45GOwC89Os0f92z9kK1AV22+W980O+v+GkMLUkRG7/nsIJkq1LKiIPV+sbC+KC/HmW4yThxFzHO7GDxA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.696.0.tgz", + "integrity": "sha512-R6yK1LozUD1GdAZRPhNsIow6VNFJUTyyoIar1OCWaknlucBMcq7musF3DN3TlORBwfFMj5buHc2ET9OtMtzvuA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/querystring-builder": "^3.0.9", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/querystring-builder": "^3.0.10", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -998,27 +998,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.693.0.tgz", - "integrity": "sha512-6EUfuKOujtddy18OLJUaXfKBgs+UcbZ6N/3QV4iOkubCUdeM1maIqs++B9bhCbWeaeF5ORizJw5FTwnyNjE/mw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.696.0.tgz", + "integrity": "sha512-Z5rVNDdmPOe6ELoM5AhF/ja5tSjbe6ctSctDPb0JdDf4dT0v2MfwhJKzXju2RzX8Es/77Glh7MlaXLE0kCB9+Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.693.0.tgz", - "integrity": "sha512-td0OVX8m5ZKiXtecIDuzY3Y3UZIzvxEr57Hp21NOwieqKCG2UeyQWWeGPv0FQaU7dpTkvFmVNI+tx9iB8V/Nhg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.696.0.tgz", + "integrity": "sha512-KhKqcfyXIB0SCCt+qsu4eJjsfiOrNzK5dCV7RAW2YIpp+msxGUUX0NdRE9rkzjiv+3EMktgJm3eEIS+yxtlVdQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/types": "^3.7.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1034,12 +1034,12 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.693.0.tgz", - "integrity": "sha512-C/rPwJcqnV8VDr2/VtcQnymSpcfEEgH1Jm6V0VmfXNZFv4Qzf1eCS8nsec0gipYgZB+cBBjfXw5dAk6pJ8ubpw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.696.0.tgz", + "integrity": "sha512-dn1mX+EeqivoLYnY7p2qLrir0waPnCgS/0YdRCAVU2x14FgfUYCH6Im3w3oi2dMwhxfKY5lYVB5NKvZu7uI9lQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1685,9 +1685,9 @@ } }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.0.tgz", - "integrity": "sha512-lXTP8oiLGM97Aqjn47nod9awKe574HRfCngFizr7FiHTadKTiPkoVn0Mzg+tZBLD1XpE4CRvcF7/UM3g1jyVYw==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.1.tgz", + "integrity": "sha512-ALIk/MOh5gYe1TG/ieS5mVUsk7VUIJTJKPMK9rFFqOgfp0Q3d5QiBXbcOMwUvs37fyZVCz46YjOE6IFeOAXCHA==", "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", "engines": { "node": ">=6" @@ -1706,9 +1706,9 @@ } }, "node_modules/@hey-api/openapi-ts": { - "version": "0.56.1", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.56.1.tgz", - "integrity": "sha512-AGoFnI2Mx8p70L+yaVnrpVK39Jo9flP4JyUTc5pqyp3syBdfwNecnoCL/JOjMvOq4Jy3IHneRJr0mQXKXZsziA==", + "version": "0.56.2", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.56.2.tgz", + "integrity": "sha512-vIjrVt6N1PSmQosjh6FEhb+PSKl2pgUXIaiU32mPO6hRiX6/N4AZ3pRGAebypYXO9SuJKvFkym6onEXQNgsRDg==", "dev": true, "license": "FSL-1.1-MIT", "dependencies": { @@ -1796,9 +1796,9 @@ "license": "MIT" }, "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { @@ -3228,9 +3228,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "version": "22.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.1.tgz", + "integrity": "sha512-p8Yy/8sw1caA8CdRIQBG5tiLHmxtQKObCijiAa9Ez+d4+PRffM4054xbju0msf+cvhJpnFEeNjxmVT/0ipktrg==", "dev": true, "license": "MIT", "dependencies": { @@ -3269,7 +3269,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -4629,10 +4629,13 @@ } }, "node_modules/dompurify": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", - "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==", - "license": "(MPL-2.0 OR Apache-2.0)" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.1.tgz", + "integrity": "sha512-NBHEsc0/kzRYQd+AY6HR6B/IgsqzBABrqJbpCDQII/OK6h7B7LXzweZTDsqSW2LkTRpoxf18YUP+YjGySk6B3w==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } }, "node_modules/dotenv": { "version": "16.4.5", @@ -5694,9 +5697,9 @@ } }, "node_modules/immutable": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.2.tgz", - "integrity": "sha512-1NU7hWZDkV7hJ4PJ9dur9gTNQ4ePNPN4k9/0YhwjzykTi/+3Q5pF93YU5QoVj8BuOnhLgaY8gs0U2pj4kSYVcw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", "dev": true, "license": "MIT" }, diff --git a/src/App.vue b/src/App.vue index 64eb9a5147a8b52d93741c2bb3ba2f2ec5b6e867..f4297b18db393057bb3f5027a2036303a78283cd 100644 --- a/src/App.vue +++ b/src/App.vue @@ -65,9 +65,9 @@ onBeforeMount(() => { }, ); router.afterEach((to, from) => { - window._paq.push(["setReferrerUrl", from.path]); - window._paq.push(["deleteCustomVariables", "page"]); - window._paq.push(["deleteCustomDimension", 1]); + window._paq?.push(["setReferrerUrl", from.path]); + window._paq?.push(["deleteCustomVariables", "page"]); + window._paq?.push(["deleteCustomDimension", 1]); const mtm_query_keys = Object.keys(to.query ?? {}).filter((key) => key.startsWith("mtm_"), ); @@ -80,13 +80,13 @@ onBeforeMount(() => { `?${mtm_query_keys[0]}=${to.query[mtm_query_keys[0]]}`, ) : ""; - window._paq.push(["setCustomUrl", to.path + mtm_query]); - window._paq.push(["setDocumentTitle", to.name]); + window._paq?.push(["setCustomUrl", to.path + mtm_query]); + window._paq?.push(["setDocumentTitle", to.name]); if (userRepository.currentUID.length > 0) { - window._paq.push(["setUserId", userRepository.currentUID]); + window._paq?.push(["setUserId", userRepository.currentUID]); } - window._paq.push(["trackPageView"]); - window._paq.push(["enableLinkTracking"]); + window._paq?.push(["trackPageView"]); + window._paq?.push(["enableLinkTracking"]); }); router.beforeEach((to) => { // redirect path that start with '/dashboard' to ensure backwards compatibility diff --git a/src/assets/base.css b/src/assets/base.css index 2f1e22ec1c4e1794dea8ea209c3e7b5db2b99d86..660e9312b1a48369db524f44a184ddbc99207947 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -32,7 +32,6 @@ --section-gap: 160px; --color-header: rgb(255, 177, 45); - --bs-cyan-rgb: rgb(29, 230, 230); } *, @@ -71,14 +70,8 @@ header { --bs-box-shadow-lg: 0 1rem 3rem rgba(150, 150, 150, .575); --bs-box-shadow-inset: inset 0 1px 2px rgba(150, 150, 150, .475); --color-header: rgb(204, 129, 0); - --bs-cyan-rgb: rgb(0, 255, 255); } img { max-width: 100%; } - -.bg-cyan { - background-color: var(--bs-cyan-rgb) !important; - color: black; -} \ No newline at end of file diff --git a/src/components/modals/BootstrapModal.vue b/src/components/modals/BootstrapModal.vue index 3ddc22f8942e9eec1e149ea69a7e0c40c90868ff..84382c38a94160672caeb904b961f73a6d756565 100644 --- a/src/components/modals/BootstrapModal.vue +++ b/src/components/modals/BootstrapModal.vue @@ -20,7 +20,7 @@ const modalSizeClass = computed<string>(() => { }); function trackModalShow() { - window._paq.push([ + window._paq?.push([ "trackEvent", "Modal", "Show " + props.modalLabel, diff --git a/src/components/parameter-schema/GroupNav.vue b/src/components/parameter-schema/GroupNav.vue new file mode 100644 index 0000000000000000000000000000000000000000..fd1398f3041a31817c4b4a4554a20f6a0967114a --- /dev/null +++ b/src/components/parameter-schema/GroupNav.vue @@ -0,0 +1,275 @@ +<script setup lang="ts"> +import { useRoute, useRouter } from "vue-router"; +import { + type NestedWorkflowParameters, + ParameterVisibility, + type ParameterVisibilityMapping, + type TemporaryParams, +} from "@/types/WorkflowParameters.ts"; +import { computed, onMounted, ref, watch } from "vue"; +import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; +import type { ClowmInfo } from "@/types/ClowmInfo.ts"; +import LastParameterizationsModal from "@/components/parameter-schema/LastParameterizationsModal.vue"; +import UploadParameterFileModal from "@/components/parameter-schema/UploadParameterFileModal.vue"; +import { Tooltip } from "bootstrap"; + +const props = defineProps<{ + parameterGroups: object; + parameterVisibility: ParameterVisibilityMapping; + clowmInfo?: ClowmInfo; + launchable?: boolean; + formId?: string; + workflowId?: string; +}>(); + +const emit = defineEmits<{ + (e: "change-view-mode", viewMode: ParameterVisibility): void; + (e: "load-parameters", tempParams: TemporaryParams): void; +}>(); + +const route = useRoute(); +const router = useRouter(); + +const viewMode = ref<ParameterVisibility>(ParameterVisibility.SIMPLE); + +watch( + () => route.query?.viewMode, + (newVal, oldVal) => { + if (newVal != oldVal) { + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + setViewMode(newVal); + } + }, +); + +type ParameterGroup = { + group: string; + title: string; + icon?: string; +}; + +// Create a list with the names of all parameter groups +/* eslint-disable @typescript-eslint/ban-ts-comment */ +// @ts-ignore +const navParameterGroups = computed<ParameterGroup[]>(() => { + return Object.keys(props.parameterGroups) + .map((group) => { + return { + group: group, + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + title: props.parameterGroups[group]["title"], + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + icon: props.parameterGroups[group]["fa_icon"], + }; + }) + .filter( + (group) => + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + Object.keys(props.parameterGroups[group.group]["properties"]).filter( + (key: string) => + (props.parameterVisibility[key] ?? ParameterVisibility.SIMPLE) <= + viewMode.value, + ).length > 0, + ); +}); + +function scroll(selectedAnchor: string) { + document.querySelector(selectedAnchor)?.scrollIntoView({ + behavior: "smooth", + }); +} + +function setViewMode(viewModeString?: string | null) { + switch (viewModeString) { + case "simple": { + viewMode.value = ParameterVisibility.SIMPLE; + break; + } + case "advanced": { + viewMode.value = ParameterVisibility.ADVANCED; + break; + } + case "expert": { + viewMode.value = ParameterVisibility.EXPERT; + break; + } + default: { + viewMode.value = ParameterVisibility.SIMPLE; + } + } + emit("change-view-mode", viewMode.value); +} + +onMounted(() => { + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + setViewMode(route.query?.["viewMode"]); + if (props.launchable && props.clowmInfo?.exampleParameters) { + Tooltip.getOrCreateInstance("#TryItOutButton"); + } +}); +</script> + +<template> + <upload-parameter-file-modal + v-if="props.launchable" + modal-id="parameterUploadModal" + @parameters-uploaded=" + (params: NestedWorkflowParameters) => + emit('load-parameters', { + params: params, + metaParams: {}, + }) + " + /> + <last-parameterizations-modal + v-if="props.workflowId != undefined && props.launchable" + modal-id="last-parameterization-modal" + :workflow-id="props.workflowId" + @parameters-selected="(params) => emit('load-parameters', params)" + /> + <div + class="col-3 sticky-top border shadow-sm rounded-1 px-0" + style="top: 70px !important; max-height: calc(100vh - 150px)" + > + <h5 class="mx-3 mt-2">Parameter View</h5> + <div class="mx-2"> + <div + class="btn-group my-1 w-100" + role="group" + aria-label="Basic radio toggle button group" + > + <input + id="view-mode-simple" + type="radio" + class="btn-check" + name="view-mode" + autocomplete="off" + :checked="viewMode === ParameterVisibility.SIMPLE" + @click=" + router.replace({ + query: { ...route.query, viewMode: 'simple' }, + hash: route.hash, + }) + " + /> + <label class="btn btn-outline-primary" for="view-mode-simple" + >Simple</label + > + <input + id="view-mode-advanced" + type="radio" + class="btn-check" + name="view-mode" + autocomplete="off" + :checked="viewMode === ParameterVisibility.ADVANCED" + @click=" + router.replace({ + query: { ...route.query, viewMode: 'advanced' }, + hash: route.hash, + }) + " + /> + <label class="btn btn-outline-primary" for="view-mode-advanced" + >Advanced</label + > + <input + id="view-mode-expert" + type="radio" + class="btn-check" + name="view-mode" + autocomplete="off" + :checked="viewMode === ParameterVisibility.EXPERT" + @click=" + router.replace({ + query: { ...route.query, viewMode: 'expert' }, + hash: route.hash, + }) + " + /> + <label class="btn btn-outline-primary" for="view-mode-expert" + >Expert</label + > + </div> + </div> + <nav class="h-100"> + <nav class="nav"> + <ul class="ps-0"> + <li + v-for="group in navParameterGroups" + :key="group.group" + class="nav-link" + > + <router-link + :to="{ hash: '#' + group.group, query: route.query }" + replace + @click="scroll('#' + group.group)" + > + <font-awesome-icon + v-if="group.icon" + :icon="group.icon" + class="me-2" + /> + {{ group.title }} + </router-link> + </li> + <li v-if="props.launchable" class="nav-link"> + <router-link + :to="{ hash: '#pipelineGeneralOptions', query: route.query }" + replace + @click="scroll('#pipelineGeneralOptions')" + > + <font-awesome-icon icon="fa-solid fa-gear" class="me-2" /> + General Pipeline Options + </router-link> + </li> + </ul> + </nav> + </nav> + <div v-if="props.launchable" class="d-grid gap-2 mb-2 px-2"> + <button + v-if="props.clowmInfo?.exampleParameters" + id="TryItOutButton" + type="button" + class="btn btn-primary" + data-bs-toggle="tooltip" + data-bs-title="Load example parameters/data for this workflow" + @click=" + emit(`load-parameters`, { + params: props.clowmInfo?.exampleParameters, + metaParams: {}, + }) + " + > + Try it out + </button> + <button + type="button" + class="btn btn-primary" + data-bs-toggle="modal" + data-bs-target="#last-parameterization-modal" + > + <font-awesome-icon icon="fas fa-user-gear" class="me-2" /> + My last parameterizations + </button> + <button + class="btn btn-primary" + data-bs-toggle="modal" + data-bs-target="#parameterUploadModal" + > + <font-awesome-icon icon="fa-solid fa-upload" class="me-2" /> + Upload Parameters + </button> + <button type="submit" :form="formId" class="btn btn-success btn-lg"> + <font-awesome-icon icon="fa-solid fa-play" class="me-2" /> + Launch + </button> + </div> + </div> +</template> + +<style scoped></style> diff --git a/src/components/parameter-schema/ParameterSchemaDescriptionComponent.vue b/src/components/parameter-schema/ParameterSchemaDescriptionComponent.vue index 9e401bef0ed515301edc01ba9cdbc981ac29cdba..50a3246f5546de3621b1c22e8a9645e57fe9b1d0 100644 --- a/src/components/parameter-schema/ParameterSchemaDescriptionComponent.vue +++ b/src/components/parameter-schema/ParameterSchemaDescriptionComponent.vue @@ -1,8 +1,12 @@ <script setup lang="ts"> import { computed, type PropType, ref } from "vue"; import ParameterGroupDescription from "@/components/parameter-schema/description-mode/ParameterGroupDescription.vue"; -import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; import type { ClowmInfo } from "@/types/ClowmInfo"; +import { + ParameterVisibility, + type ParameterVisibilityMapping, +} from "@/types/WorkflowParameters.ts"; +import GroupNav from "@/components/parameter-schema/GroupNav.vue"; const props = defineProps({ schema: { @@ -13,38 +17,67 @@ const props = defineProps({ type: Object as PropType<ClowmInfo>, required: false, }, + + parameterVisibility: { + type: Object as PropType<ParameterVisibilityMapping>, + required: false, + }, }); -type ParameterGroup = { - group: string; - title: string; - icon?: string; -}; +const viewMode = ref<ParameterVisibility>(ParameterVisibility.SIMPLE); -const showHidden = ref<boolean>(false); +/* eslint-disable @typescript-eslint/ban-ts-comment */ +// @ts-ignore +const defaultParameterVisibility = computed<ParameterVisibilityMapping>(() => { + const mapping: ParameterVisibilityMapping = {}; + const groups: object = schemaDefinitions.value; + for (const groupName of Object.keys(groups)) { + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + const group = groups[groupName]; + const anyOfDeps: string[] = (group["anyOf"] ?? []) + .map((dep: Record<string, string[]>) => dep["required"]) + .flat(); + const oneOfDeps: string[] = (group["oneOf"] ?? []) + .map((dep: Record<string, string[]>) => dep["required"]) + .flat(); + const requiredDeps: string[] = group["required"] ?? []; + const temp: Record<string, string[]> = + group["dependentRequired"] ?? group["dependencies"] ?? {}; + const parameterDeps: string[] = Object.keys(temp) + .map((param) => temp[param]) + .flat(); -const navParameterGroups = computed<ParameterGroup[]>(() => { - let groups = Object.keys(parameterGroups.value).map((group) => { - return { - group: group, - title: parameterGroups.value[group]["title"], - icon: parameterGroups.value[group]["fa_icon"], - }; - }); - if (!showHidden.value) { - groups = groups.filter( - // filter all groups that have only hidden parameters - (group) => - Object.keys(parameterGroups.value[group.group]["properties"]).filter( - (key) => - !parameterGroups.value[group.group]["properties"][key]["hidden"], - ).length > 0, - ); + for (const paramName of Object.keys(group["properties"] ?? {})) { + const param: { hidden?: boolean } = group["properties"][paramName]; + if ( + anyOfDeps.includes(paramName) || + oneOfDeps.includes(paramName) || + requiredDeps.includes(paramName) || + parameterDeps.includes(paramName) + ) { + mapping[paramName] = ParameterVisibility.SIMPLE; + } else if (!(param.hidden ?? false)) { + mapping[paramName] = ParameterVisibility.ADVANCED; + } else { + mapping[paramName] = ParameterVisibility.EXPERT; + } + } + } + for (const paramName of Object.keys(props.schema["properties"] ?? {})) { + mapping[paramName] = + (props.schema["properties"][paramName]["hidden"] ?? false) + ? ParameterVisibility.EXPERT + : ParameterVisibility.ADVANCED; } - return groups; + return mapping; }); -const schemaDefinitions = computed<Record<string, never>>( +const currentParameterVisibility = computed<ParameterVisibilityMapping>( + () => props.parameterVisibility ?? defaultParameterVisibility.value, +); + +const schemaDefinitions = computed<Record<string, object>>( () => props.schema?.["definitions"] ?? props.schema?.["$defs"], ); @@ -73,51 +106,18 @@ const parameterGroups = computed<Record<string, never>>(() => { :schema-properties="parameterGroups" class="schema-group-description" :parameter-group-name="groupName" - :show-hidden="showHidden" + :parameter-visibility="currentParameterVisibility" + :current-visibility="viewMode" :resource-parameters="props.clowmInfo?.resourceParameters" /> </div> </div> - <div - class="col-3 sticky-top" - style="top: 70px !important; max-height: calc(100vh - 150px)" - > - <nav class="h-100 rounded-1 border"> - <nav class="nav"> - <ul class="ps-0"> - <li - v-for="group in navParameterGroups" - :key="group.group" - class="nav-link" - > - <a :href="'#' + group.group"> - <font-awesome-icon - v-if="group.icon" - :icon="group.icon" - class="me-2" - /> - {{ group.title }}</a - > - </li> - </ul> - <div class="mx-auto mb-3"> - <input - id="btn-check-outlined" - v-model="showHidden" - type="checkbox" - class="btn-check ms-1" - autocomplete="off" - /> - <label class="btn btn-outline-primary" for="btn-check-outlined"> - <font-awesome-icon - :icon="showHidden ? 'fa-solid fa-eye' : 'fa-solid fa-eye-slash'" - /> - Show hidden Parameters - </label> - </div> - </nav> - </nav> - </div> + <group-nav + :parameter-groups="parameterGroups" + :parameter-visibility="currentParameterVisibility" + :clowm-info="props.clowmInfo" + @change-view-mode="(newViewMode) => (viewMode = newViewMode)" + /> </div> </template> diff --git a/src/components/parameter-schema/ParameterSchemaFormComponent.vue b/src/components/parameter-schema/ParameterSchemaFormComponent.vue index 2ebc26f432ca2f1773017e3220e38646b90b587e..af6ad8a2ed62820e04c500d93f43d9922272d944 100644 --- a/src/components/parameter-schema/ParameterSchemaFormComponent.vue +++ b/src/components/parameter-schema/ParameterSchemaFormComponent.vue @@ -1,35 +1,33 @@ <script setup lang="ts"> -import { computed, ref, reactive, watch, onMounted, type PropType } from "vue"; +import { computed, onMounted, type PropType, reactive, ref, watch } from "vue"; import ParameterGroupForm from "@/components/parameter-schema/form-mode/ParameterGroupForm.vue"; import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; -import Ajv from "ajv"; import type { ValidateFunction } from "ajv"; +import Ajv from "ajv"; import ParameterInput from "@/components/parameter-schema/form-mode/ParameterInput.vue"; -import { Toast, Tooltip } from "bootstrap"; +import { Toast } from "bootstrap"; import { useBucketStore } from "@/stores/buckets"; import { useS3KeyStore } from "@/stores/s3keys"; import BootstrapToast from "@/components/BootstrapToast.vue"; import { useResourceStore } from "@/stores/resources"; -import { useRoute, useRouter } from "vue-router"; import type { ClowmInfo } from "@/types/ClowmInfo"; -import UploadParameterFileModal from "@/components/parameter-schema/UploadParameterFileModal.vue"; -import type { - NestedWorkflowParameters, - TemporaryParams, - WorkflowMetaParameters, - FlatWorkflowParameters, +import { + type FlatWorkflowParameters, + type NestedWorkflowParameters, + ParameterVisibility, + type ParameterVisibilityMapping, + type TemporaryParams, + type WorkflowMetaParameters, } from "@/types/WorkflowParameters"; import { useWorkflowExecutionStore } from "@/stores/workflowExecutions"; import { NextflowVersion, type ParameterExtension } from "@/client/types.gen"; import { flattenParameters, nestParameters } from "@/utils/Workflow"; -import LastParameterizationsModal from "@/components/parameter-schema/LastParameterizationsModal.vue"; +import GroupNav from "@/components/parameter-schema/GroupNav.vue"; const bucketRepository = useBucketStore(); const resourceRepository = useResourceStore(); const keyRepository = useS3KeyStore(); const executionRepository = useWorkflowExecutionStore(); -const router = useRouter(); -const route = useRoute(); // Props // ============================================================================= @@ -55,17 +53,14 @@ const props = defineProps({ type: Object as PropType<NextflowVersion>, required: true, }, - viewMode: { - type: String, - default: "simple", - validator(value: string) { - return ["simple", "advanced", "expert"].includes(value); - }, - }, workflowId: { type: String, required: false, }, + parameterVisibility: { + type: Object as PropType<ParameterVisibilityMapping>, + required: false, + }, }); const emit = defineEmits<{ @@ -81,14 +76,6 @@ const emit = defineEmits<{ let errorToast: Toast | null = null; let parameterLoadToast: Toast | null = null; -// Types -// ============================================================================= -type ParameterGroup = { - group: string; - title: string; - icon?: string; -}; - // JSON Schema package // ============================================================================= const schemaCompiler = new Ajv({ @@ -106,6 +93,7 @@ const formState = reactive<{ validated: boolean; metaParameters: WorkflowMetaParameters; errorType?: string; + viewMode: ParameterVisibility; }>({ formInput: {}, validated: false, @@ -116,14 +104,64 @@ const formState = reactive<{ notes: undefined, }, errorType: undefined, + viewMode: ParameterVisibility.SIMPLE, }); // Computed Properties // ============================================================================= -const schemaDefinitions = computed<Record<string, never>>( +const schemaDefinitions = computed<Record<string, object>>( () => props.schema?.["definitions"] ?? props.schema?.["$defs"], ); +const defaultParameterVisibility = computed<ParameterVisibilityMapping>(() => { + const mapping: ParameterVisibilityMapping = {}; + const groups: object = schemaDefinitions.value; + for (const groupName of Object.keys(groups)) { + /* eslint-disable @typescript-eslint/ban-ts-comment */ + // @ts-ignore + const group = groups[groupName]; + const anyOfDeps: string[] = (group["anyOf"] ?? []) + .map((dep: Record<string, string[]>) => dep["required"]) + .flat(); + const oneOfDeps: string[] = (group["oneOf"] ?? []) + .map((dep: Record<string, string[]>) => dep["required"]) + .flat(); + const requiredDeps: string[] = group["required"] ?? []; + const temp: Record<string, string[]> = + group["dependentRequired"] ?? group["dependencies"] ?? {}; + const parameterDeps: string[] = Object.keys(temp) + .map((param) => temp[param]) + .flat(); + + for (const paramName of Object.keys(group["properties"] ?? {})) { + const param: { hidden?: boolean } = group["properties"][paramName]; + if ( + anyOfDeps.includes(paramName) || + oneOfDeps.includes(paramName) || + requiredDeps.includes(paramName) || + parameterDeps.includes(paramName) + ) { + mapping[paramName] = ParameterVisibility.SIMPLE; + } else if (!(param.hidden ?? false)) { + mapping[paramName] = ParameterVisibility.ADVANCED; + } else { + mapping[paramName] = ParameterVisibility.EXPERT; + } + } + } + for (const paramName of Object.keys(props.schema?.["properties"] ?? {})) { + mapping[paramName] = + (props.schema?.["properties"][paramName]["hidden"] ?? false) + ? ParameterVisibility.EXPERT + : ParameterVisibility.ADVANCED; + } + return mapping; +}); + +const currentParameterVisibility = computed<ParameterVisibilityMapping>( + () => props.parameterVisibility ?? defaultParameterVisibility.value, +); + /* eslint-disable @typescript-eslint/ban-ts-comment */ // @ts-ignore const parameterGroups = computed<Record<string, never>>(() => { @@ -140,41 +178,6 @@ const parameterGroups = computed<Record<string, never>>(() => { return schemaDefinitions.value; }); -// Create a list with the names of all parameter groups -const navParameterGroups = computed<ParameterGroup[]>(() => { - let groups = Object.keys(parameterGroups.value).map((group) => { - return { - group: group, - title: parameterGroups.value[group]["title"], - icon: parameterGroups.value[group]["fa_icon"], - }; - }); - if (!showHidden.value) { - groups = groups.filter( - // filter all groups that have only hidden parameters - (group) => - Object.keys(parameterGroups.value[group.group]["properties"]).filter( - (key) => - !parameterGroups.value[group.group]["properties"][key]["hidden"], - ).length > 0, - ); - } - if (!showOptional.value) { - groups = groups.filter( - // filter all groups that have no required parameter - (group) => - ( - (parameterGroups.value[group.group]["required"] as Array<string>) ?? - [] - ).length > 0, - ); - } - return groups; -}); - -const showHidden = computed<boolean>(() => props.viewMode === "expert"); -const showOptional = computed<boolean>(() => props.viewMode !== "simple"); - // Watchers // ============================================================================= watch( @@ -264,18 +267,10 @@ function loadParameters( } } -function scroll(selectedAnchor: string) { - document.querySelector(selectedAnchor)?.scrollIntoView({ - behavior: "smooth", - }); -} - // Lifecycle Events // ============================================================================= onMounted(() => { if (props.schema) updateSchema(props.schema); - if (props.clowmInfo?.exampleParameters) - Tooltip.getOrCreateInstance("#TryItOutButton"); bucketRepository.fetchOwnBuckets(); bucketRepository.fetchOwnPermissions(); keyRepository.fetchS3Keys(); @@ -304,21 +299,6 @@ onMounted(() => { </template> </template> </bootstrap-toast> - <upload-parameter-file-modal - modal-id="parameterUploadModal" - @parameters-uploaded=" - (params: NestedWorkflowParameters) => - loadParameters({ - params: params, - metaParams: {}, - }) - " - /> - <last-parameterizations-modal - modal-id="last-parameterization-modal" - :workflow-id="workflowId" - @parameters-selected="loadParameters" - /> <div class="row align-items-start"> <form v-if="props.schema" @@ -335,10 +315,10 @@ onMounted(() => { v-model="formState.formInput" :parameter-group-name="groupName" :schema-properties="parameterGroups" - :show-hidden="showHidden" - :show-optional="showOptional" :resource-parameters="props.clowmInfo?.resourceParameters" :mapping="parameterExtension?.mapping" + :parameter-visibility="currentParameterVisibility" + :current-visibility="formState.viewMode" /> </template> <div class="card mb-3"> @@ -418,7 +398,7 @@ onMounted(() => { workflow execution </div> </div> - <div :hidden="!showHidden"> + <div :hidden="formState.viewMode < ParameterVisibility.EXPERT"> <code class="bg-secondary-subtle p-2 rounded-top border border-secondary" >--debug_s3_path</code @@ -465,157 +445,17 @@ onMounted(() => { </div> </div> </div> - <div - class="col-3 sticky-top border shadow-sm rounded-1 px-0" - style="top: 70px !important; max-height: calc(100vh - 150px)" - > - <h5 class="mx-3 mt-2">Parameter View</h5> - <div class="mx-2"> - <div - class="btn-group my-1 w-100" - role="group" - aria-label="Basic radio toggle button group" - > - <input - id="view-mode-simple" - type="radio" - class="btn-check" - name="view-mode" - autocomplete="off" - :checked="props.viewMode === 'simple'" - @click=" - router.replace({ - query: { ...route.query, viewMode: 'simple' }, - hash: route.hash, - }) - " - /> - <label class="btn btn-outline-primary" for="view-mode-simple" - >Simple</label - > - <input - id="view-mode-advanced" - type="radio" - class="btn-check" - name="view-mode" - autocomplete="off" - :checked="props.viewMode === 'advanced'" - @click=" - router.replace({ - query: { ...route.query, viewMode: 'advanced' }, - hash: route.hash, - }) - " - /> - <label class="btn btn-outline-primary" for="view-mode-advanced" - >Advanced</label - > - <input - id="view-mode-expert" - type="radio" - class="btn-check" - name="view-mode" - autocomplete="off" - :checked="props.viewMode === 'expert'" - @click=" - router.replace({ - query: { ...route.query, viewMode: 'expert' }, - hash: route.hash, - }) - " - /> - <label class="btn btn-outline-primary" for="view-mode-expert" - >Expert</label - > - </div> - </div> - <nav class="h-100"> - <nav v-if="props.schema" class="nav"> - <ul class="ps-0"> - <li - v-for="group in navParameterGroups" - :key="group.group" - class="nav-link" - > - <router-link - :to="{ hash: '#' + group.group, query: route.query }" - replace - @click="scroll('#' + group.group)" - > - <font-awesome-icon - v-if="group.icon" - :icon="group.icon" - class="me-2" - /> - {{ group.title }} - </router-link> - </li> - <li class="nav-link"> - <router-link - :to="{ hash: '#pipelineGeneralOptions', query: route.query }" - replace - @click="scroll('#pipelineGeneralOptions')" - > - <font-awesome-icon icon="fa-solid fa-gear" class="me-2" /> - General Pipeline Options - </router-link> - </li> - </ul> - </nav> - <!-- Loading nav links --> - <div v-else class="placeholder-glow ps-3 pt-3"> - <span - v-for="n in 5" - :key="n" - class="placeholder col-8 mt-2 mb-3" - ></span> - </div> - </nav> - <div class="d-grid gap-2 mb-2 px-2"> - <button - v-if="props.clowmInfo?.exampleParameters" - id="TryItOutButton" - type="button" - class="btn btn-primary" - data-bs-toggle="tooltip" - data-bs-title="Load example parameters/data for this workflow" - @click=" - loadParameters({ - params: props.clowmInfo?.exampleParameters, - metaParams: {}, - }) - " - > - Try it out - </button> - <button - type="button" - class="btn btn-primary" - data-bs-toggle="modal" - data-bs-target="#last-parameterization-modal" - > - <font-awesome-icon icon="fas fa-user-gear" class="me-2" /> - My last parameterizations - </button> - <button - class="btn btn-primary" - data-bs-toggle="modal" - data-bs-target="#parameterUploadModal" - > - <font-awesome-icon icon="fa-solid fa-upload" class="me-2" /> - Upload Parameters - </button> - <button - type="submit" - form="launchWorkflowForm" - class="btn btn-success btn-lg" - :disabled="props.loading || !props.schema" - > - <font-awesome-icon icon="fa-solid fa-play" class="me-2" /> - Launch - </button> - </div> - </div> + <group-nav + v-if="props.schema != undefined" + :clowm-info="props.clowmInfo" + :parameter-groups="parameterGroups" + :parameter-visibility="currentParameterVisibility" + :workflow-id="workflowId" + launchable + form-id="launchWorkflowForm" + @load-parameters="loadParameters" + @change-view-mode="(viewMode) => (formState.viewMode = viewMode)" + /> </div> </template> diff --git a/src/components/parameter-schema/description-mode/ParameterDescription.vue b/src/components/parameter-schema/description-mode/ParameterDescription.vue index 4e3bc3e9c0870ca76b695e8d35e7c95c7228f9f4..1e313b6550d76ceaf10d6cb086c674ebe6097b59 100644 --- a/src/components/parameter-schema/description-mode/ParameterDescription.vue +++ b/src/components/parameter-schema/description-mode/ParameterDescription.vue @@ -20,10 +20,6 @@ const props = defineProps({ type: String, required: true, }, - showHidden: { - type: Boolean, - default: false, - }, clowmResource: { type: Boolean, default: false, @@ -50,7 +46,6 @@ const defaultValue = computed<string | undefined>(() => const enumValues = computed<string[] | undefined>(() => props.parameter["enum"]?.map((val: string) => val.toString()), ); -const hidden = computed<boolean>(() => props.parameter["hidden"] ?? false); const parameterPattern = computed<string | undefined>( () => props.parameter["pattern"], ); @@ -118,11 +113,7 @@ onMounted(() => { </script> <template> - <div - :id="`parameter-${randomIDSuffix}`" - :hidden="!showHidden && hidden" - class="border-top" - > + <div :id="`parameter-${randomIDSuffix}`" class="border-top"> <div class="d-flex pt-2 justify-content-between"> <div class="flex-fill ps-2"> <div class="row"> @@ -134,7 +125,7 @@ onMounted(() => { </span> <span v-if="anyOfTooltip != undefined" - class="rounded py-0 px-1 bg-cyan ms-2 label w-fit fs-6" + class="rounded py-0 px-1 bg-info ms-2 label w-fit fs-6" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="anyOfTooltip" @@ -144,7 +135,7 @@ onMounted(() => { > <span v-if="oneOfTooltip != undefined" - class="rounded py-0 px-1 bg-cyan ms-2 label w-fit fs-6" + class="rounded py-0 px-1 bg-info ms-2 label w-fit fs-6" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="oneOfTooltip" @@ -154,7 +145,7 @@ onMounted(() => { > <span v-if="dependentTooltip != undefined" - class="rounded py-0 px-1 bg-cyan ms-2 label w-fit fs-6" + class="rounded py-0 px-1 bg-info ms-2 label w-fit fs-6" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="dependentTooltip" diff --git a/src/components/parameter-schema/description-mode/ParameterGroupDescription.vue b/src/components/parameter-schema/description-mode/ParameterGroupDescription.vue index b85af8f614bac7111fd02f81dac11ff5097ce8a6..8323ef45c2d357284d7056bc5f0b30b298169ab6 100644 --- a/src/components/parameter-schema/description-mode/ParameterGroupDescription.vue +++ b/src/components/parameter-schema/description-mode/ParameterGroupDescription.vue @@ -2,7 +2,11 @@ import { computed, type PropType } from "vue"; import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; import ParameterDescription from "@/components/parameter-schema/description-mode/ParameterDescription.vue"; -import type { ParameterCombinationDependencies } from "@/types/WorkflowParameters.ts"; +import { + type ParameterCombinationDependencies, + ParameterVisibility, + type ParameterVisibilityMapping, +} from "@/types/WorkflowParameters.ts"; const props = defineProps({ parameterGroupName: { @@ -13,14 +17,18 @@ const props = defineProps({ type: Object, required: true, }, - showHidden: { - type: Boolean, - default: false, - }, resourceParameters: { type: Array as PropType<string[]>, required: false, }, + parameterVisibility: { + type: Object as PropType<ParameterVisibilityMapping>, + required: true, + }, + currentVisibility: { + type: Number, + default: ParameterVisibility.SIMPLE, + }, }); const title = computed<string>(() => parameterGroup.value["title"]); @@ -30,13 +38,6 @@ const parameters = computed<Record<string, never>>( () => parameterGroup.value["properties"], ); -const groupHidden = computed<boolean>(() => - Object.keys(parameters.value).reduce( - (acc: boolean, val: string) => acc && parameters.value[val]["hidden"], - true, - ), -); - const parameterGroup = computed( () => props.schemaProperties[props.parameterGroupName], ); @@ -108,10 +109,21 @@ const parameterOneOfDependenciesPerParameter = computed< } return r; }); + +function parameterVisible(paramName: string): boolean { + return props.parameterVisibility[paramName] <= props.currentVisibility; +} + +const groupHidden = computed<boolean>(() => + Object.keys(parameters.value).reduce( + (acc: boolean, val: string) => acc && !parameterVisible(val), + true, + ), +); </script> <template> - <div :hidden="!props.showHidden && groupHidden" class="mb-5"> + <div :hidden="groupHidden" class="mb-5"> <div class="row"> <h2 :id="props.parameterGroupName"> <font-awesome-icon v-if="icon" :icon="icon" class="me-3" /> @@ -125,10 +137,10 @@ const parameterOneOfDependenciesPerParameter = computed< > <parameter-description v-if="parameter['type'] !== 'object'" + :hidden="!parameterVisible(parameterName)" :parameter-name="parameterName" :parameter="parameter" :required="parameterGroup['required']?.includes(parameterName) ?? false" - :show-hidden="showHidden" :clowm-resource="resourceParameters?.includes(parameterName)" :dependencies="parameterDependenciesPerParameter[parameterName]" :any-of-dependencies=" diff --git a/src/components/parameter-schema/form-mode/ParameterGroupForm.vue b/src/components/parameter-schema/form-mode/ParameterGroupForm.vue index 70ad2e6bbe99c9ec30a356dd14da972d11d3ffdd..a679a138eabd4ab99cf5ebf12d2a60449d5baafd 100644 --- a/src/components/parameter-schema/form-mode/ParameterGroupForm.vue +++ b/src/components/parameter-schema/form-mode/ParameterGroupForm.vue @@ -2,9 +2,11 @@ import FontAwesomeIcon from "@/components/FontAwesomeIcon.vue"; import { computed, onMounted, type PropType } from "vue"; import MarkdownRenderer from "@/components/MarkdownRenderer.vue"; -import type { - FlatWorkflowParameters, - ParameterCombinationDependencies, +import { + type FlatWorkflowParameters, + type ParameterCombinationDependencies, + ParameterVisibility, + type ParameterVisibilityMapping, } from "@/types/WorkflowParameters"; import ParameterInput from "@/components/parameter-schema/form-mode/ParameterInput.vue"; import { Tooltip } from "bootstrap"; @@ -19,14 +21,7 @@ const props = defineProps({ type: String, required: true, }, - showHidden: { - type: Boolean, - default: false, - }, - showOptional: { - type: Boolean, - default: false, - }, + resourceParameters: { type: Array as PropType<string[]>, required: false, @@ -36,25 +31,24 @@ const props = defineProps({ type: Object, required: true, }, + parameterVisibility: { + type: Object as PropType<ParameterVisibilityMapping>, + required: true, + }, + currentVisibility: { + type: Number, + default: ParameterVisibility.SIMPLE, + }, }); const title = computed<string>(() => parameterGroup.value["title"]); const icon = computed<string>(() => parameterGroup.value["fa_icon"]); const description = computed<string>(() => parameterGroup.value["description"]); const groupHidden = computed<boolean>(() => Object.keys(parameters.value).reduce( - (acc: boolean, val: string) => acc && parameters.value[val]["hidden"], + (acc: boolean, val: string) => acc && !parameterVisible(val), true, ), ); -const groupRequired = computed<boolean>( - () => - ( - parameterGroup.value["required"] ?? - parameterGroup.value["anyOf"] ?? - parameterGroup.value["oneOf"] ?? - [] - ).length > 0, -); const parameters = computed<Record<string, never>>( () => parameterGroup.value["properties"], ); @@ -294,6 +288,10 @@ const parameterIds = computed<Record<string, string>>(() => { return r; }); +function parameterVisible(paramName: string): boolean { + return props.parameterVisibility[paramName] <= props.currentVisibility; +} + onMounted(() => { document ?.querySelector(`#group-${groupId}`) @@ -305,15 +303,8 @@ onMounted(() => { </script> <template> - <div - :id="`group-${groupId}`" - class="card mb-3" - :hidden=" - (!props.showHidden && groupHidden) || - (!props.showOptional && !groupRequired) - " - > - <h3 :id="parameterGroup.valueName" class="card-header"> + <div :id="`group-${groupId}`" class="card mb-3" :hidden="groupHidden"> + <h3 :id="props.parameterGroupName" class="card-header"> <font-awesome-icon v-if="icon" :icon="icon" class="me-2" /> {{ title }} </h3> @@ -323,20 +314,7 @@ onMounted(() => { v-for="(parameter, parameterName) in parameters" :key="parameterName" > - <div - :hidden=" - (!props.showHidden && parameter['hidden']) || - (!props.showOptional && - !( - parameterRequired[parameterName] || - parameterAnyOfDependenciesPerParameter[parameterName] != - undefined || - parameterOneOfDependenciesPerParameter[parameterName] != - undefined || - parameterDependenciesPerParameter[parameterName] != undefined - )) - " - > + <div :hidden="!parameterVisible(parameterName)"> <code class="p-2 rounded-top border-bottom-0 border bg-secondary-subtle border-secondary" > @@ -350,7 +328,7 @@ onMounted(() => { </span> <span v-if="anyOfTooltip[parameterName] != undefined" - class="rounded p-1 bg-cyan ms-2 label" + class="rounded p-1 bg-info ms-2 label" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="anyOfTooltip[parameterName]" @@ -360,7 +338,7 @@ onMounted(() => { > <span v-if="oneOfTooltip[parameterName] != undefined" - class="rounded p-1 bg-cyan ms-2 label" + class="rounded p-1 bg-info ms-2 label" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="oneOfTooltip[parameterName]" @@ -370,7 +348,7 @@ onMounted(() => { > <span v-if="dependentTooltip[parameterName] != undefined" - class="rounded p-1 bg-cyan ms-2 label" + class="rounded p-1 bg-info ms-2 label" data-bs-toggle="tooltip" data-bs-placement="bottom" :data-bs-title="dependentTooltip[parameterName]" @@ -398,7 +376,7 @@ onMounted(() => { :resource-parameter=" props.resourceParameters?.includes(parameterName) " - :allow-raw="props.showOptional" + :allow-raw="props.currentVisibility > ParameterVisibility.SIMPLE" :mapping="props.mapping?.[parameterName]" :custom-validity="oneOfValidity(parameterName)" /> diff --git a/src/components/workflows/WorkflowDocumentationTabs.vue b/src/components/workflows/WorkflowDocumentationTabs.vue index f445a3175c374695bf3f8c906df148da9b27732d..b8e29e3c5f3770309862055f76341e73989f4682 100644 --- a/src/components/workflows/WorkflowDocumentationTabs.vue +++ b/src/components/workflows/WorkflowDocumentationTabs.vue @@ -120,7 +120,11 @@ const activeTab = computed<string>( ></span> </p> </div> - <div v-else class="px-2 pt-3 border border-top-0 overflow-x-auto"> + <div + v-else + class="px-2 pt-3 border border-top-0" + :class="{ 'overflow-x-auto': activeTab !== 'parameters' }" + > <div v-if="activeTab === 'description'"> <markdown-renderer v-if="props.descriptionMarkdown" diff --git a/src/components/workflows/WorkflowWithVersionsCard.vue b/src/components/workflows/WorkflowWithVersionsCard.vue index 0686107088fdec778f83e2834d48804e755fc851..726b88585cbacc4813312a2167b1320297982c89 100644 --- a/src/components/workflows/WorkflowWithVersionsCard.vue +++ b/src/components/workflows/WorkflowWithVersionsCard.vue @@ -376,6 +376,23 @@ onMounted(() => { Update Metadata </router-link> </li> + <li> + <router-link + class="dropdown-item" + :to="{ + name: 'workflow-parameter-visibility', + params: { + workflowId: props.workflow.workflow_id, + versionId: version.workflow_version_id, + }, + query: { + modeId: version.modes?.[0] ?? undefined, + }, + }" + > + Edit Parameter Visibility + </router-link> + </li> </ul> </td> </tr> diff --git a/src/components/workflows/modals/CreateWorkflowModal.vue b/src/components/workflows/modals/CreateWorkflowModal.vue index 9964e73cb975d38e58c6ed3583775b2d55032171..88434fd72089844efdd8838baf3cb86ec5584159 100644 --- a/src/components/workflows/modals/CreateWorkflowModal.vue +++ b/src/components/workflows/modals/CreateWorkflowModal.vue @@ -551,14 +551,17 @@ onMounted(() => { <div class="mb-3"> <div class="form-check fs-5"> <input - id="privateRepositoryCheckbox" + id="createPrivateRepositoryCheckbox" v-model="repositoryCredentials.privateRepo" class="form-check-input" type="checkbox" aria-controls="#createWorkflowPrivateRepositoryCheckbox" @change="formState.allowUpload = false" /> - <label class="form-check-label" for="privateRepositoryCheckbox"> + <label + class="form-check-label" + for="createPrivateRepositoryCheckbox" + > Enable private Git Repository </label> </div> diff --git a/src/stores/users.ts b/src/stores/users.ts index e549fcb1780fd5261e595afa68b9068229447fa1..e0b4cb68c89df2c6fa42b51a9a5cd7231b21d244 100644 --- a/src/stores/users.ts +++ b/src/stores/users.ts @@ -105,7 +105,7 @@ export const useUserStore = defineStore({ useNameStore().addNameToMapping(user.uid, user.display_name); }, logout() { - window._paq.push(["resetUserId"]); + window._paq?.push(["resetUserId"]); this.$reset(); const activeTheme = localStorage.getItem("theme"); localStorage.clear(); diff --git a/src/types/WorkflowParameters.ts b/src/types/WorkflowParameters.ts index 0328356bc8ec07f3bfa53ff1c46e5a3ca0b7c77d..62b02a2f4b08a5b78c589ed76f61ec6477fcc458 100644 --- a/src/types/WorkflowParameters.ts +++ b/src/types/WorkflowParameters.ts @@ -23,3 +23,12 @@ export interface ParameterCombinationDependencies { group: string[]; // AND group in OR combination dependencies: string[][]; // (X)OR combination to fulfill } + +export enum ParameterVisibility { + SIMPLE, + ADVANCED, + EXPERT, + IMPOSSIBLE, +} + +export type ParameterVisibilityMapping = Record<string, ParameterVisibility>; diff --git a/src/utils/md5.js b/src/utils/md5.js index b464d8b698c97f9f96ff3136d3d1eee03dc9510c..61512f260b2480d47c695d2a4d5b2d174d5d3d6d 100644 --- a/src/utils/md5.js +++ b/src/utils/md5.js @@ -1,498 +1 @@ -export function md5(d) { - var r = M(V(Y(X(d), 8 * d.length))); - return r.toLowerCase(); -} - -function M(d) { - for (var _, m = "0123456789ABCDEF", f = "", r = 0; r < d.length; r++) - _ = d.charCodeAt(r); - f += m.charAt((_ >>> 4) & 15) + m.charAt(15 & _); - return f; -} - -function X(d) { - for (var _ = Array(d.length >> 2), m = 0; m < _.length; m++) _[m] = 0; - for (m = 0; m < 8 * d.length; m += 8) - _[m >> 5] |= (255 & d.charCodeAt(m / 8)) << m % 32; - return _; -} - -function V(d) { - for (var _ = "", m = 0; m < 32 * d.length; m += 8) - _ += String.fromCharCode((d[m >> 5] >>> m % 32) & 255); - return _; -} - -function Y(d, _) { - d[_ >> 5] |= 128 << _ % 32; - d[14 + (((_ + 64) >>> 9) << 4)] = _; - for ( - var m = 1732584193, f = -271733879, r = -1732584194, i = 271733878, n = 0; - n < d.length; - n += 16 - ) { - var h = m, - t = f, - g = r, - e = i; - f = md5_ii( - (f = md5_ii( - (f = md5_ii( - (f = md5_ii( - (f = md5_hh( - (f = md5_hh( - (f = md5_hh( - (f = md5_hh( - (f = md5_gg( - (f = md5_gg( - (f = md5_gg( - (f = md5_gg( - (f = md5_ff( - (f = md5_ff( - (f = md5_ff( - (f = md5_ff( - f, - (r = md5_ff( - r, - (i = md5_ff( - i, - (m = md5_ff( - m, - f, - r, - i, - d[n + 0], - 7, - -680876936, - )), - f, - r, - d[n + 1], - 12, - -389564586, - )), - m, - f, - d[n + 2], - 17, - 606105819, - )), - i, - m, - d[n + 3], - 22, - -1044525330, - )), - (r = md5_ff( - r, - (i = md5_ff( - i, - (m = md5_ff( - m, - f, - r, - i, - d[n + 4], - 7, - -176418897, - )), - f, - r, - d[n + 5], - 12, - 1200080426, - )), - m, - f, - d[n + 6], - 17, - -1473231341, - )), - i, - m, - d[n + 7], - 22, - -45705983, - )), - (r = md5_ff( - r, - (i = md5_ff( - i, - (m = md5_ff( - m, - f, - r, - i, - d[n + 8], - 7, - 1770035416, - )), - f, - r, - d[n + 9], - 12, - -1958414417, - )), - m, - f, - d[n + 10], - 17, - -42063, - )), - i, - m, - d[n + 11], - 22, - -1990404162, - )), - (r = md5_ff( - r, - (i = md5_ff( - i, - (m = md5_ff( - m, - f, - r, - i, - d[n + 12], - 7, - 1804603682, - )), - f, - r, - d[n + 13], - 12, - -40341101, - )), - m, - f, - d[n + 14], - 17, - -1502002290, - )), - i, - m, - d[n + 15], - 22, - 1236535329, - )), - (r = md5_gg( - r, - (i = md5_gg( - i, - (m = md5_gg( - m, - f, - r, - i, - d[n + 1], - 5, - -165796510, - )), - f, - r, - d[n + 6], - 9, - -1069501632, - )), - m, - f, - d[n + 11], - 14, - 643717713, - )), - i, - m, - d[n + 0], - 20, - -373897302, - )), - (r = md5_gg( - r, - (i = md5_gg( - i, - (m = md5_gg(m, f, r, i, d[n + 5], 5, -701558691)), - f, - r, - d[n + 10], - 9, - 38016083, - )), - m, - f, - d[n + 15], - 14, - -660478335, - )), - i, - m, - d[n + 4], - 20, - -405537848, - )), - (r = md5_gg( - r, - (i = md5_gg( - i, - (m = md5_gg(m, f, r, i, d[n + 9], 5, 568446438)), - f, - r, - d[n + 14], - 9, - -1019803690, - )), - m, - f, - d[n + 3], - 14, - -187363961, - )), - i, - m, - d[n + 8], - 20, - 1163531501, - )), - (r = md5_gg( - r, - (i = md5_gg( - i, - (m = md5_gg(m, f, r, i, d[n + 13], 5, -1444681467)), - f, - r, - d[n + 2], - 9, - -51403784, - )), - m, - f, - d[n + 7], - 14, - 1735328473, - )), - i, - m, - d[n + 12], - 20, - -1926607734, - )), - (r = md5_hh( - r, - (i = md5_hh( - i, - (m = md5_hh(m, f, r, i, d[n + 5], 4, -378558)), - f, - r, - d[n + 8], - 11, - -2022574463, - )), - m, - f, - d[n + 11], - 16, - 1839030562, - )), - i, - m, - d[n + 14], - 23, - -35309556, - )), - (r = md5_hh( - r, - (i = md5_hh( - i, - (m = md5_hh(m, f, r, i, d[n + 1], 4, -1530992060)), - f, - r, - d[n + 4], - 11, - 1272893353, - )), - m, - f, - d[n + 7], - 16, - -155497632, - )), - i, - m, - d[n + 10], - 23, - -1094730640, - )), - (r = md5_hh( - r, - (i = md5_hh( - i, - (m = md5_hh(m, f, r, i, d[n + 13], 4, 681279174)), - f, - r, - d[n + 0], - 11, - -358537222, - )), - m, - f, - d[n + 3], - 16, - -722521979, - )), - i, - m, - d[n + 6], - 23, - 76029189, - )), - (r = md5_hh( - r, - (i = md5_hh( - i, - (m = md5_hh(m, f, r, i, d[n + 9], 4, -640364487)), - f, - r, - d[n + 12], - 11, - -421815835, - )), - m, - f, - d[n + 15], - 16, - 530742520, - )), - i, - m, - d[n + 2], - 23, - -995338651, - )), - (r = md5_ii( - r, - (i = md5_ii( - i, - (m = md5_ii(m, f, r, i, d[n + 0], 6, -198630844)), - f, - r, - d[n + 7], - 10, - 1126891415, - )), - m, - f, - d[n + 14], - 15, - -1416354905, - )), - i, - m, - d[n + 5], - 21, - -57434055, - )), - (r = md5_ii( - r, - (i = md5_ii( - i, - (m = md5_ii(m, f, r, i, d[n + 12], 6, 1700485571)), - f, - r, - d[n + 3], - 10, - -1894986606, - )), - m, - f, - d[n + 10], - 15, - -1051523, - )), - i, - m, - d[n + 1], - 21, - -2054922799, - )), - (r = md5_ii( - r, - (i = md5_ii( - i, - (m = md5_ii(m, f, r, i, d[n + 8], 6, 1873313359)), - f, - r, - d[n + 15], - 10, - -30611744, - )), - m, - f, - d[n + 6], - 15, - -1560198380, - )), - i, - m, - d[n + 13], - 21, - 1309151649, - )), - (r = md5_ii( - r, - (i = md5_ii( - i, - (m = md5_ii(m, f, r, i, d[n + 4], 6, -145523070)), - f, - r, - d[n + 11], - 10, - -1120210379, - )), - m, - f, - d[n + 2], - 15, - 718787259, - )), - i, - m, - d[n + 9], - 21, - -343485551, - ); - m = safe_add(m, h); - f = safe_add(f, t); - r = safe_add(r, g); - i = safe_add(i, e); - } - return [m, f, r, i]; -} - -function md5_cmn(d, _, m, f, r, i) { - return safe_add(bit_rol(safe_add(safe_add(_, d), safe_add(f, i)), r), m); -} - -function md5_ff(d, _, m, f, r, i, n) { - return md5_cmn((_ & m) | (~_ & f), d, _, r, i, n); -} - -function md5_gg(d, _, m, f, r, i, n) { - return md5_cmn((_ & f) | (m & ~f), d, _, r, i, n); -} - -function md5_hh(d, _, m, f, r, i, n) { - return md5_cmn(_ ^ m ^ f, d, _, r, i, n); -} - -function md5_ii(d, _, m, f, r, i, n) { - return md5_cmn(m ^ (_ | ~f), d, _, r, i, n); -} - -function safe_add(d, _) { - var m = (65535 & d) + (65535 & _); - return (((d >> 16) + (_ >> 16) + (m >> 16)) << 16) | (65535 & m); -} - -function bit_rol(d, _) { - return (d << _) | (d >>> (32 - _)); -} +export function md5(d){var r = M(V(Y(X(d),8*d.length)));return r.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r<d.length;r++)_=d.charCodeAt(r),f+=m.charAt(_>>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_} diff --git a/src/views/workflows/StartWorkflowView.vue b/src/views/workflows/StartWorkflowView.vue index 5ea539f48a61626b958398b37f5a9f4e544ee30e..fa0d782a40492b923e842399cbb3652b15915887 100644 --- a/src/views/workflows/StartWorkflowView.vue +++ b/src/views/workflows/StartWorkflowView.vue @@ -18,7 +18,6 @@ const props = defineProps<{ versionId: string; workflowId: string; workflowModeId?: string; - viewMode: string; }>(); const router = useRouter(); @@ -123,7 +122,6 @@ onMounted(() => { :schema="versionState.parameterSchema" :loading="versionState.loading" allow-notes - :view-mode="viewMode" :nextflow-version=" workflowRepository.versionMapping[versionId]?.nextflow_version ?? NextflowVersion._24_04_2 diff --git a/tsconfig.config.json b/tsconfig.config.json index 776b880013c18b169bc3d489f6a7df64d16d7f5b..e1f392aa943d7c48fa384e0a05314837297ceced 100644 --- a/tsconfig.config.json +++ b/tsconfig.config.json @@ -6,6 +6,7 @@ "cypress.config.*" ], "compilerOptions": { + "suppressImplicitAnyIndexErrors": true, "composite": true, "types": [ "node"