diff --git a/apps/OpenSign/package-lock.json b/apps/OpenSign/package-lock.json index e2dab730a..376baf4ec 100644 --- a/apps/OpenSign/package-lock.json +++ b/apps/OpenSign/package-lock.json @@ -12,7 +12,7 @@ "@emotion/styled": "^11.11.0", "@formkit/auto-animate": "^0.9.0", "@imgly/background-removal": "^1.7.0", - "@lottiefiles/dotlottie-react": "^0.18.3", + "@lottiefiles/dotlottie-react": "^0.18.4", "@mui/icons-material": "^5.15.10", "@mui/material": "^5.15.10", "@pdf-lib/fontkit": "^1.1.1", @@ -31,12 +31,12 @@ "@usewaypoint/block-text": "^0.0.7", "@usewaypoint/document-core": "^0.0.6", "@usewaypoint/email-builder": "^0.0.9", - "axios": "^1.13.5", + "axios": "^1.13.6", "date-fns-tz": "^3.2.0", - "dompurify": "^3.3.1", + "dompurify": "^3.3.3", "file-saver": "^2.0.5", "highlight.js": "^11.9.0", - "i18next": "^25.8.13", + "i18next": "^25.8.17", "i18next-browser-languagedetector": "^8.2.1", "i18next-http-backend": "^3.0.2", "jszip": "^3.10.1", @@ -49,6 +49,7 @@ "prettier": "^3.8.1", "print-js": "^1.6.0", "prismjs": "^1.30.0", + "quill-html-edit-button": "^3.0.0", "radix-ui": "^1.4.3", "react": "^19.2.4", "react-bootstrap": "^2.10.10", @@ -60,11 +61,12 @@ "react-dnd-multi-backend": "^9.0.0", "react-dom": "^19.2.4", "react-gtm-module": "^2.0.11", - "react-i18next": "^16.5.4", - "react-konva": "^19.2.2", + "react-i18next": "^16.5.6", + "react-konva": "^19.2.3", "react-pdf": "^10.4.1", + "react-quill-new": "^3.8.3", "react-redux": "^9.2.0", - "react-rnd": "^10.5.2", + "react-rnd": "^10.5.3", "react-router": "^7.13.1", "react-scrollbars-custom": "^4.1.1", "react-select": "^5.10.2", @@ -74,7 +76,7 @@ "react-tooltip": "^5.30.0", "redux": "^5.0.1", "regex-parser": "^2.3.1", - "serve": "^14.2.5", + "serve": "^14.2.6", "web-vitals": "^5.1.0", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "zod": "^3.22.4", @@ -97,12 +99,12 @@ "concurrently": "^9.2.1", "css-loader": "^7.1.4", "daisyui": "^4.12.24", - "eslint": "^9.39.3", + "eslint": "^9.39.4", "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react": "^7.37.5", "jsdom": "^28.1.0", - "lint-staged": "^16.2.7", - "postcss": "^8.5.6", + "lint-staged": "^16.3.3", + "postcss": "^8.5.8", "pretty-quick": "^4.2.2", "rollup-plugin-node-polyfills": "^0.2.1", "tailwindcss": "^3.4.19", @@ -2799,15 +2801,15 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2840,9 +2842,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz", - "integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { @@ -2853,7 +2855,7 @@ "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", - "minimatch": "^3.1.3", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -2888,9 +2890,9 @@ "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.3.tgz", - "integrity": "sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { @@ -3126,21 +3128,21 @@ } }, "node_modules/@lottiefiles/dotlottie-react": { - "version": "0.18.3", - "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.18.3.tgz", - "integrity": "sha512-/6iVC4y9KCyPKS2gDUFp+omYndo3KPombAsZXB0h5sSyEO/+ydVppd5fIoHg2ogGAPOCPK97Y5Eos65JnyTjww==", + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.18.4.tgz", + "integrity": "sha512-tuMjFM968TQOqkoaK7QbkQGxxBRQaH4VMxH43guJFwuPkH8q2MJbcglBizbQbAqWLM9c9adaHuUKocsS99MhBw==", "license": "MIT", "dependencies": { - "@lottiefiles/dotlottie-web": "0.65.0" + "@lottiefiles/dotlottie-web": "0.66.0" }, "peerDependencies": { "react": "^17 || ^18 || ^19" } }, "node_modules/@lottiefiles/dotlottie-web": { - "version": "0.65.0", - "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.65.0.tgz", - "integrity": "sha512-D5ALEwZerjy+MkOv9mMjY7bxRfe7rQPWMtDl8hlNYLnrDKj4AzTaRztZ2u5hBHHiSfSc7TnA4MJgq+ktNZPpIg==", + "version": "0.66.0", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.66.0.tgz", + "integrity": "sha512-aFTwmvP3iN4Lu4VyuKMqHlc6mMDdg0wtekY6FEzcv+Miv7inFW6wz0ekY5xHqhDctVOrQIWvJX+ShmevFZUjDg==", "license": "MIT" }, "node_modules/@mui/core-downloads-tracker": { @@ -6426,9 +6428,9 @@ } }, "node_modules/@types/react-reconciler": { - "version": "0.32.3", - "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.32.3.tgz", - "integrity": "sha512-cMi5ZrLG7UtbL7LTK6hq9w/EZIRk4Mf1Z5qHoI+qBh7/WkYkFXQ7gOto2yfUvPzF5ERMAhaXS5eTQ2SAnHjLzA==", + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.33.0.tgz", + "integrity": "sha512-HZOXsKT0tGI9LlUw2LuedXsVeB88wFa536vVL0M6vE8zN63nI+sSr1ByxmPToP5K5bukaVscyeCJcF9guVNJ1g==", "license": "MIT", "peerDependencies": { "@types/react": "*" @@ -7039,7 +7041,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -7478,9 +7479,9 @@ } }, "node_modules/axios": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", - "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", + "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.11", @@ -9335,9 +9336,9 @@ } }, "node_modules/dompurify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.1.tgz", - "integrity": "sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.3.tgz", + "integrity": "sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -9434,9 +9435,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.0.tgz", + "integrity": "sha512-/ce7+jQ1PQ6rVXwe+jKEg5hW5ciicHwIQUagZkp6IufBoY3YDgdTTY1azVs0qoRgVmvsNB+rbjLJxDAeHHtwsQ==", "dev": true, "license": "MIT", "peer": true, @@ -9750,25 +9751,25 @@ } }, "node_modules/eslint": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.3.tgz", - "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", + "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.3", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -9787,7 +9788,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -10026,7 +10027,6 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "dev": true, "license": "MIT" }, "node_modules/events": { @@ -10111,7 +10111,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, "license": "Apache-2.0" }, "node_modules/fast-glob": { @@ -10162,7 +10161,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, "funding": [ { "type": "github", @@ -11000,9 +10998,9 @@ } }, "node_modules/i18next": { - "version": "25.8.13", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.13.tgz", - "integrity": "sha512-E0vzjBY1yM+nsFrtgkjLhST2NBkirkvOVoQa0MSldhsuZ3jUge7ZNpuwG0Cfc74zwo5ZwRzg3uOgT+McBn32iA==", + "version": "25.8.17", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.17.tgz", + "integrity": "sha512-vWtCttyn5bpOK4hWbRAe1ZXkA+Yzcn2OcACT+WJavtfGMcxzkfvXTLMeOU8MUhRmAySKjU4VVuKlo0sSGeBokA==", "funding": [ { "type": "individual", @@ -11019,7 +11017,7 @@ ], "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4" + "@babel/runtime": "^7.28.6" }, "peerDependencies": { "typescript": "^5" @@ -12156,19 +12154,18 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", - "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.3.3.tgz", + "integrity": "sha512-RLq2koZ5fGWrx7tcqx2tSTMQj4lRkfNJaebO/li/uunhCJbtZqwTuwPHpgIimAHHi/2nZIiGrkCHDCOeR1onxA==", "dev": true, "license": "MIT", "dependencies": { - "commander": "^14.0.2", + "commander": "^14.0.3", "listr2": "^9.0.5", "micromatch": "^4.0.8", - "nano-spawn": "^2.0.0", - "pidtree": "^0.6.0", "string-argv": "^0.3.2", - "yaml": "^2.8.1" + "tinyexec": "^1.0.2", + "yaml": "^2.8.2" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -12190,6 +12187,16 @@ "node": ">=20" } }, + "node_modules/lint-staged/node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/listr2": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", @@ -12337,6 +12344,12 @@ "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", "license": "MIT" }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -12344,6 +12357,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" + }, "node_modules/lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -12838,7 +12858,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -12910,19 +12929,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nano-spawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", - "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -13378,6 +13384,12 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "license": "(MIT AND Zlib)" }, + "node_modules/parchment": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz", + "integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==", + "license": "BSD-3-Clause" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -13640,19 +13652,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -13726,9 +13725,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", "dev": true, "funding": [ { @@ -14148,6 +14147,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14198,6 +14198,44 @@ ], "license": "MIT" }, + "node_modules/quill": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.3.tgz", + "integrity": "sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==", + "license": "BSD-3-Clause", + "dependencies": { + "eventemitter3": "^5.0.1", + "lodash-es": "^4.17.21", + "parchment": "^3.0.0", + "quill-delta": "^5.1.0" + }, + "engines": { + "npm": ">=8.2.3" + } + }, + "node_modules/quill-delta": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", + "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", + "license": "MIT", + "dependencies": { + "fast-diff": "^1.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.isequal": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/quill-html-edit-button": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quill-html-edit-button/-/quill-html-edit-button-3.0.0.tgz", + "integrity": "sha512-ZUV3rYjEvXz+v/7f8N0Mkp2+0D8VGDj6yCYPfagSLmyshczeMawS7vZJzaJ18dJp35IfjiPnzqyVk3KCI8qN1w==", + "license": "MIT", + "peerDependencies": { + "quill": "^2.x" + } + }, "node_modules/radix-ui": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", @@ -14275,17 +14313,6 @@ } } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -14507,12 +14534,12 @@ } }, "node_modules/react-draggable": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz", - "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", + "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", "license": "MIT", "dependencies": { - "clsx": "^1.1.1", + "clsx": "^2.1.1", "prop-types": "^15.8.1" }, "peerDependencies": { @@ -14520,15 +14547,6 @@ "react-dom": ">= 16.3.0" } }, - "node_modules/react-draggable/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/react-gtm-module": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/react-gtm-module/-/react-gtm-module-2.0.11.tgz", @@ -14536,9 +14554,9 @@ "license": "MIT" }, "node_modules/react-i18next": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.5.4.tgz", - "integrity": "sha512-6yj+dcfMncEC21QPhOTsW8mOSO+pzFmT6uvU7XXdvM/Cp38zJkmTeMeKmTrmCMD5ToT79FmiE/mRWiYWcJYW4g==", + "version": "16.5.6", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.5.6.tgz", + "integrity": "sha512-Ua7V2/efA88ido7KyK51fb8Ki8M/sRfW8LR/rZ/9ZKr2luhuTI7kwYZN5agT1rWG7aYm5G0RYE/6JR8KJoCMDw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.28.4", @@ -14569,9 +14587,9 @@ "license": "MIT" }, "node_modules/react-konva": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/react-konva/-/react-konva-19.2.2.tgz", - "integrity": "sha512-fgIevJSiZ6mYxouR0XLq7oKgQkfHHySHyNpyc1f/3in0xXq8BV7M7Y82obyoBPOAj35TBUPuZ568qZcelYm3ag==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-konva/-/react-konva-19.2.3.tgz", + "integrity": "sha512-VsO5CJZwUo12xFa33UEIDOQn6ZZBeE6jlkStGFvpR/3NiDA/9RPQTzw6Ri++C0Pnh3Arco1AehB8qJNv9YCRwg==", "funding": [ { "type": "patreon", @@ -14588,7 +14606,7 @@ ], "license": "MIT", "dependencies": { - "@types/react-reconciler": "^0.32.3", + "@types/react-reconciler": "^0.33.0", "its-fine": "^2.0.0", "react-reconciler": "0.33.0", "scheduler": "0.27.0" @@ -14640,6 +14658,21 @@ } } }, + "node_modules/react-quill-new": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/react-quill-new/-/react-quill-new-3.8.3.tgz", + "integrity": "sha512-c96PYqFTo0pI4R3e79B3rH9LUIce1kIQbmTBu/imJQZk8305ogyLyBqKKjG2UoInDlquXqePSzmBo2aVia3ttw==", + "license": "MIT", + "dependencies": { + "lodash-es": "^4.17.21", + "quill": "~2.0.3" + }, + "peerDependencies": { + "quill-delta": "^5.1.0", + "react": "^16 || ^17 || ^18 || ^19", + "react-dom": "^16 || ^17 || ^18 || ^19" + } + }, "node_modules/react-reconciler": { "version": "0.33.0", "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.33.0.tgz", @@ -14748,13 +14781,13 @@ "license": "0BSD" }, "node_modules/react-rnd": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/react-rnd/-/react-rnd-10.5.2.tgz", - "integrity": "sha512-0Tm4x7k7pfHf2snewJA8x7Nwgt3LV+58MVEWOVsFjk51eYruFEa6Wy7BNdxt4/lH0wIRsu7Gm3KjSXY2w7YaNw==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/react-rnd/-/react-rnd-10.5.3.tgz", + "integrity": "sha512-s/sIT3pGZnQ+57egijkTp9mizjIWrJz68Pq6yd+F/wniFY3IriML18dUXnQe/HP9uMiJ+9MAp44hljG99fZu6Q==", "license": "MIT", "dependencies": { - "re-resizable": "6.11.2", - "react-draggable": "4.4.6", + "re-resizable": "^6.11.2", + "react-draggable": "^4.5.0", "tslib": "2.6.2" }, "peerDependencies": { @@ -15506,25 +15539,14 @@ "semver": "bin/semver.js" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/serve": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.5.tgz", - "integrity": "sha512-Qn/qMkzCcMFVPb60E/hQy+iRLpiU8PamOfOSYoAHmmF+fFFmpPpqa6Oci2iWYpTdOUM3VF+TINud7CfbQnsZbA==", + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/serve/-/serve-14.2.6.tgz", + "integrity": "sha512-QEjUSA+sD4Rotm1znR8s50YqA3kYpRGPmtd5GlFxbaL9n/FdUNbqMhxClqdditSk0LlZyA/dhud6XNRTOC9x2Q==", "license": "MIT", "dependencies": { "@zeit/schemas": "2.36.0", - "ajv": "8.12.0", + "ajv": "8.18.0", "arg": "5.0.2", "boxen": "7.0.0", "chalk": "5.0.1", @@ -15532,7 +15554,7 @@ "clipboardy": "3.0.0", "compression": "1.8.1", "is-port-reachable": "4.0.0", - "serve-handler": "6.1.6", + "serve-handler": "6.1.7", "update-check": "1.5.4" }, "bin": { @@ -15543,15 +15565,15 @@ } }, "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", "mime-types": "2.1.18", - "minimatch": "3.1.2", + "minimatch": "3.1.5", "path-is-inside": "1.0.2", "path-to-regexp": "3.3.0", "range-parser": "1.2.0" @@ -15587,34 +15609,6 @@ "node": ">= 0.6" } }, - "node_modules/serve-handler/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/serve/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/serve/node_modules/chalk": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", @@ -16404,9 +16398,9 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", "dev": true, "license": "MIT", "peer": true, @@ -16414,7 +16408,6 @@ "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -16965,6 +16958,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -17408,9 +17402,9 @@ } }, "node_modules/webpack": { - "version": "5.105.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.3.tgz", - "integrity": "sha512-LLBBA4oLmT7sZdHiYE/PeVuifOxYyE2uL/V+9VQP7YSYdJU7bSf7H8bZRRxW8kEPMkmVjnrXmoR3oejIdX0xbg==", + "version": "5.105.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", + "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", "dev": true, "license": "MIT", "peer": true, @@ -17425,7 +17419,7 @@ "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.19.0", + "enhanced-resolve": "^5.20.0", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -17437,7 +17431,7 @@ "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", + "terser-webpack-plugin": "^5.3.17", "watchpack": "^2.5.1", "webpack-sources": "^3.3.4" }, diff --git a/apps/OpenSign/package.json b/apps/OpenSign/package.json index a97b414b3..f63c37e0d 100644 --- a/apps/OpenSign/package.json +++ b/apps/OpenSign/package.json @@ -7,7 +7,7 @@ "@emotion/styled": "^11.11.0", "@formkit/auto-animate": "^0.9.0", "@imgly/background-removal": "^1.7.0", - "@lottiefiles/dotlottie-react": "^0.18.3", + "@lottiefiles/dotlottie-react": "^0.18.4", "@mui/icons-material": "^5.15.10", "@mui/material": "^5.15.10", "@pdf-lib/fontkit": "^1.1.1", @@ -26,12 +26,12 @@ "@usewaypoint/block-text": "^0.0.7", "@usewaypoint/document-core": "^0.0.6", "@usewaypoint/email-builder": "^0.0.9", - "axios": "^1.13.5", + "axios": "^1.13.6", "date-fns-tz": "^3.2.0", - "dompurify": "^3.3.1", + "dompurify": "^3.3.3", "file-saver": "^2.0.5", "highlight.js": "^11.9.0", - "i18next": "^25.8.13", + "i18next": "^25.8.17", "i18next-browser-languagedetector": "^8.2.1", "i18next-http-backend": "^3.0.2", "jszip": "^3.10.1", @@ -44,6 +44,7 @@ "prettier": "^3.8.1", "print-js": "^1.6.0", "prismjs": "^1.30.0", + "quill-html-edit-button": "^3.0.0", "radix-ui": "^1.4.3", "react": "^19.2.4", "react-bootstrap": "^2.10.10", @@ -55,11 +56,12 @@ "react-dnd-multi-backend": "^9.0.0", "react-dom": "^19.2.4", "react-gtm-module": "^2.0.11", - "react-i18next": "^16.5.4", - "react-konva": "^19.2.2", + "react-i18next": "^16.5.6", + "react-konva": "^19.2.3", "react-pdf": "^10.4.1", + "react-quill-new": "^3.8.3", "react-redux": "^9.2.0", - "react-rnd": "^10.5.2", + "react-rnd": "^10.5.3", "react-router": "^7.13.1", "react-scrollbars-custom": "^4.1.1", "react-select": "^5.10.2", @@ -69,7 +71,7 @@ "react-tooltip": "^5.30.0", "redux": "^5.0.1", "regex-parser": "^2.3.1", - "serve": "^14.2.5", + "serve": "^14.2.6", "web-vitals": "^5.1.0", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz", "zod": "^3.22.4", @@ -129,12 +131,12 @@ "concurrently": "^9.2.1", "css-loader": "^7.1.4", "daisyui": "^4.12.24", - "eslint": "^9.39.3", + "eslint": "^9.39.4", "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react": "^7.37.5", "jsdom": "^28.1.0", - "lint-staged": "^16.2.7", - "postcss": "^8.5.6", + "lint-staged": "^16.3.3", + "postcss": "^8.5.8", "pretty-quick": "^4.2.2", "rollup-plugin-node-polyfills": "^0.2.1", "tailwindcss": "^3.4.19", diff --git a/apps/OpenSign/public/locales/de/translation.json b/apps/OpenSign/public/locales/de/translation.json index 42f8915fd..d477402ef 100644 --- a/apps/OpenSign/public/locales/de/translation.json +++ b/apps/OpenSign/public/locales/de/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "Jede öffnende {{ muss eine passende }} haben.", "formula-error-operators": "Verwenden Sie bei Operatoren oder Klammern mindestens zwei Werte.", "formula-error-leading-operator": "Formeln dürfen nicht mit Operatoren beginnen.", + "formula-error-trailing-operator": "Formeln dürfen nicht mit einem Operator enden.", + "formula-error-adjacent-placeholders": "Zwei Platzhalter dürfen nicht ohne einen Operator dazwischen direkt nebeneinander stehen.", + "formula-error-continuous-operators": "Zwei Operatoren dürfen nicht direkt hintereinander verwendet werden.", + "formula-error-empty-parentheses": "Klammern dürfen nicht leer sein.", + "formula-error-invalid-parentheses-content": "Klammern dürfen nicht mit einem Operator beginnen oder enden.", + "formula-error-before-open-parenthesis": "Fehlender Operator vor '('. Fügen Sie vor der öffnenden Klammer einen Operator hinzu.", + "formula-error-after-close-parenthesis": "Fehlender Operator nach ')'. Fügen Sie nach der schließenden Klammer einen Operator wie '+' oder '*' hinzu.", + "formula-error-between-parentheses": "Fehlender Operator zwischen ')' und '('. Fügen Sie zwischen den beiden Gruppen einen Operator wie '*' hinzu.", + "formula-error-division-by-zero": "Division durch Null ist nicht zulässig. Ersetzen Sie '0' durch eine gültige, von Null verschiedene Zahl oder Variable.", + "formula-error-invalid-number-format": "Ungültiges Zahlenformat gefunden. Zahlen müssen in einem gültigen Format wie '1' oder '3.14' vorliegen, nicht '.5', '1.' oder '1.2.3'.", + "formula-error-unclosed-parenthesis": "Nicht geschlossene '(' gefunden. Jede öffnende Klammer '(' muss eine passende schließende Klammer ')' haben.", + "formula-error-unexpected-closing-parenthesis": "Unerwartete schließende Klammer ')' gefunden, ohne passende öffnende Klammer '('.", + "formula-error-empty-placeholder": "Leerer Platzhalter '{{}}' ist nicht zulässig. Geben Sie einen Variablennamen innerhalb der Klammern an.", "decimal-places": "Dezimalstellen", "number-of-decimal-places": "Anzahl der Dezimalstellen", "decimal-places-helper": "Auf 0 setzen für ganze Zahlen", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "Hinweis: Diese Funktion verbraucht Premium-Credits.", "note-consume-premium-credits-on-document-send": "Hinweis: Diese Funktion verbraucht Premium-Credits. Sie werden jedes Mal verbraucht, wenn ein Dokument versendet wird – unabhängig davon, ob es unterschrieben wird oder nicht.", "webhook-authentication-help": "{{appName}} sichert jeden Webhook, indem eine HMAC-SHA256-Signatur mit Ihrem Webhook-Sicherheitsschlüssel und dem unveränderten Request-Payload generiert wird. Diese Signatur wird im Header x-webhook-signature gesendet. Ihr Server muss dieselbe Signatur mit dem empfangenen Payload und Ihrem geheimen Schlüssel generieren. Stimmen beide Signaturen überein, ist die Webhook-Anfrage authentisch und wurde nicht verändert.", - "invalid-widget-found-in-row": "Ungültiger Wert in Zeile {{row}} für Widget {{widget}} erkannt." + "invalid-widget-found-in-row": "Ungültiger Wert in Zeile {{row}} für Widget {{widget}} erkannt.", + "all-signer-status": "Alle Unterzeichner-Status", + "viewed": "Angesehen", + "signed": "Unterzeichnet", + "switch-to-advanced": "Zum erweiterten Modus wechseln", + "switch-to-basic": "Zum Basis-Modus wechseln", + "use-name-as-sender": "Profilnamen als Absender verwenden", + "use-name-as-sender-help": "Wenn aktiviert, verwendet {{appName}} Ihren Profilnamen als Absender für Signaturanfragen und Abschluss-E-Mails." } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/en/translation.json b/apps/OpenSign/public/locales/en/translation.json index 1159163fe..5553f6a33 100644 --- a/apps/OpenSign/public/locales/en/translation.json +++ b/apps/OpenSign/public/locales/en/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "Each opening {{ must have a matching }}.", "formula-error-operators": "Add at least two values when using operators or parentheses.", "formula-error-leading-operator": "Formulas cannot start with operators.", + "formula-error-trailing-operator": "Formulas cannot end with an operator.", + "formula-error-adjacent-placeholders": "Two placeholders cannot be written together without an operator between them.", + "formula-error-continuous-operators": "Two operators cannot be used together.", + "formula-error-empty-parentheses": "Parentheses cannot be empty.", + "formula-error-invalid-parentheses-content": "Parentheses cannot start or end with an operator.", + "formula-error-before-open-parenthesis": "Missing operator before '('. Add an operator before the opening parenthesis.", + "formula-error-after-close-parenthesis": "Missing operator after ')'. Add an operator like '+' or '*' after the closing parenthesis.", + "formula-error-between-parentheses": "Missing operator between ')' and '('. Add an operator like '*' between the two groups.", + "formula-error-division-by-zero": "Division by zero is not allowed. Replace '0' with a valid non-zero number or variable.", + "formula-error-invalid-number-format": "Invalid number format found. Numbers must be in a valid format like '1', '3.14', not '.5', '1.', or '1.2.3'.", + "formula-error-unclosed-parenthesis": "Unclosed '(' found. Every opening '(' must have a matching closing ')'.", + "formula-error-unexpected-closing-parenthesis": "Unexpected closing parenthesis ')' found without a matching opening '('.", + "formula-error-empty-placeholder": "Empty placeholder '{{}}' is not allowed. Provide a variable name inside the braces.", "decimal-places": "Decimal Places", "number-of-decimal-places": "Number of decimal places", "decimal-places-helper": "Set to 0 for whole numbers", @@ -525,7 +538,7 @@ "email-body": "email body", "email-placeholder": "add body of email", "reset-to-default": "Reset to default", - "customize-email": "Customize email", + "customize-email": "Customize email", "upgrade-to-customize-email": "Upgrade to customize Email", "sign-url": "Sign url", "mails-sent": "Mails Sent", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "Note: This feature consumes premium credits.", "note-consume-premium-credits-on-document-send": "Note: This feature consumes premium credits. It is consumed any time a document is sent out, regardless of whether it is signed or not.", "webhook-authentication-help": "{{appName}} secures every webhook by generating an HMAC-SHA256 signature using your webhook security key and the raw request payload. This signature is sent in the x-webhook-signature header. Your server must generate the same signature using the received payload and your secret key. If both signatures match, the webhook request is authentic and has not been modified.", - "invalid-widget-found-in-row": "Invalid value detected in row {{row}} for widget {{widget}}." + "invalid-widget-found-in-row": "Invalid value detected in row {{row}} for widget {{widget}}.", + "all-signer-status": "All signer status", + "viewed": "Viewed", + "signed": "Signed", + "switch-to-advanced": "Switch to advanced", + "switch-to-basic": "Switch to basic", + "use-name-as-sender": "Use profile name as sender", + "use-name-as-sender-help": "When enabled, {{appName}} uses your profile name as sender for signature request and completion mail." } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/es/translation.json b/apps/OpenSign/public/locales/es/translation.json index e6c5ba7e4..2d7fd544d 100644 --- a/apps/OpenSign/public/locales/es/translation.json +++ b/apps/OpenSign/public/locales/es/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "Cada {{ de apertura debe tener una }} correspondiente.", "formula-error-operators": "Cuando uses operadores o paréntesis, agrega al menos dos valores.", "formula-error-leading-operator": "Las fórmulas no pueden comenzar con operadores.", + "formula-error-trailing-operator": "Las fórmulas no pueden terminar con un operador.", + "formula-error-adjacent-placeholders": "No se pueden escribir dos marcadores de posición seguidos sin un operador entre ellos.", + "formula-error-continuous-operators": "No se pueden usar dos operadores seguidos.", + "formula-error-empty-parentheses": "Los paréntesis no pueden estar vacíos.", + "formula-error-invalid-parentheses-content": "Los paréntesis no pueden empezar ni terminar con un operador.", + "formula-error-before-open-parenthesis": "Falta un operador antes de '('. Añada un operador antes del paréntesis de apertura.", + "formula-error-after-close-parenthesis": "Falta un operador después de ')'. Añada un operador como '+' o '*' después del paréntesis de cierre.", + "formula-error-between-parentheses": "Falta un operador entre ')' y '('. Añada un operador como '*' entre los dos grupos.", + "formula-error-division-by-zero": "No se permite la división entre cero. Reemplace '0' por un número o variable válido distinto de cero.", + "formula-error-invalid-number-format": "Se encontró un formato de número no válido. Los números deben estar en un formato válido como '1' o '3.14', no '.5', '1.' ni '1.2.3'.", + "formula-error-unclosed-parenthesis": "Se encontró un '(' sin cerrar. Cada paréntesis de apertura '(' debe tener un paréntesis de cierre ')' correspondiente.", + "formula-error-unexpected-closing-parenthesis": "Se encontró un paréntesis de cierre ')' inesperado sin un paréntesis de apertura '(' correspondiente.", + "formula-error-empty-placeholder": "No se permite un marcador de posición vacío '{{}}'. Proporcione un nombre de variable dentro de las llaves.", "decimal-places": "Decimales", "number-of-decimal-places": "Número de decimales", "decimal-places-helper": "Establecer en 0 para números enteros", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "Nota: Esta función consume créditos premium.", "note-consume-premium-credits-on-document-send": "Nota: Esta función consume créditos premium. Se consumen cada vez que se envía un documento, independientemente de si se firma o no.", "webhook-authentication-help": "{{appName}} protege cada webhook generando una firma HMAC-SHA256 utilizando su clave de seguridad del webhook y el payload original de la solicitud. Esta firma se envía en el encabezado x-webhook-signature. Su servidor debe generar la misma firma utilizando el payload recibido y su clave secreta. Si ambas firmas coinciden, la solicitud del webhook es auténtica y no ha sido modificada.", - "invalid-widget-found-in-row": "Se detectó un valor no válido en la fila {{row}} para el widget {{widget}}." + "invalid-widget-found-in-row": "Se detectó un valor no válido en la fila {{row}} para el widget {{widget}}.", + "all-signer-status": "Estado de todos los firmantes", + "viewed": "Visto", + "signed": "Firmado", + "switch-to-advanced": "Cambiar a avanzado", + "switch-to-basic": "Cambiar a básico", + "use-name-as-sender": "Usar el nombre del perfil como remitente", + "use-name-as-sender-help": "Cuando está activado, {{appName}} usa el nombre de tu perfil como remitente para las solicitudes de firma y el correo de finalización." } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/fr/translation.json b/apps/OpenSign/public/locales/fr/translation.json index 7345727a3..5a228cc77 100644 --- a/apps/OpenSign/public/locales/fr/translation.json +++ b/apps/OpenSign/public/locales/fr/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "Chaque {{ ouvrante doit avoir une }} correspondante.", "formula-error-operators": "Lorsque vous utilisez des opérateurs ou des parenthèses, ajoutez au moins deux valeurs.", "formula-error-leading-operator": "Les formules ne peuvent pas commencer par des opérateurs.", + "formula-error-trailing-operator": "Les formules ne peuvent pas se terminer par un opérateur.", + "formula-error-adjacent-placeholders": "Deux espaces réservés ne peuvent pas être écrits l’un à côté de l’autre sans opérateur entre eux.", + "formula-error-continuous-operators": "Deux opérateurs ne peuvent pas être utilisés à la suite.", + "formula-error-empty-parentheses": "Les parenthèses ne peuvent pas être vides.", + "formula-error-invalid-parentheses-content": "Les parenthèses ne peuvent pas commencer ou se terminer par un opérateur.", + "formula-error-before-open-parenthesis": "Opérateur manquant avant '('. Ajoutez un opérateur avant la parenthèse ouvrante.", + "formula-error-after-close-parenthesis": "Opérateur manquant après ')'. Ajoutez un opérateur comme '+' ou '*' après la parenthèse fermante.", + "formula-error-between-parentheses": "Opérateur manquant entre ')' et '('. Ajoutez un opérateur comme '*' entre les deux groupes.", + "formula-error-division-by-zero": "La division par zéro n'est pas autorisée. Remplacez '0' par un nombre ou une variable valide non nul.", + "formula-error-invalid-number-format": "Format de nombre invalide détecté. Les nombres doivent être dans un format valide comme '1' ou '3.14', et non '.5', '1.' ou '1.2.3'.", + "formula-error-unclosed-parenthesis": "Parenthèse '(' non fermée détectée. Chaque parenthèse ouvrante '(' doit avoir une parenthèse fermante ')' correspondante.", + "formula-error-unexpected-closing-parenthesis": "Parenthèse fermante ')' inattendue détectée sans parenthèse ouvrante '(' correspondante.", + "formula-error-empty-placeholder": "Un espace réservé vide '{{}}' n'est pas autorisé. Indiquez un nom de variable à l'intérieur des accolades.", "decimal-places": "Décimales", "number-of-decimal-places": "Nombre de décimales", "decimal-places-helper": "Définir sur 0 pour les nombres entiers", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "Remarque : Cette fonctionnalité consomme des crédits premium.", "note-consume-premium-credits-on-document-send": "Remarque : Cette fonctionnalité consomme des crédits premium. Les crédits sont consommés chaque fois qu'un document est envoyé, qu'il soit signé ou non.", "webhook-authentication-help": "{{appName}} sécurise chaque webhook en générant une signature HMAC-SHA256 à l'aide de votre clé de sécurité webhook et du payload brut de la requête. Cette signature est envoyée dans l'en-tête x-webhook-signature. Votre serveur doit générer la même signature en utilisant le payload reçu et votre clé secrète. Si les deux signatures correspondent, la requête webhook est authentique et n'a pas été modifiée.", - "invalid-widget-found-in-row": "Valeur invalide détectée à la ligne {{row}} pour le widget {{widget}}." + "invalid-widget-found-in-row": "Valeur invalide détectée à la ligne {{row}} pour le widget {{widget}}.", + "all-signer-status": "Statut de tous les signataires", + "viewed": "Consulté", + "signed": "Signé", + "switch-to-advanced": "Passer en mode avancé", + "switch-to-basic": "Passer en mode basique", + "use-name-as-sender": "Utiliser le nom du profil comme expéditeur", + "use-name-as-sender-help": "Lorsque cette option est activée, {{appName}} utilise le nom de votre profil comme expéditeur pour les demandes de signature et l'e-mail de finalisation." } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/hi/translation.json b/apps/OpenSign/public/locales/hi/translation.json index 25890c3c4..987ff982e 100644 --- a/apps/OpenSign/public/locales/hi/translation.json +++ b/apps/OpenSign/public/locales/hi/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "हर खुलने वाली {{ के लिए एक मिलान करने वाली }} होना चाहिए।", "formula-error-operators": "ऑपरेटर या कोष्ठक का उपयोग करते समय कम से कम दो मान जोड़ें।", "formula-error-leading-operator": "सूत्र ऑपरेटर से शुरू नहीं हो सकते।", + "formula-error-trailing-operator": "सूत्र किसी ऑपरेटर पर समाप्त नहीं हो सकते।", + "formula-error-adjacent-placeholders": "दो प्लेसहोल्डर बिना बीच में ऑपरेटर के साथ-साथ नहीं लिखे जा सकते।", + "formula-error-continuous-operators": "दो ऑपरेटर लगातार साथ में उपयोग नहीं किए जा सकते।", + "formula-error-empty-parentheses": "कोष्ठक (parentheses) खाली नहीं हो सकते।", + "formula-error-invalid-parentheses-content": "कोष्ठक किसी ऑपरेटर से शुरू या समाप्त नहीं हो सकते।", + "formula-error-before-open-parenthesis": "'(' से पहले ऑपरेटर गायब है। ओपनिंग कोष्ठक से पहले एक ऑपरेटर जोड़ें।", + "formula-error-after-close-parenthesis": "')' के बाद ऑपरेटर गायब है। क्लोज़िंग कोष्ठक के बाद '+' या '*' जैसा ऑपरेटर जोड़ें।", + "formula-error-between-parentheses": "')' और '(' के बीच ऑपरेटर गायब है। दोनों समूहों के बीच '*' जैसा ऑपरेटर जोड़ें।", + "formula-error-division-by-zero": "शून्य से भाग देना अनुमति नहीं है। '0' को किसी मान्य गैर-शून्य संख्या या वेरिएबल से बदलें।", + "formula-error-invalid-number-format": "अमान्य संख्या फ़ॉर्मेट मिला। संख्याएँ '1', '3.14' जैसे मान्य फ़ॉर्मेट में होनी चाहिए, '.5', '1.' या '1.2.3' नहीं।", + "formula-error-unclosed-parenthesis": "बिना बंद किया हुआ '(' मिला। हर ओपनिंग '(' के लिए एक मैचिंग क्लोज़िंग ')' होना चाहिए।", + "formula-error-unexpected-closing-parenthesis": "बिना मैचिंग ओपनिंग '(' के अप्रत्याशित क्लोज़िंग ')' मिला।", + "formula-error-empty-placeholder": "खाली प्लेसहोल्डर '{{}}' अनुमति नहीं है। ब्रेसेज़ के अंदर वेरिएबल का नाम दें।", "decimal-places": "दशमलव स्थान", "number-of-decimal-places": "दशमलव स्थानों की संख्या", "decimal-places-helper": "पूर्णांक के लिए 0 पर सेट करें", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "नोट: यह सुविधा प्रीमियम क्रेडिट का उपयोग करती है।", "note-consume-premium-credits-on-document-send": "नोट: यह सुविधा प्रीमियम क्रेडिट का उपयोग करती है। दस्तावेज़ भेजे जाने पर हर बार क्रेडिट उपयोग किए जाते हैं, चाहे दस्तावेज़ पर हस्ताक्षर किए जाएँ या नहीं।", "webhook-authentication-help": "{{appName}} प्रत्येक वेबहुक को सुरक्षित करता है, आपके वेबहुक सुरक्षा कुंजी और मूल अनुरोध पेलोड का उपयोग करके HMAC-SHA256 हस्ताक्षर उत्पन्न करके। यह हस्ताक्षर x-webhook-signature हेडर में भेजा जाता है। आपके सर्वर को प्राप्त पेलोड और आपकी सीक्रेट कुंजी का उपयोग करके वही हस्ताक्षर उत्पन्न करना होगा। यदि दोनों हस्ताक्षर मेल खाते हैं, तो वेबहुक अनुरोध प्रमाणिक है और उसमें कोई परिवर्तन नहीं किया गया है।", - "invalid-widget-found-in-row": "पंक्ति {{row}} में विजेट {{widget}} के लिए अमान्य मान पाया गया।" + "invalid-widget-found-in-row": "पंक्ति {{row}} में विजेट {{widget}} के लिए अमान्य मान पाया गया।", + "all-signer-status": "सभी हस्ताक्षरकर्ताओं की स्थिति", + "viewed": "देखा गया", + "signed": "हस्ताक्षरित", + "switch-to-advanced": "एडवांस्ड पर स्विच करें", + "switch-to-basic": "बेसिक पर स्विच करें", + "use-name-as-sender": "प्रेषक के रूप में प्रोफ़ाइल नाम का उपयोग करें", + "use-name-as-sender-help": "सक्षम होने पर, {{appName}} हस्ताक्षर अनुरोध और पूर्णता ईमेल के लिए आपके प्रोफ़ाइल नाम को प्रेषक के रूप में उपयोग करता है।" } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/it/translation.json b/apps/OpenSign/public/locales/it/translation.json index 349420abf..d8b3e26af 100644 --- a/apps/OpenSign/public/locales/it/translation.json +++ b/apps/OpenSign/public/locales/it/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "Ogni {{ di apertura deve avere una }} corrispondente.", "formula-error-operators": "Quando usi operatori o parentesi, aggiungi almeno due valori.", "formula-error-leading-operator": "Le formule non possono iniziare con operatori.", + "formula-error-trailing-operator": "Le formule non possono terminare con un operatore.", + "formula-error-adjacent-placeholders": "Due segnaposto non possono essere scritti insieme senza un operatore tra di loro.", + "formula-error-continuous-operators": "Non è possibile usare due operatori consecutivi.", + "formula-error-empty-parentheses": "Le parentesi non possono essere vuote.", + "formula-error-invalid-parentheses-content": "Le parentesi non possono iniziare o terminare con un operatore.", + "formula-error-before-open-parenthesis": "Operatore mancante prima di '('. Aggiungi un operatore prima della parentesi di apertura.", + "formula-error-after-close-parenthesis": "Operatore mancante dopo ')'. Aggiungi un operatore come '+' o '*' dopo la parentesi di chiusura.", + "formula-error-between-parentheses": "Operatore mancante tra ')' e '('. Aggiungi un operatore come '*' tra i due gruppi.", + "formula-error-division-by-zero": "La divisione per zero non è consentita. Sostituisci '0' con un numero o una variabile valida diversa da zero.", + "formula-error-invalid-number-format": "Trovato un formato numerico non valido. I numeri devono essere in un formato valido come '1' o '3.14', non '.5', '1.' o '1.2.3'.", + "formula-error-unclosed-parenthesis": "Trovata una '(' non chiusa. Ogni parentesi di apertura '(' deve avere una parentesi di chiusura ')' corrispondente.", + "formula-error-unexpected-closing-parenthesis": "Trovata una parentesi di chiusura ')' inattesa senza una parentesi di apertura '(' corrispondente.", + "formula-error-empty-placeholder": "Il segnaposto vuoto '{{}}' non è consentito. Fornisci un nome variabile all'interno delle parentesi graffe.", "decimal-places": "Cifre decimali", "number-of-decimal-places": "Numero di cifre decimali", "decimal-places-helper": "Imposta su 0 per numeri interi", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "Nota: Questa funzione consuma crediti premium.", "note-consume-premium-credits-on-document-send": "Nota: Questa funzione consuma crediti premium. I crediti vengono consumati ogni volta che un documento viene inviato, indipendentemente dal fatto che venga firmato o meno.", "webhook-authentication-help": "{{appName}} protegge ogni webhook generando una firma HMAC-SHA256 utilizzando la tua chiave di sicurezza webhook e il payload originale della richiesta. Questa firma viene inviata nell'intestazione x-webhook-signature. Il tuo server deve generare la stessa firma utilizzando il payload ricevuto e la tua chiave segreta. Se entrambe le firme coincidono, la richiesta webhook è autentica e non è stata modificata.", - "invalid-widget-found-in-row": "Valore non valido rilevato nella riga {{row}} per il widget {{widget}}." + "invalid-widget-found-in-row": "Valore non valido rilevato nella riga {{row}} per il widget {{widget}}.", + "all-signer-status": "Stato di tutti i firmatari", + "viewed": "Visualizzato", + "signed": "Firmato", + "switch-to-advanced": "Passa alla modalità avanzata", + "switch-to-basic": "Passa alla modalità base", + "use-name-as-sender": "Usa il nome del profilo come mittente", + "use-name-as-sender-help": "Quando abilitato, {{appName}} usa il nome del tuo profilo come mittente per le richieste di firma e l'email di completamento." } \ No newline at end of file diff --git a/apps/OpenSign/public/locales/kr/translation.json b/apps/OpenSign/public/locales/kr/translation.json index 5072a0f5d..40306fe3b 100644 --- a/apps/OpenSign/public/locales/kr/translation.json +++ b/apps/OpenSign/public/locales/kr/translation.json @@ -462,6 +462,19 @@ "formula-error-braces": "모든 열리는 중괄호 '{{' 는 반드시 닫히는 중괄호 '}}' 가 있어야 합니다.", "formula-error-operators": "연산자나 괄호를 사용할 때는 최소 두 개의 값을 추가하세요.", "formula-error-leading-operator": "수식은 연산자로 시작할 수 없습니다.", + "formula-error-trailing-operator": "수식은 연산자로 끝날 수 없습니다.", + "formula-error-adjacent-placeholders": "두 플레이스홀더는 사이에 연산자 없이 붙여 쓸 수 없습니다.", + "formula-error-continuous-operators": "연산자를 두 개 연속으로 사용할 수 없습니다.", + "formula-error-empty-parentheses": "괄호는 비워둘 수 없습니다.", + "formula-error-invalid-parentheses-content": "괄호는 연산자로 시작하거나 끝날 수 없습니다.", + "formula-error-before-open-parenthesis": "'(' 앞에 연산자가 없습니다. 여는 괄호 앞에 연산자를 추가하세요.", + "formula-error-after-close-parenthesis": "')' 뒤에 연산자가 없습니다. 닫는 괄호 뒤에 '+' 또는 '*' 같은 연산자를 추가하세요.", + "formula-error-between-parentheses": "')'와 '(' 사이에 연산자가 없습니다. 두 그룹 사이에 '*' 같은 연산자를 추가하세요.", + "formula-error-division-by-zero": "0으로 나눌 수 없습니다. '0'을 유효한 0이 아닌 숫자 또는 변수로 바꾸세요.", + "formula-error-invalid-number-format": "잘못된 숫자 형식이 발견되었습니다. 숫자는 '1', '3.14'처럼 올바른 형식이어야 하며, '.5', '1.', '1.2.3'은 허용되지 않습니다.", + "formula-error-unclosed-parenthesis": "닫히지 않은 '('가 발견되었습니다. 모든 여는 괄호 '('는 대응하는 닫는 괄호 ')'가 있어야 합니다.", + "formula-error-unexpected-closing-parenthesis": "대응하는 여는 괄호 '(' 없이 예상치 못한 닫는 괄호 ')'가 발견되었습니다.", + "formula-error-empty-placeholder": "빈 플레이스홀더 '{{}}'는 허용되지 않습니다. 중괄호 안에 변수 이름을 입력하세요.", "decimal-places": "소수점 자리수", "number-of-decimal-places": "소수점 자리수", "decimal-places-helper": "정수를 원하면 0으로 설정하세요", @@ -1396,5 +1409,12 @@ "note-consume-premium-credits": "참고: 이 기능은 프리미엄 크레딧을 사용합니다.", "note-consume-premium-credits-on-document-send": "참고: 이 기능은 프리미엄 크레딧을 사용합니다. 문서가 서명되었는지 여부와 관계없이 문서를 보낼 때마다 크레딧이 차감됩니다.", "webhook-authentication-help": "{{appName}}은(는) 웹훅 보안 키와 원본 요청 페이로드를 사용하여 HMAC-SHA256 서명을 생성함으로써 모든 웹훅을 보호합니다. 이 서명은 x-webhook-signature 헤더에 전송됩니다. 귀하의 서버는 수신된 페이로드와 비밀 키를 사용하여 동일한 서명을 생성해야 합니다. 두 서명이 일치하면 해당 웹훅 요청은 인증되었으며 수정되지 않았음을 의미합니다.", - "invalid-widget-found-in-row": "{{row}}행에서 위젯 {{widget}}에 대한 유효하지 않은 값이 감지되었습니다." + "invalid-widget-found-in-row": "{{row}}행에서 위젯 {{widget}}에 대한 유효하지 않은 값이 감지되었습니다.", + "all-signer-status": "전체 서명자 상태", + "viewed": "열람함", + "signed": "서명 완료", + "switch-to-advanced": "고급 모드로 전환", + "switch-to-basic": "기본 모드로 전환", + "use-name-as-sender": "프로필 이름을 발신자로 사용", + "use-name-as-sender-help": "활성화하면 {{appName}}에서 서명 요청 및 완료 이메일의 발신자로 프로필 이름을 사용합니다." } \ No newline at end of file diff --git a/apps/OpenSign/src/components/bulksend/components/RenderWidgets.jsx b/apps/OpenSign/src/components/bulksend/components/RenderWidgets.jsx index 3960d7b04..b3e9e48f1 100644 --- a/apps/OpenSign/src/components/bulksend/components/RenderWidgets.jsx +++ b/apps/OpenSign/src/components/bulksend/components/RenderWidgets.jsx @@ -17,7 +17,6 @@ import { } from "../../../constant/Utils"; import PenColorComponent from "../../pdf/tab/PenColorComponent"; import { getDatePickerDate, toHtmlPattern } from "../../../utils"; -import CellsInput from "../../shared/fields/CellsInput"; import { emailRegex } from "../../../constant/const"; const inputOpt = new Set(["text", "email", "number"]); @@ -527,29 +526,23 @@ const DrawWidget = ({ widget, isRequired, onChange, showLabel }) => { ); }; -const CellsWidget = ({ - widget, - isRequired, - onChange, - showLabel, -}) => { +const CellsWidget = ({ widget, isRequired, onChange, showLabel }) => { const { t } = useTranslation(); const count = widget?.options?.cellCount || 1; const [word, setWord] = useState(""); const inputType = widget?.options?.validation?.type || ""; const serverRegex = widget?.options?.validation?.pattern; + const hint = widget?.options?.hint; const regExpression = inputValidation(serverRegex, inputType); const pattern = useMemo(() => toHtmlPattern(regExpression), [regExpression]); - useEffect(() => { const response = widget?.options?.response ?? widget?.options?.defaultValue ?? ""; - const isNumber = inputType === "number" && response; - setWord(isNumber ? Number(response) : response); + setWord(String(response || "")); }, []); - const handleChange = (words) => { - const value = words; + const handleChange = (e) => { + const value = e.target.value; setWord(value); onChange(value); }; @@ -562,23 +555,13 @@ const CellsWidget = ({ )}
- {}} + type="text" + placeholder={ + hint || t("enter-value", { value: widget?.options?.name }) + } + value={word ?? ""} + onChange={(e) => handleChange(e)} pattern={pattern || undefined} // if no pattern, browser won't do pattern validation onInvalid={(e) => { const el = e.currentTarget; @@ -592,7 +575,8 @@ const CellsWidget = ({ onInput={(e) => { e.currentTarget.setCustomValidity(""); }} - className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 opacity-0 w-[1px] h-[1px] pointer-events-none" + className="op-input op-input-bordered op-input-sm focus:outline-none text-base-content hover:border-base-content w-full text-xs" + maxLength={count} />
diff --git a/apps/OpenSign/src/components/emaileditor/EmailEditor.jsx b/apps/OpenSign/src/components/emaileditor/EmailEditor.jsx new file mode 100644 index 000000000..faa83f18d --- /dev/null +++ b/apps/OpenSign/src/components/emaileditor/EmailEditor.jsx @@ -0,0 +1,41 @@ +import EmailBodyEditor from "../EmailBodyEditor"; +import { QuillEmailEditor } from "./quillemailbuilder"; + +const EmailEditor = ({ + type = "basic", + values = {}, + onChange, + placeholder = "add body of email", + bodyName, + isReset, + isTemplateLoaded, + smallscreen +}) => { + const currentValue = values[type] ?? ""; + const handleChange = (newValue) => { + onChange?.(newValue, type); + }; + + if (type === "advanced") { + return ( + + ); + } + + return ( + + ); +}; + +export default EmailEditor; diff --git a/apps/OpenSign/src/components/emaileditor/index.js b/apps/OpenSign/src/components/emaileditor/index.js new file mode 100644 index 000000000..327c8868b --- /dev/null +++ b/apps/OpenSign/src/components/emaileditor/index.js @@ -0,0 +1,2 @@ +export { default } from "./EmailEditor"; +export { default as EmailEditor } from "./EmailEditor"; diff --git a/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillEmailEditor.jsx b/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillEmailEditor.jsx new file mode 100644 index 000000000..2e1d829da --- /dev/null +++ b/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillEmailEditor.jsx @@ -0,0 +1,43 @@ +import React, { useId, useMemo } from "react"; +import ReactQuill from "react-quill-new"; +// import "react-quill-new/dist/quill.snow.css"; +import '../../../styles/quill.css' + +import QuillToolbar from "./QuillToolbar"; +import { createModules, formats } from "./quillConfig"; + +const QuillEmailEditor = ({ + value = "", + onChange, + placeholder = "Write your email...", + readOnly = false, + theme = "snow", + className = "", + editorClassName = "", + toolbarId: toolbarIdProp +}) => { + const reactId = useId(); + const safeId = reactId.replace(/:/g, ""); + const toolbarId = toolbarIdProp || `quill-toolbar-${safeId}`; + + const modules = useMemo(() => createModules({ toolbarId }), [toolbarId]); + + return ( +
+ {!readOnly && } + + +
+ ); +}; + +export default React.memo(QuillEmailEditor); diff --git a/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillToolbar.jsx b/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillToolbar.jsx new file mode 100644 index 000000000..83ccbbfe2 --- /dev/null +++ b/apps/OpenSign/src/components/emaileditor/quillemailbuilder/QuillToolbar.jsx @@ -0,0 +1,98 @@ +import React from "react"; + +const CustomUndo = () => ( + + + + +); + +const CustomRedo = () => ( + + + + +); + +const QuillToolbar = ({ toolbarId }) => { + return ( +
+ + + + + + + + + +
-
+
+ + + + + + + +
+

+ {t("use-name-as-sender-help", { + appName: appName + })} +

+
+
+
+ + setUseNameAsSender((prevValue) => !prevValue) + } + /> +
+
+ {/* Enable Tour Section */}
{/* Search input for report smalle in width */} @@ -1637,27 +1685,28 @@ const DocumentsReport = (props) => {
- {/* - - handlebodyChange(value, item) - } - /> */} - - handlebodyChange(value, item) + + handlebodyChange( + value, + item, + type + ) } smallscreen /> @@ -1807,6 +1856,8 @@ const DocumentsReport = (props) => { setDocumentDetails={setDocumentDetails} handleClose={handleCloseMail} copyUrlRef={copyUrlRef} + emailEditorType={emailEditorType} + setEmailEditorType={setEmailEditorType} /> { const isSignature = @@ -76,7 +70,11 @@ const TemplatesReport = (props) => { const [isTour, setIsTour] = useState(false); const [tourStatusArr, setTourStatusArr] = useState([]); const [isResendMail, setIsResendMail] = useState({}); - const [mail, setMail] = useState({ subject: "", body: "" }); + const [mail, setMail] = useState({ + subject: "", + body: { basic: "", advanced: "" } + }); + const [emailEditorType, setEmailEditorType] = useState("basic"); const [userDetails, setUserDetails] = useState({}); const [isNextStep, setIsNextStep] = useState({}); const [isBulkSend, setIsBulkSend] = useState({}); @@ -103,7 +101,10 @@ const TemplatesReport = (props) => { const startIndex = (currentPage - 1) * props.docPerPage; const { isMoreDocs, setIsNextRecord } = props; const [isMailModal, setIsMailModal] = useState(false); - const [customizeMail, setCustomizeMail] = useState({ body: "", subject: "" }); + const [customizeMail, setCustomizeMail] = useState({ + body: { basic: "", advanced: "" }, + subject: "" + }); const [defaultMail, setDefaultMail] = useState({ body: "", subject: "" }); const [currUserId, setCurrUserId] = useState(""); const [documentDetails, setDocumentDetails] = useState(); @@ -554,6 +555,13 @@ const TemplatesReport = (props) => { } }; + // `handleSwitch` is used to change email editor from basic => advanced or vice versa + const handleSwitch = (e) => { + e.preventDefault(); + e.stopPropagation(); + const editor = emailEditorType === "basic" ? "advanced" : "basic"; + setEmailEditorType(editor); + }; // `handleSubjectChange` is used to add or change subject of resend mail const handleSubjectChange = (subject, doc) => { const encodeBase64 = userDetails?.objectId @@ -571,9 +579,9 @@ const TemplatesReport = (props) => { document_title: doc.Name, note: doc?.Note || "", sender_name: + doc?.SenderName || doc.ExtUserPtr.Name, - sender_mail: - doc.ExtUserPtr.Email, + sender_mail: doc?.SenderMail || doc.ExtUserPtr.Email, sender_phone: doc.ExtUserPtr?.Phone || "", receiver_name: userDetails?.Name || "", receiver_email: userDetails?.Email, @@ -586,7 +594,7 @@ const TemplatesReport = (props) => { setMail((prev) => ({ ...prev, subject: res.subject })); }; // `handlebodyChange` is used to add or change body of resend mail - const handlebodyChange = (body, doc) => { + const handlebodyChange = (body, doc, type) => { const encodeBase64 = userDetails?.objectId ? btoa(`${doc.objectId}/${userDetails.Email}/${userDetails.objectId}`) : btoa(`${doc.objectId}/${userDetails.Email}`); @@ -602,9 +610,9 @@ const TemplatesReport = (props) => { document_title: doc.Name, note: doc?.Note || "", sender_name: + doc?.SenderName || doc.ExtUserPtr.Name, - sender_mail: - doc.ExtUserPtr.Email, + sender_mail: doc?.SenderMail || doc.ExtUserPtr.Email, sender_phone: doc.ExtUserPtr?.Phone || "", receiver_name: userDetails?.Name || "", receiver_email: userDetails?.Email || "", @@ -616,7 +624,10 @@ const TemplatesReport = (props) => { const res = replaceMailVaribles("", body, variables); if (body) { - setMail((prev) => ({ ...prev, body: res.body })); + setMail((prev) => ({ + ...prev, + body: { ...prev.body, [type]: res.body } + })); } }; // `handleNextBtn` is used to open edit mail template screen in resend mail modal @@ -646,9 +657,9 @@ const TemplatesReport = (props) => { document_title: doc.Name, note: doc?.Note || "", sender_name: + doc?.SenderName || doc.ExtUserPtr.Name, - sender_mail: - doc.ExtUserPtr.Email, + sender_mail: doc?.SenderMail || doc.ExtUserPtr.Email, sender_phone: doc.ExtUserPtr?.Phone || "", receiver_name: user?.signerPtr?.Name || "", receiver_email: user?.email ? user?.email : user?.signerPtr?.Email, @@ -666,7 +677,17 @@ const TemplatesReport = (props) => { doc?.ExtUserPtr?.TenantId?.RequestBody || `

Hi {{receiver_name}},


We hope this email finds you well. {{sender_name}} has requested you to review and sign "{{document_title}}".

Your signature is crucial to proceed with the next steps as it signifies your agreement and authorization.


Sign here



If you have any questions or need further clarification regarding the document or the signing process, please contact the sender.


Thanks

Team ${appName}


`; const res = replaceMailVaribles(subject, body, variables); - setMail((prev) => ({ ...prev, subject: res.subject, body: res.body })); + setEmailEditorType( + doc?.EmailEditorType?.request || + doc?.ExtUserPtr?.EmailEditorType?.request || + doc?.ExtUserPtr?.TenantId?.EmailEditorType?.request || + "basic" + ); + setMail((prev) => ({ + ...prev, + subject: res.subject, + body: { basic: res.body, advanced: res.body } + })); setIsNextStep({ [user.Id]: true }); }); const handleResendMail = utils.withSessionValidation(async (e, doc, user) => { @@ -686,8 +707,9 @@ const TemplatesReport = (props) => { recipient: userDetails?.Email, subject: mail.subject, from: + doc?.SenderName || doc?.ExtUserPtr?.Email, - html: mail.body + html: emailEditorType === "basic" ? mail.body.basic : mail.body.advanced }; try { const res = await axios.post(url, params, { headers: headers }); @@ -958,9 +980,13 @@ const TemplatesReport = (props) => { subject; const userBody = body; + const finalBody = userBody || defaultMailBody; + const emailEditorType = + tenantDetails?.EmailEditorType?.request; + setEmailEditorType(emailEditorType || "basic"); setCustomizeMail({ subject: userSubject || defaultMailSubject, - body: userBody || defaultMailBody + body: { basic: finalBody, advanced: finalBody } }); setDefaultMail({ subject: userSubject, body: userBody }); } @@ -1493,27 +1519,29 @@ const TemplatesReport = (props) => {
- {/* - - handlebodyChange(value, item) - } - /> */} - - handlebodyChange(value, item) + + handlebodyChange( + value, + item, + type + ) } smallscreen /> @@ -1654,6 +1682,8 @@ const TemplatesReport = (props) => { handleShareList={handleShareList} setDocumentDetails={setDocumentDetails} copyUrlRef={copyUrlRef} + emailEditorType={emailEditorType} + setEmailEditorType={setEmailEditorType} /> { {mailStatus !== "success" && currUserId && templateDetails?.SendinOrder && ( - <> -
{ - setIsSend(false); - setIsMailModal(true); - }} - > - {" "} - {t("send-to-email")} -
- +
{ + setIsSend(false); + setIsMailModal(true); + }} + > + {" "} + {t("send-to-email")} +
)}
{!mailStatus && ( diff --git a/apps/OpenSign/src/utils/widgetUtils.js b/apps/OpenSign/src/utils/widgetUtils.js index 0597b64b0..079dfa3d0 100644 --- a/apps/OpenSign/src/utils/widgetUtils.js +++ b/apps/OpenSign/src/utils/widgetUtils.js @@ -8,7 +8,8 @@ import { radioButtonWidget, textInputWidget, textWidget, - cellsWidget + cellsWidget, + addWidgetOptions } from "../constant/Utils"; import { base64StringtoFile, uploadFile } from "./fileUtils"; import { sanitizeFileName } from "./sanitizeFileName"; @@ -106,6 +107,43 @@ export const hasDuplicateWidgetNames = (placeholders = []) => { return false; }; +// `createCustomPositionWidget` builds a dropObj and placeHolder for a widget placed +// via click-and-drag drawing (i.e. when customOptions.customPosition is provided). +// Returns { dropObj, placeHolder } where placeHolder.pos === [dropObj]. +export const createCustomPositionWidget = ({ + customPosition, + key, + containerScale, + posZIndex, + dragTypeValue, + pageNumber, + owner, + signerPlaceHolder, + roleName +}) => { + const { xPosition, yPosition, width, height } = customPosition; + const dropObj = { + xPosition, + yPosition, + isStamp: false, + key, + scale: containerScale, + zIndex: posZIndex, + type: dragTypeValue, + options: addWidgetOptions( + dragTypeValue, + owner, + signerPlaceHolder, + roleName + ), + Width: width, + Height: height + }; + const dropData = [dropObj]; + const placeHolder = { pageNumber, pos: dropData }; + return { dropObj, placeHolder }; +}; + /** * * @param {Array} pages diff --git a/apps/OpenSignServer/cloud/parsefunction/ForwardDoc.js b/apps/OpenSignServer/cloud/parsefunction/ForwardDoc.js index b60527ea0..ed8f4fe21 100644 --- a/apps/OpenSignServer/cloud/parsefunction/ForwardDoc.js +++ b/apps/OpenSignServer/cloud/parsefunction/ForwardDoc.js @@ -1,5 +1,5 @@ -import axios from 'axios'; -import { appName, cloudServerUrl, serverAppId } from '../../Utils.js'; +import { appName } from '../../Utils.js'; +import sendMailWithAttachment from './sendMailWithAttachment.js'; export default async function forwardDoc(request) { try { @@ -28,9 +28,9 @@ export default async function forwardDoc(request) { const docName = _docRes.Name; const extUserId = _docRes?.ExtUserPtr?.objectId; const TenantAppName = appName; - const from = _docRes?.ExtUserPtr?.Email; - const replyTo = _docRes?.ExtUserPtr?.Email; - const senderName = _docRes?.ExtUserPtr?.Name; + const from = _docRes?.SenderName || _docRes?.ExtUserPtr?.Email; + const replyTo = _docRes?.SenderMail || _docRes?.ExtUserPtr?.Email; + const senderName = _docRes?.SenderName || _docRes?.ExtUserPtr?.Name; try { let mailRes; @@ -53,15 +53,10 @@ export default async function forwardDoc(request) { `

A copy of the document ${docName} is attached to this email. Kindly download the document from the attachment.

` + `

This is an automated email from ${TenantAppName}. For any queries regarding this email, please contact the sender ${replyTo} directly.

`, }; - mailRes = await axios.post(`${cloudServerUrl}/functions/sendmailv3`, params, { - headers: { - 'Content-Type': 'application/json', - 'X-Parse-Application-Id': serverAppId, - 'X-Parse-Master-Key': process.env.MASTER_KEY, - }, - }); + mailRes = await sendMailWithAttachment(params); + // console.log('mailRes', mailRes); } - return mailRes.data?.result; + return mailRes; } catch (error) { const msg = error?.response?.data?.error || diff --git a/apps/OpenSignServer/cloud/parsefunction/createBatchDocs.js b/apps/OpenSignServer/cloud/parsefunction/createBatchDocs.js index b830bea2d..779a4ec9c 100644 --- a/apps/OpenSignServer/cloud/parsefunction/createBatchDocs.js +++ b/apps/OpenSignServer/cloud/parsefunction/createBatchDocs.js @@ -110,8 +110,12 @@ async function sendMail(document, publicUrl) { year: 'numeric', }); let signerMail = document.Placeholders?.filter(x => x?.Role !== 'prefill'); - const senderName = document.ExtUserPtr.Name; - const senderEmail = document.ExtUserPtr.Email; + const senderName = document?.SenderName || document.ExtUserPtr.Name; + const senderEmail = document?.SenderMail || document.ExtUserPtr.Email; + const from = + document?.SenderName || document?.ExtUserPtr?.UseNameAsSender === true + ? document.ExtUserPtr.Name + : senderEmail; if (document.SendinOrder) { signerMail = signerMail.slice(); @@ -171,7 +175,7 @@ async function sendMail(document, publicUrl) { extUserId: document.ExtUserPtr.objectId, recipient: existSigner?.Email || signerMail[i].email, subject: replaceVar?.subject ? replaceVar?.subject : mailTemplate(mailparam).subject, - from: document.ExtUserPtr.Email, + from: from, replyto: senderEmail || '', html: replaceVar?.body ? replaceVar?.body : mailTemplate(mailparam).body, }; @@ -215,6 +219,7 @@ async function startBulkSendInBackground(userId, Documents, Ip, parseConfig, typ } let mailBody = x?.ExtUserPtr?.TenantId?.RequestBody || ''; let mailSubject = x?.ExtUserPtr?.TenantId?.RequestSubject || ''; + let EmailEditorType = x?.ExtUserPtr?.TenantId?.EmailEditorType || ''; return { method: 'POST', path: '/app/classes/contracts_Document', @@ -261,12 +266,16 @@ async function startBulkSendInBackground(userId, Documents, Ip, parseConfig, typ IsEnableOTP: x?.IsEnableOTP || false, IsTourEnabled: x?.IsTourEnabled || false, AllowModifications: x?.AllowModifications || false, + ...(x?.SenderName ? { SenderName: x?.SenderName } : {}), + ...(x?.SenderMail ? { SenderMail: x?.SenderMail } : {}), + ...(type === 'bulksend' ? { BulkSendToken: generateId(10) } : {}), ...(x?.SignatureType ? { SignatureType: x?.SignatureType } : {}), ...(x?.NotifyOnSignatures ? { NotifyOnSignatures: x?.NotifyOnSignatures } : {}), ...(x?.Bcc?.length > 0 ? { Bcc: x?.Bcc } : {}), ...(x?.RedirectUrl ? { RedirectUrl: x?.RedirectUrl } : {}), ...(mailBody ? { RequestBody: mailBody } : {}), ...(mailSubject ? { RequestSubject: mailSubject } : {}), + ...(EmailEditorType ? { EmailEditorType: EmailEditorType } : {}), ...(x?.objectId ? { TemplateId: { @@ -294,6 +303,7 @@ async function startBulkSendInBackground(userId, Documents, Ip, parseConfig, typ createdAt: response.data[0]?.success?.createdAt, }; deductcount(response.data.length, resExt.id); + console.log('here'); sendMail(updateDocuments, publicUrl); //sessionToken return { total: 1, created: 1, failed: 0 }; } diff --git a/apps/OpenSignServer/cloud/parsefunction/getReport.js b/apps/OpenSignServer/cloud/parsefunction/getReport.js index 1583f3da4..48069fb78 100644 --- a/apps/OpenSignServer/cloud/parsefunction/getReport.js +++ b/apps/OpenSignServer/cloud/parsefunction/getReport.js @@ -16,6 +16,7 @@ export default async function getReport(request) { const limit = request.params.limit; const skip = request.params.skip; const searchTerm = request.params.searchTerm || ''; + const signerStatus = request.params.signerStatus || ''; const serverUrl = cloudServerUrl; //process.env.SERVER_URL; const appId = serverAppId; @@ -67,13 +68,23 @@ export default async function getReport(request) { } } paramsObj = applySearch({ reportId, baseWhere: paramsObj, searchTerm }); + + const clsName = json?.reportClass ? json.reportClass : 'contracts_Document'; + + if (clsName === 'contracts_Document' && signerStatus) { + const normalizedStatus = + signerStatus === 'viewed' ? 'Viewed' : signerStatus === 'signed' ? 'Signed' : ''; + if (normalizedStatus) { + paramsObj = { ...paramsObj, 'AuditTrail.Activity': normalizedStatus }; + } + } + const headers = { 'Content-Type': 'application/json', 'X-Parse-Application-Id': appId, 'X-Parse-Master-Key': masterKey, }; - const clsName = json?.reportClass ? json.reportClass : 'contracts_Document'; const orderBy = '-updatedAt'; const include = 'AuditTrail.UserPtr,Placeholders.signerPtr,ExtUserPtr.TenantId'; diff --git a/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js b/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js index 001502e60..4c8502d6b 100644 --- a/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js +++ b/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js @@ -16,6 +16,7 @@ import { Placeholder } from './Placeholder.js'; import { SignPdf } from '@signpdf/signpdf'; import { P12Signer } from '@signpdf/signer-p12'; import { buildDownloadFilename, parseUploadFile } from '../../../utils/fileUtils.js'; +import sendMailWithAttachment from '../sendMailWithAttachment.js'; const serverUrl = cloudServerUrl; // process.env.SERVER_URL; const APPID = serverAppId; @@ -224,7 +225,7 @@ async function sendCompletedMail(obj) { const variables = { document_title: pdfName, note: doc?.Note, - sender_name: sender.Name, + sender_name: doc?.SenderName || sender.Name, sender_mail: doc?.SenderMail || sender.Email, sender_phone: sender?.Phone || '', receiver_name: sender.Name, @@ -249,8 +250,8 @@ async function sendCompletedMail(obj) { const params = { extUserId: sender.objectId, url: url, - from: TenantAppName, - replyto: doc?.ExtUserPtr?.Email || '', + from: doc?.SenderName || TenantAppName, + replyto: doc?.SenderMail || doc?.ExtUserPtr?.Email || '', recipient: recipient, subject: subject, pdfName: pdfName, @@ -261,9 +262,9 @@ async function sendCompletedMail(obj) { filename: docName, }; try { - const res = await axios.post(serverUrl + '/functions/sendmailv3', params, { headers }); - // console.log('res', res.data.result); - if (res.data?.result?.status !== 'success') { + const res = await sendMailWithAttachment(params); + // console.log("res ", res) + if (res?.status !== 'success') { unlinkFile(`./exports/signed_certificate_${doc.objectId}.pdf`); } } catch (err) { diff --git a/apps/OpenSignServer/cloud/parsefunction/reportsJson.js b/apps/OpenSignServer/cloud/parsefunction/reportsJson.js index 816e001a5..3b9e6553d 100644 --- a/apps/OpenSignServer/cloud/parsefunction/reportsJson.js +++ b/apps/OpenSignServer/cloud/parsefunction/reportsJson.js @@ -18,6 +18,8 @@ export default function reportJson(id, currentUserId) { 'Placeholders', 'TemplateId', 'ExpiryDate', + 'SenderName', + 'SenderMail', ]; const inProgressKeys = [ ...commanKeys, @@ -25,8 +27,10 @@ export default function reportJson(id, currentUserId) { 'SendMail', 'RequestBody', 'RequestSubject', + 'EmailEditorType', 'ExtUserPtr.TenantId.RequestBody', 'ExtUserPtr.TenantId.RequestSubject', + 'ExtUserPtr.TenantId.EmailEditorType', 'DocSentAt', ]; const filterKeys = [ diff --git a/apps/OpenSignServer/cloud/parsefunction/saveAsTemplate.js b/apps/OpenSignServer/cloud/parsefunction/saveAsTemplate.js index b75ee8650..75f17dc7e 100644 --- a/apps/OpenSignServer/cloud/parsefunction/saveAsTemplate.js +++ b/apps/OpenSignServer/cloud/parsefunction/saveAsTemplate.js @@ -29,11 +29,11 @@ export default async function saveAsTemplate(request) { templateCls.set('IsEnableOTP', _docRes?.IsEnableOTP === true ? true : false); templateCls.set('IsTourEnabled', _docRes?.IsTourEnabled === true ? true : false); templateCls.set('AllowModifications', _docRes?.AllowModifications || false); - templateCls.set('EmailSenderName', _docRes?.EmailSenderName); templateCls.set('SenderName', _docRes?.SenderName); templateCls.set('SenderMail', _docRes?.SenderMail); templateCls.set('RequestBody', _docRes?.RequestBody); templateCls.set('RequestSubject', _docRes?.RequestSubject); + if (_docRes?.EmailEditorType) templateCls.set('EmailEditorType', _docRes?.EmailEditorType); templateCls.set('NextReminderDate', _docRes?.NextReminderDate); templateCls.set('RedirectUrl', _docRes?.RedirectUrl); templateCls.set( diff --git a/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js b/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js index 8d7fa4cda..2bb0b8f43 100644 --- a/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js +++ b/apps/OpenSignServer/cloud/parsefunction/sendMailGmailProvider.js @@ -24,6 +24,19 @@ const refreshAccessToken = async refreshToken => { return response.data.access_token; }; +const getGmail = async (access_token, displayName) => { + try { + const res = await axios.get('https://www.googleapis.com/oauth2/v2/userinfo', { + headers: { Authorization: `Bearer ${access_token}` }, + }); + + const gmail = res.data.email; + return `${displayName} <${gmail}>`; + } catch (err) { + console.log('gmail retrive error ', err); + return displayName; + } +}; // Function to create a raw email message const makeEmail = async ( to, @@ -101,7 +114,7 @@ const makeEmail = async ( } } catch (err) { attachments = [file]; - console.log('Err in read certificate sendmailv3', err); + console.log('sendMailGmailProvider read certificate error', err); } } const attachmentParts = attachments.map(attachment => { @@ -166,7 +179,8 @@ export default async function sendMailGmailProvider(_extRes, template) { try { // Construct email message - const from = sender || _extRes.Email || 'me'; + const displayName = sender || _extRes.Email || 'me'; + const from = await getGmail(access_token, displayName); const to = receiver; const randomNumber = Math.floor(Math.random() * 5000); const testPdf = `test_${randomNumber}.pdf`; @@ -203,7 +217,7 @@ export default async function sendMailGmailProvider(_extRes, template) { try { fs.unlinkSync(testPdf); } catch (err) { - console.log('Err in unlink pdf sendmailv3'); + console.log('sendMailGmailProvider unlink pdf error'); } } return { code: 200, message: 'Email sent successfully' }; diff --git a/apps/OpenSignServer/cloud/parsefunction/sendMailWithAttachment.js b/apps/OpenSignServer/cloud/parsefunction/sendMailWithAttachment.js new file mode 100644 index 000000000..0ebbd8058 --- /dev/null +++ b/apps/OpenSignServer/cloud/parsefunction/sendMailWithAttachment.js @@ -0,0 +1,235 @@ +import fs from 'node:fs'; +import https from 'https'; +import formData from 'form-data'; +import Mailgun from 'mailgun.js'; +import { appName, smtpenable, smtpsecure, updateMailCount } from '../../Utils.js'; +import { createTransport } from 'nodemailer'; +import axios from 'axios'; + +function safeUnlink(filePath, label = 'file') { + if (fs.existsSync(filePath)) { + try { + fs.unlinkSync(filePath); + } catch (err) { + console.log(`sendMailWithAttachment unlink ${label} error`); + } + } +} +async function sendMailProvider(params) { + const app = appName; + const extUserId = params?.extUserId || ''; + const reportMsg = `

If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ here.

`; + + const mailgunApiKey = process.env.MAILGUN_API_KEY; + try { + let transporterSMTP; + let mailgunClient; + let mailgunDomain; + if (smtpenable) { + let transporterConfig = { + host: process.env.SMTP_HOST, + port: process.env.SMTP_PORT || 465, + secure: smtpsecure, + }; + + // ✅ Add auth only if BOTH username & password exist + const smtpUser = process.env.SMTP_USERNAME; + const smtpPass = process.env.SMTP_PASS; + + if (smtpUser && smtpPass) { + transporterConfig.auth = { + user: process.env.SMTP_USERNAME ? process.env.SMTP_USERNAME : process.env.SMTP_USER_EMAIL, + pass: smtpPass, + }; + } + transporterSMTP = createTransport(transporterConfig); + } else { + if (mailgunApiKey) { + const mailgun = new Mailgun(formData); + mailgunClient = mailgun.client({ username: 'api', key: mailgunApiKey }); + mailgunDomain = process.env.MAILGUN_DOMAIN; + } + } + if (params.url) { + const randomNumber = Math.floor(Math.random() * 5000); + const testPdf = `test_${randomNumber}.pdf`; + try { + let Pdf = fs.createWriteStream(testPdf); + const writeToLocalDisk = () => { + return new Promise((resolve, reject) => { + const isSecure = + new URL(params.url)?.protocol === 'https:' && + new URL(params.url)?.hostname !== 'localhost'; + if (isSecure) { + https + .get(params.url, async function (response) { + response.pipe(Pdf); + response.on('end', () => resolve('success')); + }) + .on('error', e => { + console.error(`error: ${e.message}`); + resolve('error'); + }); + } else { + const httpsAgent = new https.Agent({ rejectUnauthorized: false }); // Disable SSL validation + const localUrl = params.url; + const newlocalUrl = localUrl.replace( + 'https://localhost:3001/api', + 'http://localhost:8080' + ); + axios + .get(newlocalUrl, { responseType: 'stream', httpsAgent: httpsAgent }) + .then(response => { + response.data.pipe(Pdf); + Pdf.on('finish', () => resolve('success')); + Pdf.on('error', () => resolve('error')); + }) + .catch(e => { + console.log('error in localurl', e.message); + resolve('error'); + }); + } + }); + }; + // `writeToLocalDisk` is used to create pdf file from doc url + const ress = await writeToLocalDisk(); + if (ress) { + function readTolocal() { + return new Promise((resolve, reject) => { + setTimeout(() => { + let PdfBuffer = fs.readFileSync(Pdf.path); + resolve(PdfBuffer); + }, 100); + }); + } + // `PdfBuffer` used to create buffer from pdf file + let PdfBuffer = await readTolocal(); + const pdfName = params.pdfName && `${params.pdfName}.pdf`; + const filename = params.filename; + const file = { + filename: filename || pdfName || 'exported.pdf', + content: smtpenable ? PdfBuffer : undefined, + data: smtpenable ? undefined : PdfBuffer, + }; + + let attachment; + const certificatePath = params.certificatePath || `./exports/certificate.pdf`; + if (fs.existsSync(certificatePath)) { + try { + // `certificateBuffer` used to create buffer from pdf file + const certificateBuffer = fs.readFileSync(certificatePath); + const certificate = { + filename: 'certificate.pdf', + content: smtpenable ? certificateBuffer : undefined, //fs.readFileSync('./exports/exported_file_1223.pdf'), + data: smtpenable ? undefined : certificateBuffer, + }; + attachment = [file, certificate]; + } catch (err) { + attachment = [file]; + console.log('sendMailWithAttachment read certificate error', err); + } + } else { + attachment = [file]; + } + const from = params.from || ''; + const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; + const replyto = params?.replyto || ''; + const messageParams = { + from: from + ' <' + mailsender + '>', + to: params.recipient, + subject: params.subject, + text: params.text || 'mail', + html: params?.html ? params.html + reportMsg : '', + attachments: smtpenable ? attachment : undefined, + attachment: smtpenable ? undefined : attachment, + bcc: params.bcc ? params.bcc : undefined, + replyTo: replyto ? replyto : undefined, + }; + const cleanupPaths = [ + { path: certificatePath, label: 'certificate' }, + { path: testPdf, label: 'pdf' }, + ]; + if (transporterSMTP) { + const res = await transporterSMTP.sendMail(messageParams); + console.log('smtp transporter res: ', res?.response); + if (!res.err) { + if (extUserId) { + await updateMailCount(extUserId); + } + + cleanupPaths.forEach(file => safeUnlink(file.path, file.label)); + return { status: 'success' }; + } + } else { + if (mailgunApiKey) { + const res = await mailgunClient.messages.create(mailgunDomain, messageParams); + console.log('mailgun res: ', res?.status); + if (res.status === 200) { + if (extUserId) { + await updateMailCount(extUserId); + } + cleanupPaths.forEach(file => safeUnlink(file.path, file.label)); + return { status: 'success' }; + } + } else { + cleanupPaths.forEach(file => safeUnlink(file.path, file.label)); + return { status: 'error' }; + } + } + } + } catch (err) { + console.log(`sendMailWithAttachment error: ${err}`); + safeUnlink(testPdf, 'testPdf'); + if (err) return { status: 'error' }; + } + } else { + const from = params.from || ''; + const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; + const replyto = params?.replyto || ''; + const messageParams = { + from: from + ' <' + mailsender + '>', + to: params.recipient, + subject: params.subject, + text: params.text || 'mail', + html: params?.html ? params.html + reportMsg : '', + bcc: params.bcc ? params.bcc : undefined, + replyTo: replyto ? replyto : undefined, + }; + + if (transporterSMTP) { + const res = await transporterSMTP.sendMail(messageParams); + console.log('smtp transporter res: ', res?.response); + if (!res.err) { + if (extUserId) { + await updateMailCount(extUserId); + } + return { status: 'success' }; + } + } else { + if (mailgunApiKey) { + const res = await mailgunClient.messages.create(mailgunDomain, messageParams); + console.log('mailgun res: ', res?.status); + if (res.status === 200) { + if (extUserId) { + await updateMailCount(extUserId); + } + return { status: 'success' }; + } + } else { + return { status: 'error' }; + } + } + } + } catch (err) { + console.log(`sendMailWithAttachment Error: ${err}`); + if (err) { + return { status: 'error' }; + } + } +} + +// `sendMailWithAttachment` function is used to send completion and forwarded document mail and it also fix security issue. +export default async function sendMailWithAttachment(params) { + const nonCustomMail = await sendMailProvider(params); + return nonCustomMail; +} diff --git a/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js b/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js index 8003f5f7f..2916769ca 100644 --- a/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js +++ b/apps/OpenSignServer/cloud/parsefunction/sendMailv3.js @@ -40,220 +40,45 @@ async function sendMailProvider(req) { mailgunDomain = process.env.MAILGUN_DOMAIN; } } - if (req.params.url) { - const randomNumber = Math.floor(Math.random() * 5000); - const testPdf = `test_${randomNumber}.pdf`; - try { - let Pdf = fs.createWriteStream(testPdf); - const writeToLocalDisk = () => { - return new Promise((resolve, reject) => { - const isSecure = - new URL(req.params.url)?.protocol === 'https:' && - new URL(req.params.url)?.hostname !== 'localhost'; - if (isSecure) { - https - .get(req.params.url, async function (response) { - response.pipe(Pdf); - response.on('end', () => resolve('success')); - }) - .on('error', e => { - console.error(`error: ${e.message}`); - resolve('error'); - }); - } else { - const httpsAgent = new https.Agent({ rejectUnauthorized: false }); // Disable SSL validation - const localUrl = req.params.url; - const newlocalUrl = localUrl.replace( - 'https://localhost:3001/api', - 'http://localhost:8080' - ); - axios - .get(newlocalUrl, { responseType: 'stream', httpsAgent: httpsAgent }) - .then(response => { - response.data.pipe(Pdf); - Pdf.on('finish', () => resolve('success')); - Pdf.on('error', () => resolve('error')); - }) - .catch(e => { - console.log('error in localurl', e.message); - resolve('error'); - }); - } - }); - }; - // `writeToLocalDisk` is used to create pdf file from doc url - const ress = await writeToLocalDisk(); - if (ress) { - function readTolocal() { - return new Promise((resolve, reject) => { - setTimeout(() => { - let PdfBuffer = fs.readFileSync(Pdf.path); - resolve(PdfBuffer); - }, 100); - }); - } - // `PdfBuffer` used to create buffer from pdf file - let PdfBuffer = await readTolocal(); - const pdfName = req.params.pdfName && `${req.params.pdfName}.pdf`; - const filename = req.params.filename; - const file = { - filename: filename || pdfName || 'exported.pdf', - content: smtpenable ? PdfBuffer : undefined, - data: smtpenable ? undefined : PdfBuffer, - }; - let attachment; - const certificatePath = req.params.certificatePath || `./exports/certificate.pdf`; - if (fs.existsSync(certificatePath)) { - try { - // `certificateBuffer` used to create buffer from pdf file - const certificateBuffer = fs.readFileSync(certificatePath); - const certificate = { - filename: 'certificate.pdf', - content: smtpenable ? certificateBuffer : undefined, //fs.readFileSync('./exports/exported_file_1223.pdf'), - data: smtpenable ? undefined : certificateBuffer, - }; - attachment = [file, certificate]; - } catch (err) { - attachment = [file]; - console.log('Err in read certificate sendmailv3', err); - } - } else { - attachment = [file]; - } - const from = req.params.from || ''; - const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; - const replyto = req.params?.replyto || ''; - const messageParams = { - from: from + ' <' + mailsender + '>', - to: req.params.recipient, - subject: req.params.subject, - text: req.params.text || 'mail', - html: req.params?.html ? req.params.html + reportMsg : '', - attachments: smtpenable ? attachment : undefined, - attachment: smtpenable ? undefined : attachment, - bcc: req.params.bcc ? req.params.bcc : undefined, - replyTo: replyto ? replyto : undefined, - }; - if (transporterSMTP) { - const res = await transporterSMTP.sendMail(messageParams); - console.log('smtp transporter res: ', res?.response); - if (!res.err) { - if (extUserId) { - await updateMailCount(extUserId); - } - if (fs.existsSync(certificatePath)) { - try { - fs.unlinkSync(certificatePath); - } catch (err) { - console.log('Err in unlink certificate sendmailv3'); - } - } - if (fs.existsSync(testPdf)) { - try { - fs.unlinkSync(testPdf); - } catch (err) { - console.log('Err in unlink pdf sendmailv3'); - } - } - return { status: 'success' }; - } - } else { - if (mailgunApiKey) { - const res = await mailgunClient.messages.create(mailgunDomain, messageParams); - console.log('mailgun res: ', res?.status); - if (res.status === 200) { - if (extUserId) { - await updateMailCount(extUserId); - } - if (fs.existsSync(certificatePath)) { - try { - fs.unlinkSync(certificatePath); - } catch (err) { - console.log('Err in unlink certificate sendmailv3'); - } - } - if (fs.existsSync(testPdf)) { - try { - fs.unlinkSync(testPdf); - } catch (err) { - console.log('Err in unlink pdf sendmailv3'); - } - } - return { status: 'success' }; - } - } else { - if (fs.existsSync(certificatePath)) { - try { - fs.unlinkSync(certificatePath); - } catch (err) { - console.log('Err in unlink certificate sendmailv3'); - } - } - if (fs.existsSync(testPdf)) { - try { - fs.unlinkSync(testPdf); - } catch (err) { - console.log('Err in unlink pdf sendmailv3'); - } - } - return { status: 'error' }; - } - } - } - } catch (err) { - console.log(`Error in sendmailv3: ${err}`); - if (fs.existsSync(testPdf)) { - try { - fs.unlinkSync(testPdf); - } catch (err) { - console.log('Err in unlink pdf sendmailv3'); - } - } - if (err) { - return { status: 'error' }; + const from = req.params.from || ''; + const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; + const replyto = req.params?.replyto || ''; + const messageParams = { + from: from + ' <' + mailsender + '>', + to: req.params.recipient, + subject: req.params.subject, + text: req.params.text || 'mail', + html: req.params?.html ? req.params.html + reportMsg : '', + bcc: req.params.bcc ? req.params.bcc : undefined, + replyTo: replyto ? replyto : undefined, + }; + + if (transporterSMTP) { + const res = await transporterSMTP.sendMail(messageParams); + console.log('smtp transporter res: ', res?.response); + if (!res.err) { + if (extUserId) { + await updateMailCount(extUserId); } + return { status: 'success' }; } } else { - const from = req.params.from || ''; - const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; - const replyto = req.params?.replyto || ''; - const messageParams = { - from: from + ' <' + mailsender + '>', - to: req.params.recipient, - subject: req.params.subject, - text: req.params.text || 'mail', - html: req.params?.html ? req.params.html + reportMsg : '', - bcc: req.params.bcc ? req.params.bcc : undefined, - replyTo: replyto ? replyto : undefined, - }; - - if (transporterSMTP) { - const res = await transporterSMTP.sendMail(messageParams); - console.log('smtp transporter res: ', res?.response); - if (!res.err) { + if (mailgunApiKey) { + const res = await mailgunClient.messages.create(mailgunDomain, messageParams); + console.log('mailgun res: ', res?.status); + if (res.status === 200) { if (extUserId) { await updateMailCount(extUserId); } return { status: 'success' }; } } else { - if (mailgunApiKey) { - const res = await mailgunClient.messages.create(mailgunDomain, messageParams); - console.log('mailgun res: ', res?.status); - if (res.status === 200) { - if (extUserId) { - await updateMailCount(extUserId); - } - return { status: 'success' }; - } - } else { - return { status: 'error' }; - } + return { status: 'error' }; } } } catch (err) { - console.log(`Error in sendmailv3: ${err}`); + console.log(`sendmailv3 Error: ${err}`); if (err) { return { status: 'error' }; } diff --git a/apps/OpenSignServer/cloud/parsefunction/updateEmailTemplates.js b/apps/OpenSignServer/cloud/parsefunction/updateEmailTemplates.js index c3a6bd35c..2a94ac4e3 100644 --- a/apps/OpenSignServer/cloud/parsefunction/updateEmailTemplates.js +++ b/apps/OpenSignServer/cloud/parsefunction/updateEmailTemplates.js @@ -24,6 +24,8 @@ export default async function updateEmailTemplates(request) { } } }); + if (details?.EmailEditorType) extUserRes.set('EmailEditorType', details.EmailEditorType); + const updateExtRes = await extUserRes.save(null, { useMasterKey: true }); if (updateExtRes) { const res = JSON.parse(JSON.stringify(updateExtRes)); diff --git a/apps/OpenSignServer/cloud/parsefunction/updatePreferences.js b/apps/OpenSignServer/cloud/parsefunction/updatePreferences.js index 271272879..bce88920b 100644 --- a/apps/OpenSignServer/cloud/parsefunction/updatePreferences.js +++ b/apps/OpenSignServer/cloud/parsefunction/updatePreferences.js @@ -5,6 +5,7 @@ export default async function updatePreferences(request) { const SignatureType = request.params.SignatureType || []; const NotifyOnSignatures = request.params.NotifyOnSignatures; const Timezone = request.params.Timezone; + const UseNameAsSender = request.params.UseNameAsSender; if (SignatureType?.length > 0 || NotifyOnSignatures !== undefined || Timezone) { try { const orgQuery = new Parse.Query('contracts_Users'); @@ -60,6 +61,9 @@ export default async function updatePreferences(request) { if (request.params.DownloadFilenameFormat) { newOrg.set('DownloadFilenameFormat', request.params.DownloadFilenameFormat); } + if (UseNameAsSender !== undefined) { + newOrg.set('UseNameAsSender', UseNameAsSender); + } const updateUserRes = await newOrg.save(null, { useMasterKey: true }); if (updateUserRes) { const _updateUserRes = JSON.parse(JSON.stringify(updateUserRes)); diff --git a/apps/OpenSignServer/cloud/parsefunction/updateTenant.js b/apps/OpenSignServer/cloud/parsefunction/updateTenant.js index 4571c642c..9e0768ce3 100644 --- a/apps/OpenSignServer/cloud/parsefunction/updateTenant.js +++ b/apps/OpenSignServer/cloud/parsefunction/updateTenant.js @@ -22,6 +22,7 @@ export default async function updateTenant(request) { } } }); + if (details?.EmailEditorType) tenant.set('EmailEditorType', details.EmailEditorType); const tenantRes = await tenant.save(null, { useMasterKey: true }); if (tenantRes) { diff --git a/apps/OpenSignServer/databases/migrations/20260310235145-add_emaileditortype_field.cjs b/apps/OpenSignServer/databases/migrations/20260310235145-add_emaileditortype_field.cjs new file mode 100644 index 000000000..2f96d1551 --- /dev/null +++ b/apps/OpenSignServer/databases/migrations/20260310235145-add_emaileditortype_field.cjs @@ -0,0 +1,35 @@ +/** + * + * @param {Parse} Parse + */ +exports.up = async Parse => { + const docSchema = new Parse.Schema('contracts_Document'); + docSchema.addObject('EmailEditorType'); + await docSchema.update(); + + const templateSchema = new Parse.Schema('contracts_Template'); + templateSchema.addObject('EmailEditorType'); + await templateSchema.update(); + + const tenantSchema = new Parse.Schema('partners_Tenant'); + tenantSchema.addObject('EmailEditorType'); + await tenantSchema.update(); +}; + +/** + * + * @param {Parse} Parse + */ +exports.down = async Parse => { + const docSchema = new Parse.Schema('contracts_Document'); + docSchema.deleteField('EmailEditorType'); + await docSchema.update(); + + const templateSchema = new Parse.Schema('contracts_Template'); + templateSchema.deleteField('EmailEditorType'); + await templateSchema.update(); + + const tenantSchema = new Parse.Schema('partners_Tenant'); + tenantSchema.deleteField('EmailEditorType'); + await tenantSchema.update(); +}; diff --git a/apps/OpenSignServer/databases/migrations/20260314215048-add_usenameassender_field.cjs b/apps/OpenSignServer/databases/migrations/20260314215048-add_usenameassender_field.cjs new file mode 100644 index 000000000..449bd5f5b --- /dev/null +++ b/apps/OpenSignServer/databases/migrations/20260314215048-add_usenameassender_field.cjs @@ -0,0 +1,31 @@ +/** + * + * @param {Parse} Parse + */ +exports.up = async Parse => { + const docSchema = new Parse.Schema('contracts_Document'); + docSchema.addString('SenderName'); + docSchema.addString('SenderMail'); + await docSchema.update(); + + const templateSchema = new Parse.Schema('contracts_Template'); + templateSchema.addString('SenderName'); + templateSchema.addString('SenderMail'); + await templateSchema.update(); +}; + +/** + * + * @param {Parse} Parse + */ +exports.down = async Parse => { + const docSchema = new Parse.Schema('contracts_Document'); + docSchema.deleteField('SenderName'); + docSchema.deleteField('SenderMail'); + await docSchema.update(); + + const templateSchema = new Parse.Schema('contracts_Template'); + templateSchema.deleteField('SenderName'); + templateSchema.deleteField('SenderMail'); + await templateSchema.update(); +}; diff --git a/apps/OpenSignServer/index.js b/apps/OpenSignServer/index.js index 04688ac0e..fe72c11ea 100644 --- a/apps/OpenSignServer/index.js +++ b/apps/OpenSignServer/index.js @@ -158,7 +158,7 @@ export const config = { } : {}), filesAdapter: fsAdapter, - auth: { google: { enabled: true }, sso: SSOAuth }, + auth: { google: { clientId: process.env.GOOGLE_CLIENT_ID }, sso: SSOAuth }, // for fix Adapter prototype don't match expected prototype push: { queueOptions: { disablePushWorker: true } }, }; diff --git a/apps/OpenSignServer/package-lock.json b/apps/OpenSignServer/package-lock.json index 6b7444820..bf7c458d2 100644 --- a/apps/OpenSignServer/package-lock.json +++ b/apps/OpenSignServer/package-lock.json @@ -9,8 +9,8 @@ "version": "2.37.0", "license": "MIT", "dependencies": { - "@aws-sdk/client-s3": "^3.997.0", - "@aws-sdk/s3-request-presigner": "^3.997.0", + "@aws-sdk/client-s3": "^3.1008.0", + "@aws-sdk/s3-request-presigner": "^3.1008.0", "@parse/fs-files-adapter": "^3.0.0", "@parse/push-adapter": "^8.3.1", "@parse/s3-files-adapter": "5.0.0", @@ -18,7 +18,7 @@ "@signpdf/placeholder-pdf-lib": "^3.3.0", "@signpdf/signer-p12": "^3.3.0", "@signpdf/signpdf": "^3.3.0", - "axios": "^1.13.5", + "axios": "^1.13.6", "coherentpdf": "^2.5.5", "cors": "^2.8.6", "date-fns-tz": "^3.2.0", @@ -28,17 +28,17 @@ "generate-api-key": "^1.0.2", "googleapis": "^171.4.0", "libreoffice-convert": "^1.8.1", - "mailgun.js": "^12.7.0", + "mailgun.js": "^12.7.1", "moment": "^2.30.1", "mongodb": "^7.1.0", - "multer": "^2.0.2", + "multer": "^2.1.1", "multer-s3": "^3.0.1", "node-forge": "^1.3.3", - "nodemailer": "^8.0.1", + "nodemailer": "^8.0.2", "p-limit": "^7.3.0", "parse": "^8.1.0", "parse-dbtool": "^1.2.0", - "parse-server": "^8.6.3", + "parse-server": "^8.6.40", "parse-server-api-mail-adapter": "^5.0.5", "pdf-lib": "^1.17.1", "posthog-node": "^5.21.2", @@ -50,7 +50,7 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.28.6", - "eslint": "^9.39.3", + "eslint": "^9.39.4", "jasmine": "^6.1.0", "mongodb-runner": "^6.7.1", "nodemon": "^3.1.14", @@ -897,65 +897,65 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.999.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.999.0.tgz", - "integrity": "sha512-6ML2ls4nnOxm1kKzy2RgM+i8aS/9wgw6V91iqSibBYU/isYs8BvC2xcv8AsaWG5mOQjytjRzsBO5COxfWVPg3A==", + "version": "3.1008.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.1008.0.tgz", + "integrity": "sha512-w/SIRD25v2zVMbkn8CYIxUsac8yf5Jghkhw5j7EsNWdJhl56m/nWpUX7t1etFUW1cnzpFjZV0lXt0dNFSnbXwA==", "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/core": "^3.973.15", - "@aws-sdk/credential-provider-node": "^3.972.14", - "@aws-sdk/middleware-bucket-endpoint": "^3.972.6", - "@aws-sdk/middleware-expect-continue": "^3.972.6", - "@aws-sdk/middleware-flexible-checksums": "^3.973.1", - "@aws-sdk/middleware-host-header": "^3.972.6", - "@aws-sdk/middleware-location-constraint": "^3.972.6", - "@aws-sdk/middleware-logger": "^3.972.6", - "@aws-sdk/middleware-recursion-detection": "^3.972.6", - "@aws-sdk/middleware-sdk-s3": "^3.972.15", - "@aws-sdk/middleware-ssec": "^3.972.6", - "@aws-sdk/middleware-user-agent": "^3.972.15", - "@aws-sdk/region-config-resolver": "^3.972.6", - "@aws-sdk/signature-v4-multi-region": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-endpoints": "^3.996.3", - "@aws-sdk/util-user-agent-browser": "^3.972.6", - "@aws-sdk/util-user-agent-node": "^3.973.0", - "@smithy/config-resolver": "^4.4.9", - "@smithy/core": "^3.23.6", - "@smithy/eventstream-serde-browser": "^4.2.10", - "@smithy/eventstream-serde-config-resolver": "^4.3.10", - "@smithy/eventstream-serde-node": "^4.2.10", - "@smithy/fetch-http-handler": "^5.3.11", - "@smithy/hash-blob-browser": "^4.2.11", - "@smithy/hash-node": "^4.2.10", - "@smithy/hash-stream-node": "^4.2.10", - "@smithy/invalid-dependency": "^4.2.10", - "@smithy/md5-js": "^4.2.10", - "@smithy/middleware-content-length": "^4.2.10", - "@smithy/middleware-endpoint": "^4.4.20", - "@smithy/middleware-retry": "^4.4.37", - "@smithy/middleware-serde": "^4.2.11", - "@smithy/middleware-stack": "^4.2.10", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/node-http-handler": "^4.4.12", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/credential-provider-node": "^3.972.20", + "@aws-sdk/middleware-bucket-endpoint": "^3.972.7", + "@aws-sdk/middleware-expect-continue": "^3.972.7", + "@aws-sdk/middleware-flexible-checksums": "^3.973.5", + "@aws-sdk/middleware-host-header": "^3.972.7", + "@aws-sdk/middleware-location-constraint": "^3.972.7", + "@aws-sdk/middleware-logger": "^3.972.7", + "@aws-sdk/middleware-recursion-detection": "^3.972.7", + "@aws-sdk/middleware-sdk-s3": "^3.972.19", + "@aws-sdk/middleware-ssec": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.20", + "@aws-sdk/region-config-resolver": "^3.972.7", + "@aws-sdk/signature-v4-multi-region": "^3.996.7", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-endpoints": "^3.996.4", + "@aws-sdk/util-user-agent-browser": "^3.972.7", + "@aws-sdk/util-user-agent-node": "^3.973.6", + "@smithy/config-resolver": "^4.4.10", + "@smithy/core": "^3.23.9", + "@smithy/eventstream-serde-browser": "^4.2.11", + "@smithy/eventstream-serde-config-resolver": "^4.3.11", + "@smithy/eventstream-serde-node": "^4.2.11", + "@smithy/fetch-http-handler": "^5.3.13", + "@smithy/hash-blob-browser": "^4.2.12", + "@smithy/hash-node": "^4.2.11", + "@smithy/hash-stream-node": "^4.2.11", + "@smithy/invalid-dependency": "^4.2.11", + "@smithy/md5-js": "^4.2.11", + "@smithy/middleware-content-length": "^4.2.11", + "@smithy/middleware-endpoint": "^4.4.23", + "@smithy/middleware-retry": "^4.4.40", + "@smithy/middleware-serde": "^4.2.12", + "@smithy/middleware-stack": "^4.2.11", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/node-http-handler": "^4.4.14", + "@smithy/protocol-http": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-body-length-browser": "^4.2.1", - "@smithy/util-body-length-node": "^4.2.2", - "@smithy/util-defaults-mode-browser": "^4.3.36", - "@smithy/util-defaults-mode-node": "^4.2.39", - "@smithy/util-endpoints": "^3.3.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-retry": "^4.2.10", - "@smithy/util-stream": "^4.5.15", - "@smithy/util-utf8": "^4.2.1", - "@smithy/util-waiter": "^4.2.10", + "@smithy/url-parser": "^4.2.11", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.39", + "@smithy/util-defaults-mode-node": "^4.2.42", + "@smithy/util-endpoints": "^3.3.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-retry": "^4.2.11", + "@smithy/util-stream": "^4.5.17", + "@smithy/util-utf8": "^4.2.2", + "@smithy/util-waiter": "^4.2.12", "tslib": "^2.6.2" }, "engines": { @@ -963,23 +963,23 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.973.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.15.tgz", - "integrity": "sha512-AlC0oQ1/mdJ8vCIqu524j5RB7M8i8E24bbkZmya1CuiQxkY7SdIZAyw7NDNMGaNINQFq/8oGRMX0HeOfCVsl/A==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/xml-builder": "^3.972.8", - "@smithy/core": "^3.23.6", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/signature-v4": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "version": "3.973.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.973.19.tgz", + "integrity": "sha512-56KePyOcZnKTWCd89oJS1G6j3HZ9Kc+bh/8+EbvtaCCXdP6T7O7NzCiPuHRhFLWnzXIaXX3CxAz0nI5My9spHQ==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/xml-builder": "^3.972.10", + "@smithy/core": "^3.23.9", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/property-provider": "^4.2.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/signature-v4": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -987,9 +987,9 @@ } }, "node_modules/@aws-sdk/crc64-nvme": { - "version": "3.972.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.3.tgz", - "integrity": "sha512-UExeK+EFiq5LAcbHm96CQLSia+5pvpUVSAsVApscBzayb7/6dJBJKwV4/onsk4VbWSmqxDMcfuTD+pC4RxgZHg==", + "version": "3.972.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.4.tgz", + "integrity": "sha512-HKZIZLbRyvzo/bXZU7Zmk6XqU+1C9DjI56xd02vwuDIxedxBEqP17t9ExhbP9QFeNq/a3l9GOcyirFXxmbDhmw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -1000,14 +1000,14 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.13.tgz", - "integrity": "sha512-6ljXKIQ22WFKyIs1jbORIkGanySBHaPPTOI4OxACP5WXgbcR0nDYfqNJfXEGwCK7IzHdNbCSFsNKKs0qCexR8Q==", + "version": "3.972.17", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.17.tgz", + "integrity": "sha512-MBAMW6YELzE1SdkOniqr51mrjapQUv8JXSGxtwRjQV0mwVDutVsn22OPAUt4RcLRvdiHQmNBDEFP9iTeSVCOlA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1016,20 +1016,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.15.tgz", - "integrity": "sha512-dJuSTreu/T8f24SHDNTjd7eQ4rabr0TzPh2UTCwYexQtzG3nTDKm1e5eIdhiroTMDkPEJeY+WPkA6F9wod/20A==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/fetch-http-handler": "^5.3.11", - "@smithy/node-http-handler": "^4.4.12", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.19.tgz", + "integrity": "sha512-9EJROO8LXll5a7eUFqu48k6BChrtokbmgeMWmsH7lBb6lVbtjslUYz/ShLi+SHkYzTomiGBhmzTW7y+H4BxsnA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/types": "^3.973.5", + "@smithy/fetch-http-handler": "^5.3.13", + "@smithy/node-http-handler": "^4.4.14", + "@smithy/property-provider": "^4.2.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/util-stream": "^4.5.15", + "@smithy/util-stream": "^4.5.17", "tslib": "^2.6.2" }, "engines": { @@ -1037,23 +1037,23 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.13.tgz", - "integrity": "sha512-JKSoGb7XeabZLBJptpqoZIFbROUIS65NuQnEHGOpuT9GuuZwag2qciKANiDLFiYk4u8nSrJC9JIOnWKVvPVjeA==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/credential-provider-env": "^3.972.13", - "@aws-sdk/credential-provider-http": "^3.972.15", - "@aws-sdk/credential-provider-login": "^3.972.13", - "@aws-sdk/credential-provider-process": "^3.972.13", - "@aws-sdk/credential-provider-sso": "^3.972.13", - "@aws-sdk/credential-provider-web-identity": "^3.972.13", - "@aws-sdk/nested-clients": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@smithy/credential-provider-imds": "^4.2.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.19.tgz", + "integrity": "sha512-pVJVjWqVrPqjpFq7o0mCmeZu1Y0c94OCHSYgivdCD2wfmYVtBbwQErakruhgOD8pcMcx9SCqRw1pzHKR7OGBcA==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/credential-provider-env": "^3.972.17", + "@aws-sdk/credential-provider-http": "^3.972.19", + "@aws-sdk/credential-provider-login": "^3.972.19", + "@aws-sdk/credential-provider-process": "^3.972.17", + "@aws-sdk/credential-provider-sso": "^3.972.19", + "@aws-sdk/credential-provider-web-identity": "^3.972.19", + "@aws-sdk/nested-clients": "^3.996.9", + "@aws-sdk/types": "^3.973.5", + "@smithy/credential-provider-imds": "^4.2.11", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1062,17 +1062,17 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.13.tgz", - "integrity": "sha512-RtYcrxdnJHKY8MFQGLltCURcjuMjnaQpAxPE6+/QEdDHHItMKZgabRe/KScX737F9vJMQsmJy9EmMOkCnoC1JQ==", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.19.tgz", + "integrity": "sha512-jOXdZ1o+CywQKr6gyxgxuUmnGwTTnY2Kxs1PM7fI6AYtDWDnmW/yKXayNqkF8KjP1unflqMWKVbVt5VgmE3L0g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/nested-clients": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/nested-clients": "^3.996.9", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1081,21 +1081,21 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.972.14", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.14.tgz", - "integrity": "sha512-WqoC2aliIjQM/L3oFf6j+op/enT2i9Cc4UTxxMEKrJNECkq4/PlKE5BOjSYFcq6G9mz65EFbXJh7zOU4CvjSKQ==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/credential-provider-env": "^3.972.13", - "@aws-sdk/credential-provider-http": "^3.972.15", - "@aws-sdk/credential-provider-ini": "^3.972.13", - "@aws-sdk/credential-provider-process": "^3.972.13", - "@aws-sdk/credential-provider-sso": "^3.972.13", - "@aws-sdk/credential-provider-web-identity": "^3.972.13", - "@aws-sdk/types": "^3.973.4", - "@smithy/credential-provider-imds": "^4.2.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "version": "3.972.20", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.20.tgz", + "integrity": "sha512-0xHca2BnPY0kzjDYPH7vk8YbfdBPpWVS67rtqQMalYDQUCBYS37cZ55K6TuFxCoIyNZgSCFrVKr9PXC5BVvQQw==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/credential-provider-env": "^3.972.17", + "@aws-sdk/credential-provider-http": "^3.972.19", + "@aws-sdk/credential-provider-ini": "^3.972.19", + "@aws-sdk/credential-provider-process": "^3.972.17", + "@aws-sdk/credential-provider-sso": "^3.972.19", + "@aws-sdk/credential-provider-web-identity": "^3.972.19", + "@aws-sdk/types": "^3.973.5", + "@smithy/credential-provider-imds": "^4.2.11", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1104,15 +1104,15 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.13.tgz", - "integrity": "sha512-rsRG0LQA4VR+jnDyuqtXi2CePYSmfm5GNL9KxiW8DSe25YwJSr06W8TdUfONAC+rjsTI+aIH2rBGG5FjMeANrw==", + "version": "3.972.17", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.17.tgz", + "integrity": "sha512-c8G8wT1axpJDgaP3xzcy+q8Y1fTi9A2eIQJvyhQ9xuXrUZhlCfXbC0vM9bM1CUXiZppFQ1p7g0tuUMvil/gCPg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1121,17 +1121,17 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.13.tgz", - "integrity": "sha512-fr0UU1wx8kNHDhTQBXioc/YviSW8iXuAxHvnH7eQUtn8F8o/FU3uu6EUMvAQgyvn7Ne5QFnC0Cj0BFlwCk+RFw==", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.19.tgz", + "integrity": "sha512-kVjQsEU3b///q7EZGrUzol9wzwJFKbEzqJKSq82A9ShrUTEO7FNylTtby3sPV19ndADZh1H3FB3+5ZrvKtEEeg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/nested-clients": "^3.996.3", - "@aws-sdk/token-providers": "3.999.0", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/nested-clients": "^3.996.9", + "@aws-sdk/token-providers": "3.1008.0", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1140,16 +1140,16 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.972.13", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.13.tgz", - "integrity": "sha512-a6iFMh1pgUH0TdcouBppLJUfPM7Yd3R9S1xFodPtCRoLqCz2RQFA3qjA8x4112PVYXEd4/pHX2eihapq39w0rA==", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.19.tgz", + "integrity": "sha512-BV1BlTFdG4w4tAihxN7iXDBoNcNewXD4q8uZlNQiUrnqxwGWUhKHODIQVSPlQGxXClEj+63m+cqZskw+ESmeZg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/nested-clients": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/nested-clients": "^3.996.9", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1179,17 +1179,17 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.6.tgz", - "integrity": "sha512-3H2bhvb7Cb/S6WFsBy/Dy9q2aegC9JmGH1inO8Lb2sWirSqpLJlZmvQHPE29h2tIxzv6el/14X/tLCQ8BQU6ZQ==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.7.tgz", + "integrity": "sha512-goX+axlJ6PQlRnzE2bQisZ8wVrlm6dXJfBzMJhd8LhAIBan/w1Kl73fJnalM/S+18VnpzIHumyV6DtgmvqG5IA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/protocol-http": "^5.3.10", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-arn-parser": "^3.972.3", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-config-provider": "^4.2.1", + "@smithy/util-config-provider": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1197,13 +1197,13 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.6.tgz", - "integrity": "sha512-QMdffpU+GkSGC+bz6WdqlclqIeCsOfgX8JFZ5xvwDtX+UTj4mIXm3uXu7Ko6dBseRcJz1FA6T9OmlAAY6JgJUg==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.7.tgz", + "integrity": "sha512-mvWqvm61bmZUKmmrtl2uWbokqpenY3Mc3Jf4nXB/Hse6gWxLPaCQThmhPBDzsPSV8/Odn8V6ovWt3pZ7vy4BFQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/protocol-http": "^5.3.10", + "@aws-sdk/types": "^3.973.5", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1212,24 +1212,24 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.973.1", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.973.1.tgz", - "integrity": "sha512-QLXsxsI6VW8LuGK+/yx699wzqP/NMCGk/hSGP+qtB+Lcff+23UlbahyouLlk+nfT7Iu021SkXBhnAuVd6IZcPw==", + "version": "3.973.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.973.5.tgz", + "integrity": "sha512-Dp3hqE5W6hG8HQ3Uh+AINx9wjjqYmFHbxede54sGj3akx/haIQrkp85lNdTdC+ouNUcSYNiuGkzmyDREfHX1Gg==", "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.973.15", - "@aws-sdk/crc64-nvme": "^3.972.3", - "@aws-sdk/types": "^3.973.4", - "@smithy/is-array-buffer": "^4.2.1", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/protocol-http": "^5.3.10", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/crc64-nvme": "^3.972.4", + "@aws-sdk/types": "^3.973.5", + "@smithy/is-array-buffer": "^4.2.2", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-stream": "^4.5.15", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-stream": "^4.5.17", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1237,13 +1237,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.6.tgz", - "integrity": "sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.7.tgz", + "integrity": "sha512-aHQZgztBFEpDU1BB00VWCIIm85JjGjQW1OG9+98BdmaOpguJvzmXBGbnAiYcciCd+IS4e9BEq664lhzGnWJHgQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/protocol-http": "^5.3.10", + "@aws-sdk/types": "^3.973.5", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1252,12 +1252,12 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.6.tgz", - "integrity": "sha512-XdZ2TLwyj3Am6kvUc67vquQvs6+D8npXvXgyEUJAdkUDx5oMFJKOqpK+UpJhVDsEL068WAJl2NEGzbSik7dGJQ==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.7.tgz", + "integrity": "sha512-vdK1LJfffBp87Lj0Bw3WdK1rJk9OLDYdQpqoKgmpIZPe+4+HawZ6THTbvjhJt4C4MNnRrHTKHQjkwBiIpDBoig==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1266,12 +1266,12 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.6.tgz", - "integrity": "sha512-iFnaMFMQdljAPrvsCVKYltPt2j40LQqukAbXvW7v0aL5I+1GO7bZ/W8m12WxW3gwyK5p5u1WlHg8TSAizC5cZw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.972.7.tgz", + "integrity": "sha512-LXhiWlWb26txCU1vcI9PneESSeRp/RYY/McuM4SpdrimQR5NgwaPb4VJCadVeuGWgh6QmqZ6rAKSoL1ob16W6w==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1280,14 +1280,14 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.6.tgz", - "integrity": "sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.7.tgz", + "integrity": "sha512-l2VQdcBcYLzIzykCHtXlbpiVCZ94/xniLIkAj0jpnpjY4xlgZx7f56Ypn+uV1y3gG0tNVytJqo3K9bfMFee7SQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/protocol-http": "^5.3.10", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1296,24 +1296,24 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.15.tgz", - "integrity": "sha512-WDLgssevOU5BFx1s8jA7jj6cE5HuImz28sy9jKOaVtz0AW1lYqSzotzdyiybFaBcQTs5zxXOb2pUfyMxgEKY3Q==", - "license": "Apache-2.0", - "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-arn-parser": "^3.972.2", - "@smithy/core": "^3.23.6", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/signature-v4": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "version": "3.972.19", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.19.tgz", + "integrity": "sha512-/CtOHHVFg4ZuN6CnLnYkrqWgVEnbOBC4kNiKa+4fldJ9cioDt3dD/f5vpq0cWLOXwmGL2zgVrVxNhjxWpxNMkg==", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-arn-parser": "^3.972.3", + "@smithy/core": "^3.23.9", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/signature-v4": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/util-config-provider": "^4.2.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-stream": "^4.5.15", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-config-provider": "^4.2.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-stream": "^4.5.17", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1321,12 +1321,12 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.6.tgz", - "integrity": "sha512-acvMUX9jF4I2Ew+Z/EA6gfaFaz9ehci5wxBmXCZeulLuv8m+iGf6pY9uKz8TPjg39bdAz3hxoE0eLP8Qz+IYlA==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.7.tgz", + "integrity": "sha512-G9clGVuAml7d8DYzY6DnRi7TIIDRvZ3YpqJPz/8wnWS5fYx/FNWNmkO6iJVlVkQg9BfeMzd+bVPtPJOvC4B+nQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1335,17 +1335,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.972.15", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.15.tgz", - "integrity": "sha512-ABlFVcIMmuRAwBT+8q5abAxOr7WmaINirDJBnqGY5b5jSDo00UMlg/G4a0xoAgwm6oAECeJcwkvDlxDwKf58fQ==", + "version": "3.972.20", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.20.tgz", + "integrity": "sha512-3kNTLtpUdeahxtnJRnj/oIdLAUdzTfr9N40KtxNhtdrq+Q1RPMdCJINRXq37m4t5+r3H70wgC3opW46OzFcZYA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-endpoints": "^3.996.3", - "@smithy/core": "^3.23.6", - "@smithy/protocol-http": "^5.3.10", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-endpoints": "^3.996.4", + "@smithy/core": "^3.23.9", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", + "@smithy/util-retry": "^4.2.11", "tslib": "^2.6.2" }, "engines": { @@ -1353,48 +1354,48 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.3.tgz", - "integrity": "sha512-AU5TY1V29xqwg/MxmA2odwysTez+ccFAhmfRJk+QZT5HNv90UTA9qKd1J9THlsQkvmH7HWTEV1lDNxkQO5PzNw==", + "version": "3.996.9", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.996.9.tgz", + "integrity": "sha512-+RpVtpmQbbtzFOKhMlsRcXM/3f1Z49qTOHaA8gEpHOYruERmog6f2AUtf/oTRLCWjR9H2b3roqryV/hI7QMW8w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/middleware-host-header": "^3.972.6", - "@aws-sdk/middleware-logger": "^3.972.6", - "@aws-sdk/middleware-recursion-detection": "^3.972.6", - "@aws-sdk/middleware-user-agent": "^3.972.15", - "@aws-sdk/region-config-resolver": "^3.972.6", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-endpoints": "^3.996.3", - "@aws-sdk/util-user-agent-browser": "^3.972.6", - "@aws-sdk/util-user-agent-node": "^3.973.0", - "@smithy/config-resolver": "^4.4.9", - "@smithy/core": "^3.23.6", - "@smithy/fetch-http-handler": "^5.3.11", - "@smithy/hash-node": "^4.2.10", - "@smithy/invalid-dependency": "^4.2.10", - "@smithy/middleware-content-length": "^4.2.10", - "@smithy/middleware-endpoint": "^4.4.20", - "@smithy/middleware-retry": "^4.4.37", - "@smithy/middleware-serde": "^4.2.11", - "@smithy/middleware-stack": "^4.2.10", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/node-http-handler": "^4.4.12", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/middleware-host-header": "^3.972.7", + "@aws-sdk/middleware-logger": "^3.972.7", + "@aws-sdk/middleware-recursion-detection": "^3.972.7", + "@aws-sdk/middleware-user-agent": "^3.972.20", + "@aws-sdk/region-config-resolver": "^3.972.7", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-endpoints": "^3.996.4", + "@aws-sdk/util-user-agent-browser": "^3.972.7", + "@aws-sdk/util-user-agent-node": "^3.973.6", + "@smithy/config-resolver": "^4.4.10", + "@smithy/core": "^3.23.9", + "@smithy/fetch-http-handler": "^5.3.13", + "@smithy/hash-node": "^4.2.11", + "@smithy/invalid-dependency": "^4.2.11", + "@smithy/middleware-content-length": "^4.2.11", + "@smithy/middleware-endpoint": "^4.4.23", + "@smithy/middleware-retry": "^4.4.40", + "@smithy/middleware-serde": "^4.2.12", + "@smithy/middleware-stack": "^4.2.11", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/node-http-handler": "^4.4.14", + "@smithy/protocol-http": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-body-length-browser": "^4.2.1", - "@smithy/util-body-length-node": "^4.2.2", - "@smithy/util-defaults-mode-browser": "^4.3.36", - "@smithy/util-defaults-mode-node": "^4.2.39", - "@smithy/util-endpoints": "^3.3.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-retry": "^4.2.10", - "@smithy/util-utf8": "^4.2.1", + "@smithy/url-parser": "^4.2.11", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-body-length-node": "^4.2.3", + "@smithy/util-defaults-mode-browser": "^4.3.39", + "@smithy/util-defaults-mode-node": "^4.2.42", + "@smithy/util-endpoints": "^3.3.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-retry": "^4.2.11", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1402,14 +1403,14 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.6.tgz", - "integrity": "sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.7.tgz", + "integrity": "sha512-/Ev/6AI8bvt4HAAptzSjThGUMjcWaX3GX8oERkB0F0F9x2dLSBdgFDiyrRz3i0u0ZFZFQ1b28is4QhyqXTUsVA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/config-resolver": "^4.4.9", - "@smithy/node-config-provider": "^4.3.10", + "@aws-sdk/types": "^3.973.5", + "@smithy/config-resolver": "^4.4.10", + "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1418,17 +1419,17 @@ } }, "node_modules/@aws-sdk/s3-request-presigner": { - "version": "3.999.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.999.0.tgz", - "integrity": "sha512-/4Hl/re9+7WvL2y7+xzT9fQAM3zrM/8pUofQFn5cYlNxnuKF0gE7bcVf7hR4PzEDxCBhjIQg4qHbHCwcDlHGkg==", + "version": "3.1008.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.1008.0.tgz", + "integrity": "sha512-YZMG/5X2TVegzLjw6H5MIIeAUlp+JtkomKOITIZ9P9XS21hRZthRmFO4eJZe0xVLGfuMYZPUYSsiD2eEQuWdQw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/signature-v4-multi-region": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@aws-sdk/util-format-url": "^3.972.6", - "@smithy/middleware-endpoint": "^4.4.20", - "@smithy/protocol-http": "^5.3.10", - "@smithy/smithy-client": "^4.12.0", + "@aws-sdk/signature-v4-multi-region": "^3.996.7", + "@aws-sdk/types": "^3.973.5", + "@aws-sdk/util-format-url": "^3.972.7", + "@smithy/middleware-endpoint": "^4.4.23", + "@smithy/protocol-http": "^5.3.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1437,15 +1438,15 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.3.tgz", - "integrity": "sha512-gQYI/Buwp0CAGQxY7mR5VzkP56rkWq2Y1ROkFuXh5XY94DsSjJw62B3I0N0lysQmtwiL2ht2KHI9NylM/RP4FA==", + "version": "3.996.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.7.tgz", + "integrity": "sha512-mYhh7FY+7OOqjkYkd6+6GgJOsXK1xBWmuR+c5mxJPj2kr5TBNeZq+nUvE9kANWAux5UxDVrNOSiEM/wlHzC3Lg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "^3.972.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/protocol-http": "^5.3.10", - "@smithy/signature-v4": "^5.3.10", + "@aws-sdk/middleware-sdk-s3": "^3.972.19", + "@aws-sdk/types": "^3.973.5", + "@smithy/protocol-http": "^5.3.11", + "@smithy/signature-v4": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1454,16 +1455,16 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.999.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.999.0.tgz", - "integrity": "sha512-cx0hHUlgXULfykx4rdu/ciNAJaa3AL5xz3rieCz7NKJ68MJwlj3664Y8WR5MGgxfyYJBdamnkjNSx5Kekuc0cg==", + "version": "3.1008.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1008.0.tgz", + "integrity": "sha512-TulwlHQBWcJs668kNUDMZHN51DeLrDsYT59Ux4a/nbvr025gM6HjKJJ3LvnZccam7OS/ZKUVkWomCneRQKJbBg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "^3.973.15", - "@aws-sdk/nested-clients": "^3.996.3", - "@aws-sdk/types": "^3.973.4", - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@aws-sdk/core": "^3.973.19", + "@aws-sdk/nested-clients": "^3.996.9", + "@aws-sdk/types": "^3.973.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1472,9 +1473,9 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.973.4", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.4.tgz", - "integrity": "sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q==", + "version": "3.973.5", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.5.tgz", + "integrity": "sha512-hl7BGwDCWsjH8NkZfx+HgS7H2LyM2lTMAI7ba9c8O0KqdBLTdNJivsHpqjg9rNlAlPyREb6DeDRXUl0s8uFdmQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -1485,9 +1486,9 @@ } }, "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.972.2", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.2.tgz", - "integrity": "sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==", + "version": "3.972.3", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.3.tgz", + "integrity": "sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1497,15 +1498,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.996.3", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.3.tgz", - "integrity": "sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==", + "version": "3.996.4", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.996.4.tgz", + "integrity": "sha512-Hek90FBmd4joCFj+Vc98KLJh73Zqj3s2W56gjAcTkrNLMDI5nIFkG9YpfcJiVI1YlE2Ne1uOQNe+IgQ/Vz2XRA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-endpoints": "^3.3.1", + "@smithy/url-parser": "^4.2.11", + "@smithy/util-endpoints": "^3.3.2", "tslib": "^2.6.2" }, "engines": { @@ -1513,13 +1514,13 @@ } }, "node_modules/@aws-sdk/util-format-url": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.972.6.tgz", - "integrity": "sha512-0YNVNgFyziCejXJx0rzxPiD2rkxTWco4c9wiMF6n37Tb9aQvIF8+t7GyEyIFCwQHZ0VMQaAl+nCZHOYz5I5EKw==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.972.7.tgz", + "integrity": "sha512-V+PbnWfUl93GuFwsOHsAq7hY/fnm9kElRqR8IexIJr5Rvif9e614X5sGSyz3mVSf1YAZ+VTy63W1/pGdA55zyA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", - "@smithy/querystring-builder": "^4.2.10", + "@aws-sdk/types": "^3.973.5", + "@smithy/querystring-builder": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -1540,27 +1541,28 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.972.6", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.6.tgz", - "integrity": "sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA==", + "version": "3.972.7", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.7.tgz", + "integrity": "sha512-7SJVuvhKhMF/BkNS1n0QAJYgvEwYbK2QLKBrzDiwQGiTRU6Yf1f3nehTzm/l21xdAOtWSfp2uWSddPnP2ZtsVw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "^3.973.4", + "@aws-sdk/types": "^3.973.5", "@smithy/types": "^4.13.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.973.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.0.tgz", - "integrity": "sha512-A9J2G4Nf236e9GpaC1JnA8wRn6u6GjnOXiTwBLA6NUJhlBTIGfrTy+K1IazmF8y+4OFdW3O5TZlhyspJMqiqjA==", + "version": "3.973.6", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.973.6.tgz", + "integrity": "sha512-iF7G0prk7AvmOK64FcLvc/fW+Ty1H+vttajL7PvJFReU8urMxfYmynTTuFKDTA76Wgpq3FzTPKwabMQIXQHiXQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "^3.972.15", - "@aws-sdk/types": "^3.973.4", - "@smithy/node-config-provider": "^4.3.10", + "@aws-sdk/middleware-user-agent": "^3.972.20", + "@aws-sdk/types": "^3.973.5", + "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", + "@smithy/util-config-provider": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -1576,19 +1578,38 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.972.8", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.8.tgz", - "integrity": "sha512-Ql8elcUdYCha83Ol7NznBsgN5GVZnv3vUd86fEc6waU6oUdY0T1O9NODkEEOS/Uaogr87avDrUC6DSeM4oXjZg==", + "version": "3.972.10", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.10.tgz", + "integrity": "sha512-OnejAIVD+CxzyAUrVic7lG+3QRltyja9LoNqCE/1YVs8ichoTbJlVSaZ9iSMcnHLyzrSNtvaOGjSDRP+d/ouFA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", - "fast-xml-parser": "5.3.6", + "fast-xml-parser": "5.4.1", "tslib": "^2.6.2" }, "engines": { "node": ">=20.0.0" } }, + "node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.1.tgz", + "integrity": "sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "fast-xml-builder": "^1.0.0", + "strnum": "^2.1.2" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/@aws/lambda-invoke-store": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz", @@ -1972,15 +1993,15 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", - "minimatch": "^3.1.2" + "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2013,9 +2034,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz", - "integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "dev": true, "license": "MIT", "dependencies": { @@ -2026,7 +2047,7 @@ "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", - "minimatch": "^3.1.3", + "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { @@ -2037,9 +2058,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.3.tgz", - "integrity": "sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "dev": true, "license": "MIT", "engines": { @@ -4315,9 +4336,9 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.10.tgz", - "integrity": "sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.11.tgz", + "integrity": "sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4328,9 +4349,9 @@ } }, "node_modules/@smithy/chunked-blob-reader": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.1.tgz", - "integrity": "sha512-y5d4xRiD6TzeP5BWlb+Ig/VFqF+t9oANNhGeMqyzU7obw7FYgTgVi50i5JqBTeKp+TABeDIeeXFZdz65RipNtA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.2.tgz", + "integrity": "sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4340,12 +4361,12 @@ } }, "node_modules/@smithy/chunked-blob-reader-native": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.2.tgz", - "integrity": "sha512-QzzYIlf4yg0w5TQaC9VId3B3ugSk1MI/wb7tgcHtd7CBV9gNRKZrhc2EPSxSZuDy10zUZ0lomNMgkc6/VVe8xg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.3.tgz", + "integrity": "sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==", "license": "Apache-2.0", "dependencies": { - "@smithy/util-base64": "^4.3.1", + "@smithy/util-base64": "^4.3.2", "tslib": "^2.6.2" }, "engines": { @@ -4353,16 +4374,16 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.9.tgz", - "integrity": "sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.10.tgz", + "integrity": "sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.10", + "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-config-provider": "^4.2.1", - "@smithy/util-endpoints": "^3.3.1", - "@smithy/util-middleware": "^4.2.10", + "@smithy/util-config-provider": "^4.2.2", + "@smithy/util-endpoints": "^3.3.2", + "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" }, "engines": { @@ -4370,20 +4391,20 @@ } }, "node_modules/@smithy/core": { - "version": "3.23.6", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.6.tgz", - "integrity": "sha512-4xE+0L2NrsFKpEVFlFELkIHQddBvMbQ41LRIP74dGCXnY1zQ9DgksrBcRBDJT+iOzGy4VEJIeU3hkUK5mn06kg==", + "version": "3.23.9", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.9.tgz", + "integrity": "sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^4.2.11", - "@smithy/protocol-http": "^5.3.10", + "@smithy/middleware-serde": "^4.2.12", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-body-length-browser": "^4.2.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-stream": "^4.5.15", - "@smithy/util-utf8": "^4.2.1", - "@smithy/uuid": "^1.1.1", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-body-length-browser": "^4.2.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-stream": "^4.5.17", + "@smithy/util-utf8": "^4.2.2", + "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" }, "engines": { @@ -4391,15 +4412,15 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.10.tgz", - "integrity": "sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.11.tgz", + "integrity": "sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.10", - "@smithy/property-provider": "^4.2.10", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/property-provider": "^4.2.11", "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", + "@smithy/url-parser": "^4.2.11", "tslib": "^2.6.2" }, "engines": { @@ -4407,14 +4428,14 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.10.tgz", - "integrity": "sha512-A4ynrsFFfSXUHicfTcRehytppFBcY3HQxEGYiyGktPIOye3Ot7fxpiy4VR42WmtGI4Wfo6OXt/c1Ky1nUFxYYQ==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-4.2.11.tgz", + "integrity": "sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "^4.13.0", - "@smithy/util-hex-encoding": "^4.2.1", + "@smithy/util-hex-encoding": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4422,12 +4443,12 @@ } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.10.tgz", - "integrity": "sha512-0xupsu9yj9oDVuQ50YCTS9nuSYhGlrwqdaKQel9y2Fz7LU9fNErVlw9N0o4pm4qqvWEGbSTI4HKc6XJfB30MVw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.11.tgz", + "integrity": "sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.10", + "@smithy/eventstream-serde-universal": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4436,9 +4457,9 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.10.tgz", - "integrity": "sha512-8kn6sinrduk0yaYHMJDsNuiFpXwQwibR7n/4CDUqn4UgaG+SeBHu5jHGFdU9BLFAM7Q4/gvr9RYxBHz9/jKrhA==", + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.11.tgz", + "integrity": "sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4449,12 +4470,12 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.10.tgz", - "integrity": "sha512-uUrxPGgIffnYfvIOUmBM5i+USdEBRTdh7mLPttjphgtooxQ8CtdO1p6K5+Q4BBAZvKlvtJ9jWyrWpBJYzBKsyQ==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.11.tgz", + "integrity": "sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^4.2.10", + "@smithy/eventstream-serde-universal": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4463,12 +4484,12 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.10.tgz", - "integrity": "sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.11.tgz", + "integrity": "sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^4.2.10", + "@smithy/eventstream-codec": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4477,15 +4498,15 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.11.tgz", - "integrity": "sha512-wbTRjOxdFuyEg0CpumjZO0hkUl+fetJFqxNROepuLIoijQh51aMBmzFLfoQdwRjxsuuS2jizzIUTjPWgd8pd7g==", + "version": "5.3.13", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.13.tgz", + "integrity": "sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.10", - "@smithy/querystring-builder": "^4.2.10", + "@smithy/protocol-http": "^5.3.11", + "@smithy/querystring-builder": "^4.2.11", "@smithy/types": "^4.13.0", - "@smithy/util-base64": "^4.3.1", + "@smithy/util-base64": "^4.3.2", "tslib": "^2.6.2" }, "engines": { @@ -4493,13 +4514,13 @@ } }, "node_modules/@smithy/hash-blob-browser": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.11.tgz", - "integrity": "sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.12.tgz", + "integrity": "sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/chunked-blob-reader": "^5.2.1", - "@smithy/chunked-blob-reader-native": "^4.2.2", + "@smithy/chunked-blob-reader": "^5.2.2", + "@smithy/chunked-blob-reader-native": "^4.2.3", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4508,14 +4529,14 @@ } }, "node_modules/@smithy/hash-node": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.10.tgz", - "integrity": "sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.11.tgz", + "integrity": "sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", - "@smithy/util-buffer-from": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-buffer-from": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4523,13 +4544,13 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.10.tgz", - "integrity": "sha512-w78xsYrOlwXKwN5tv1GnKIRbHb1HygSpeZMP6xDxCPGf1U/xDHjCpJu64c5T35UKyEPwa0bPeIcvU69VY3khUA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-4.2.11.tgz", + "integrity": "sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4537,9 +4558,9 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.10.tgz", - "integrity": "sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.11.tgz", + "integrity": "sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4550,9 +4571,9 @@ } }, "node_modules/@smithy/is-array-buffer": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.1.tgz", - "integrity": "sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.2.tgz", + "integrity": "sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4562,13 +4583,13 @@ } }, "node_modules/@smithy/md5-js": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.10.tgz", - "integrity": "sha512-Op+Dh6dPLWTjWITChFayDllIaCXRofOed8ecpggTC5fkh8yXes0vAEX7gRUfjGK+TlyxoCAA05gHbZW/zB9JwQ==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-4.2.11.tgz", + "integrity": "sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4576,12 +4597,12 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.10.tgz", - "integrity": "sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.11.tgz", + "integrity": "sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.10", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4590,18 +4611,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.20", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.20.tgz", - "integrity": "sha512-9W6Np4ceBP3XCYAGLoMCmn8t2RRVzuD1ndWPLBbv7H9CrwM9Bprf6Up6BM9ZA/3alodg0b7Kf6ftBK9R1N04vw==", + "version": "4.4.23", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.23.tgz", + "integrity": "sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.6", - "@smithy/middleware-serde": "^4.2.11", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@smithy/core": "^3.23.9", + "@smithy/middleware-serde": "^4.2.12", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", - "@smithy/url-parser": "^4.2.10", - "@smithy/util-middleware": "^4.2.10", + "@smithy/url-parser": "^4.2.11", + "@smithy/util-middleware": "^4.2.11", "tslib": "^2.6.2" }, "engines": { @@ -4609,19 +4630,19 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.37", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.37.tgz", - "integrity": "sha512-/1psZZllBBSQ7+qo5+hhLz7AEPGLx3Z0+e3ramMBEuPK2PfvLK4SrncDB9VegX5mBn+oP/UTDrM6IHrFjvX1ZA==", + "version": "4.4.40", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.40.tgz", + "integrity": "sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/service-error-classification": "^4.2.10", - "@smithy/smithy-client": "^4.12.0", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/service-error-classification": "^4.2.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-retry": "^4.2.10", - "@smithy/uuid": "^1.1.1", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-retry": "^4.2.11", + "@smithy/uuid": "^1.1.2", "tslib": "^2.6.2" }, "engines": { @@ -4629,12 +4650,12 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.11.tgz", - "integrity": "sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.12.tgz", + "integrity": "sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.3.10", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4643,9 +4664,9 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.10.tgz", - "integrity": "sha512-pmts/WovNcE/tlyHa8z/groPeOtqtEpp61q3W0nW1nDJuMq/x+hWa/OVQBtgU0tBqupeXq0VBOLA4UZwE8I0YA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.11.tgz", + "integrity": "sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4656,13 +4677,13 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.10.tgz", - "integrity": "sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w==", + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.11.tgz", + "integrity": "sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.10", - "@smithy/shared-ini-file-loader": "^4.4.5", + "@smithy/property-provider": "^4.2.11", + "@smithy/shared-ini-file-loader": "^4.4.6", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4671,14 +4692,14 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.12.tgz", - "integrity": "sha512-zo1+WKJkR9x7ZtMeMDAAsq2PufwiLDmkhcjpWPRRkmeIuOm6nq1qjFICSZbnjBvD09ei8KMo26BWxsu2BUU+5w==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.14.tgz", + "integrity": "sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", - "@smithy/querystring-builder": "^4.2.10", + "@smithy/abort-controller": "^4.2.11", + "@smithy/protocol-http": "^5.3.11", + "@smithy/querystring-builder": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4687,9 +4708,9 @@ } }, "node_modules/@smithy/property-provider": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.10.tgz", - "integrity": "sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.11.tgz", + "integrity": "sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4700,9 +4721,9 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.10.tgz", - "integrity": "sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.11.tgz", + "integrity": "sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4713,13 +4734,13 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.10.tgz", - "integrity": "sha512-HeN7kEvuzO2DmAzLukE9UryiUvejD3tMp9a1D1NJETerIfKobBUCLfviP6QEk500166eD2IATaXM59qgUI+YDA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.11.tgz", + "integrity": "sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", - "@smithy/util-uri-escape": "^4.2.1", + "@smithy/util-uri-escape": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4727,9 +4748,9 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.10.tgz", - "integrity": "sha512-4Mh18J26+ao1oX5wXJfWlTT+Q1OpDR8ssiC9PDOuEgVBGloqg18Fw7h5Ct8DyT9NBYwJgtJ2nLjKKFU6RP1G1Q==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.11.tgz", + "integrity": "sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4740,9 +4761,9 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.10.tgz", - "integrity": "sha512-0R/+/Il5y8nB/By90o8hy/bWVYptbIfvoTYad0igYQO5RefhNCDmNzqxaMx7K1t/QWo0d6UynqpqN5cCQt1MCg==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.11.tgz", + "integrity": "sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0" @@ -4752,9 +4773,9 @@ } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.5.tgz", - "integrity": "sha512-pHgASxl50rrtOztgQCPmOXFjRW+mCd7ALr/3uXNzRrRoGV5G2+78GOsQ3HlQuBVHCh9o6xqMNvlIKZjWn4Euug==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.6.tgz", + "integrity": "sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4765,18 +4786,18 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.10.tgz", - "integrity": "sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA==", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.11.tgz", + "integrity": "sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^4.2.1", - "@smithy/protocol-http": "^5.3.10", + "@smithy/is-array-buffer": "^4.2.2", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-hex-encoding": "^4.2.1", - "@smithy/util-middleware": "^4.2.10", - "@smithy/util-uri-escape": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-hex-encoding": "^4.2.2", + "@smithy/util-middleware": "^4.2.11", + "@smithy/util-uri-escape": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4784,17 +4805,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.0.tgz", - "integrity": "sha512-R8bQ9K3lCcXyZmBnQqUZJF4ChZmtWT5NLi6x5kgWx5D+/j0KorXcA0YcFg/X5TOgnTCy1tbKc6z2g2y4amFupQ==", + "version": "4.12.3", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.3.tgz", + "integrity": "sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.23.6", - "@smithy/middleware-endpoint": "^4.4.20", - "@smithy/middleware-stack": "^4.2.10", - "@smithy/protocol-http": "^5.3.10", + "@smithy/core": "^3.23.9", + "@smithy/middleware-endpoint": "^4.4.23", + "@smithy/middleware-stack": "^4.2.11", + "@smithy/protocol-http": "^5.3.11", "@smithy/types": "^4.13.0", - "@smithy/util-stream": "^4.5.15", + "@smithy/util-stream": "^4.5.17", "tslib": "^2.6.2" }, "engines": { @@ -4814,12 +4835,12 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.10.tgz", - "integrity": "sha512-uypjF7fCDsRk26u3qHmFI/ePL7bxxB9vKkE+2WKEciHhz+4QtbzWiHRVNRJwU3cKhrYDYQE3b0MRFtqfLYdA4A==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.11.tgz", + "integrity": "sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^4.2.10", + "@smithy/querystring-parser": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4828,13 +4849,13 @@ } }, "node_modules/@smithy/util-base64": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.1.tgz", - "integrity": "sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.3.2.tgz", + "integrity": "sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-buffer-from": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4842,9 +4863,9 @@ } }, "node_modules/@smithy/util-body-length-browser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.1.tgz", - "integrity": "sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.2.tgz", + "integrity": "sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4854,9 +4875,9 @@ } }, "node_modules/@smithy/util-body-length-node": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.2.tgz", - "integrity": "sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.3.tgz", + "integrity": "sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4866,12 +4887,12 @@ } }, "node_modules/@smithy/util-buffer-from": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.1.tgz", - "integrity": "sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.2.tgz", + "integrity": "sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^4.2.1", + "@smithy/is-array-buffer": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4879,9 +4900,9 @@ } }, "node_modules/@smithy/util-config-provider": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.1.tgz", - "integrity": "sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.2.tgz", + "integrity": "sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4891,13 +4912,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.36", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.36.tgz", - "integrity": "sha512-R0smq7EHQXRVMxkAxtH5akJ/FvgAmNF6bUy/GwY/N20T4GrwjT633NFm0VuRpC+8Bbv8R9A0DoJ9OiZL/M3xew==", + "version": "4.3.39", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.39.tgz", + "integrity": "sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.2.10", - "@smithy/smithy-client": "^4.12.0", + "@smithy/property-provider": "^4.2.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4906,16 +4927,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.39", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.39.tgz", - "integrity": "sha512-otWuoDm35btJV1L8MyHrPl462B07QCdMTktKc7/yM+Psv6KbED/ziXiHnmr7yPHUjfIwE9S8Max0LO24Mo3ZVg==", + "version": "4.2.42", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.42.tgz", + "integrity": "sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.4.9", - "@smithy/credential-provider-imds": "^4.2.10", - "@smithy/node-config-provider": "^4.3.10", - "@smithy/property-provider": "^4.2.10", - "@smithy/smithy-client": "^4.12.0", + "@smithy/config-resolver": "^4.4.10", + "@smithy/credential-provider-imds": "^4.2.11", + "@smithy/node-config-provider": "^4.3.11", + "@smithy/property-provider": "^4.2.11", + "@smithy/smithy-client": "^4.12.3", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4924,12 +4945,12 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.1.tgz", - "integrity": "sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.3.2.tgz", + "integrity": "sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.3.10", + "@smithy/node-config-provider": "^4.3.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4938,9 +4959,9 @@ } }, "node_modules/@smithy/util-hex-encoding": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.1.tgz", - "integrity": "sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.2.tgz", + "integrity": "sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -4950,9 +4971,9 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.10.tgz", - "integrity": "sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.11.tgz", + "integrity": "sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==", "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.13.0", @@ -4963,12 +4984,12 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.10.tgz", - "integrity": "sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.11.tgz", + "integrity": "sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^4.2.10", + "@smithy/service-error-classification": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -4977,18 +4998,18 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.5.15", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.15.tgz", - "integrity": "sha512-OlOKnaqnkU9X+6wEkd7mN+WB7orPbCVDauXOj22Q7VtiTkvy7ZdSsOg4QiNAZMgI4OkvNf+/VLUC3VXkxuWJZw==", + "version": "4.5.17", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.17.tgz", + "integrity": "sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^5.3.11", - "@smithy/node-http-handler": "^4.4.12", + "@smithy/fetch-http-handler": "^5.3.13", + "@smithy/node-http-handler": "^4.4.14", "@smithy/types": "^4.13.0", - "@smithy/util-base64": "^4.3.1", - "@smithy/util-buffer-from": "^4.2.1", - "@smithy/util-hex-encoding": "^4.2.1", - "@smithy/util-utf8": "^4.2.1", + "@smithy/util-base64": "^4.3.2", + "@smithy/util-buffer-from": "^4.2.2", + "@smithy/util-hex-encoding": "^4.2.2", + "@smithy/util-utf8": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -4996,9 +5017,9 @@ } }, "node_modules/@smithy/util-uri-escape": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.1.tgz", - "integrity": "sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.2.tgz", + "integrity": "sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -5008,12 +5029,12 @@ } }, "node_modules/@smithy/util-utf8": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.1.tgz", - "integrity": "sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.2.tgz", + "integrity": "sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==", "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^4.2.1", + "@smithy/util-buffer-from": "^4.2.2", "tslib": "^2.6.2" }, "engines": { @@ -5021,12 +5042,12 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.10.tgz", - "integrity": "sha512-4eTWph/Lkg1wZEDAyObwme0kmhEb7J/JjibY2znJdrYRgKbKqB7YoEhhJVJ4R1g/SYih4zuwX7LpJaM8RsnTVg==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.12.tgz", + "integrity": "sha512-ek5hyDrzS6mBFsNCEX8LpM+EWSLq6b9FdmPRlkpXXhiJE6aIZehKT9clC6+nFpZAA+i/Yg0xlaPeWGNbf5rzQA==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.2.10", + "@smithy/abort-controller": "^4.2.11", "@smithy/types": "^4.13.0", "tslib": "^2.6.2" }, @@ -5035,9 +5056,9 @@ } }, "node_modules/@smithy/uuid": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.1.tgz", - "integrity": "sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.2.tgz", + "integrity": "sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -5583,9 +5604,9 @@ } }, "node_modules/axios": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", - "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.6.tgz", + "integrity": "sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.11", @@ -5593,12 +5614,6 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "license": "MIT" - }, "node_modules/backoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", @@ -6883,25 +6898,25 @@ } }, "node_modules/eslint": { - "version": "9.39.3", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.3.tgz", - "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", + "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.3", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "ajv": "^6.12.4", + "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", @@ -6920,7 +6935,7 @@ "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -7136,12 +7151,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "license": "MIT" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -7295,10 +7304,22 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-xml-builder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz", + "integrity": "sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/fast-xml-parser": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.6.tgz", - "integrity": "sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.4.2.tgz", + "integrity": "sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ==", "funding": [ { "type": "github", @@ -7306,7 +7327,9 @@ } ], "license": "MIT", + "optional": true, "dependencies": { + "fast-xml-builder": "^1.0.0", "strnum": "^2.1.2" }, "bin": { @@ -9147,12 +9170,6 @@ "node": ">=8" } }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", - "license": "MIT" - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -9611,9 +9628,9 @@ "license": "ISC" }, "node_modules/mailgun.js": { - "version": "12.7.0", - "resolved": "https://registry.npmjs.org/mailgun.js/-/mailgun.js-12.7.0.tgz", - "integrity": "sha512-TKuGxSGMdGKQDR+Ciocs0zzKNsy+ip+BwLEVatVLlJls30OigFcK61LiBBWoPrVg5D5nmKN/nDR9yKLJCERCsA==", + "version": "12.7.1", + "resolved": "https://registry.npmjs.org/mailgun.js/-/mailgun.js-12.7.1.tgz", + "integrity": "sha512-VG2zRx4hKVoLGdMDpF5Bt+lkhS6g+eWb547FR4/iozoGEszcT+uf8/0EsPBwnpfI2gYlui3aaPnQCzcFDYvGXQ==", "license": "MIT", "dependencies": { "axios": "^1.12.1", @@ -9823,18 +9840,6 @@ "dev": true, "license": "ISC" }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -9959,21 +9964,22 @@ "license": "MIT" }, "node_modules/multer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-2.0.2.tgz", - "integrity": "sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-2.1.1.tgz", + "integrity": "sha512-mo+QTzKlx8R7E5ylSXxWzGoXoZbOsRMpyitcht8By2KHvMbf3tjwosZ/Mu/XYU6UuJ3VZnODIrak5ZrPiPyB6A==", "license": "MIT", "dependencies": { "append-field": "^1.0.0", "busboy": "^1.6.0", "concat-stream": "^2.0.0", - "mkdirp": "^0.5.6", - "object-assign": "^4.1.1", - "type-is": "^1.6.18", - "xtend": "^4.0.2" + "type-is": "^1.6.18" }, "engines": { "node": ">= 10.16.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/multer-s3": { @@ -10169,9 +10175,9 @@ "license": "MIT" }, "node_modules/nodemailer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.1.tgz", - "integrity": "sha512-5kcldIXmaEjZcHR6F28IKGSgpmZHaF1IXLWFTG+Xh3S+Cce4MiakLtWY+PlBU69fLbRa8HlaGIrC/QolUpHkhg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-8.0.2.tgz", + "integrity": "sha512-zbj002pZAIkWQFxyAaqoxvn+zoIwRnS40hgjqTXudKOOJkiFFgBeNqjgD3/YCR12sZnrghWYBY+yP1ZucdDRpw==", "license": "MIT-0", "engines": { "node": ">=6.0.0" @@ -10821,9 +10827,9 @@ } }, "node_modules/parse-server": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-8.6.3.tgz", - "integrity": "sha512-dee+Ig4El65T5iubF7NzO8VLtVsNPe73UCkO7yIQCiXBojVfuByKydYzyYw2Y8HPyCRdLEPVXP1ZAGiyYLYf5A==", + "version": "8.6.40", + "resolved": "https://registry.npmjs.org/parse-server/-/parse-server-8.6.40.tgz", + "integrity": "sha512-E+Jc3RTsT4na2bzNuMtlGoxrrtRuWcUMQ+qZ7S/VpfMTGmzIE9Nuu/RY6xWuzxYocz3OtDujLhWvPeK2/nAVQA==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -10863,7 +10869,6 @@ "rate-limit-redis": "4.2.0", "redis": "4.7.0", "semver": "7.7.2", - "subscriptions-transport-ws": "0.11.0", "tv4": "1.3.0", "uuid": "11.1.0", "winston": "3.17.0", @@ -12799,23 +12804,6 @@ "license": "MIT", "optional": true }, - "node_modules/subscriptions-transport-ws": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz", - "integrity": "sha512-8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==", - "deprecated": "The `subscriptions-transport-ws` package is no longer maintained. We recommend you use `graphql-ws` instead. For help migrating Apollo software to `graphql-ws`, see https://www.apollographql.com/docs/apollo-server/data/subscriptions/#switching-from-subscriptions-transport-ws For general help using `graphql-ws`, see https://github.com/enisdenjo/graphql-ws/blob/master/README.md", - "license": "MIT", - "dependencies": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependencies": { - "graphql": "^15.7.2 || ^16.0.0" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -12828,15 +12816,6 @@ "node": ">=8" } }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", diff --git a/apps/OpenSignServer/package.json b/apps/OpenSignServer/package.json index fa52ceffb..dbce386d6 100644 --- a/apps/OpenSignServer/package.json +++ b/apps/OpenSignServer/package.json @@ -18,8 +18,8 @@ "watch": "nodemon index.js" }, "dependencies": { - "@aws-sdk/client-s3": "^3.997.0", - "@aws-sdk/s3-request-presigner": "^3.997.0", + "@aws-sdk/client-s3": "^3.1008.0", + "@aws-sdk/s3-request-presigner": "^3.1008.0", "@parse/fs-files-adapter": "^3.0.0", "@parse/push-adapter": "^8.3.1", "@parse/s3-files-adapter": "5.0.0", @@ -27,7 +27,7 @@ "@signpdf/placeholder-pdf-lib": "^3.3.0", "@signpdf/signer-p12": "^3.3.0", "@signpdf/signpdf": "^3.3.0", - "axios": "^1.13.5", + "axios": "^1.13.6", "coherentpdf": "^2.5.5", "cors": "^2.8.6", "date-fns-tz": "^3.2.0", @@ -37,17 +37,17 @@ "generate-api-key": "^1.0.2", "googleapis": "^171.4.0", "libreoffice-convert": "^1.8.1", - "mailgun.js": "^12.7.0", + "mailgun.js": "^12.7.1", "moment": "^2.30.1", "mongodb": "^7.1.0", - "multer": "^2.0.2", + "multer": "^2.1.1", "multer-s3": "^3.0.1", "node-forge": "^1.3.3", - "nodemailer": "^8.0.1", + "nodemailer": "^8.0.2", "p-limit": "^7.3.0", "parse": "^8.1.0", "parse-dbtool": "^1.2.0", - "parse-server": "^8.6.3", + "parse-server": "^8.6.40", "parse-server-api-mail-adapter": "^5.0.5", "pdf-lib": "^1.17.1", "posthog-node": "^5.21.2", @@ -60,7 +60,7 @@ "type": "module", "devDependencies": { "@babel/eslint-parser": "^7.28.6", - "eslint": "^9.39.3", + "eslint": "^9.39.4", "jasmine": "^6.1.0", "mongodb-runner": "^6.7.1", "nodemon": "^3.1.14",