diff --git a/.circleci/config.yml b/.circleci/config.yml index 23341d15d..d321bbed0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -179,37 +179,6 @@ jobs: job_type: deployment pipeline_number: << pipeline.number >> - promanager-app-build: - docker: - - image: cimg/node:18.18.2 - - working_directory: ~/repo/client - - steps: - - checkout: - path: ~/repo - - run: - name: Install Dependencies - command: npm i - - - run: npm run build:production:promanager - - - aws-cli/setup: - aws_access_key_id: AWS_ACCESS_KEY_ID - aws_secret_access_key: AWS_SECRET_ACCESS_KEY - region: AWS_REGION - - - aws-s3/sync: - from: dist - to: "s3://promanager-production/" - arguments: "--exclude '*.map'" - - jira/notify: - environment: Production (ProManager) - Front End - environment_type: production - pipeline_id: << pipeline.id >> - job_type: deployment - pipeline_number: << pipeline.number >> - test-rome-hasura-migrate: docker: - image: cimg/node:18.18.2 @@ -268,37 +237,6 @@ jobs: job_type: deployment pipeline_number: << pipeline.number >> - test-promanager-app-build: - docker: - - image: cimg/node:18.18.2 - - working_directory: ~/repo/client - - steps: - - checkout: - path: ~/repo - - run: - name: Install Dependencies - command: npm i - - - run: npm run build:test:promanager - - - aws-cli/setup: - aws_access_key_id: AWS_ACCESS_KEY_ID - aws_secret_access_key: AWS_SECRET_ACCESS_KEY - region: AWS_REGION - - - aws-s3/sync: - from: dist - to: "s3://promanager-testing/" - arguments: "--exclude '*.map'" - - jira/notify: - environment: Test (ProManager) - Front End - environment_type: testing - pipeline_id: << pipeline.id >> - job_type: deployment - pipeline_number: << pipeline.number >> - test-hasura-migrate: docker: - image: cimg/node:18.18.2 @@ -458,14 +396,6 @@ workflows: filters: branches: only: test-AIO - - test-promanager-app-build: - filters: - branches: - only: test-AIO - - promanager-app-build: - filters: - branches: - only: master-AIO - test-rome-hasura-migrate: secret: ${HASURA_ROME_TEST_SECRET} filters: diff --git a/.gitattributes b/.gitattributes index fcadb2cf9..5edcd3695 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,80 @@ +# Ensure all text files use LF for line endings * text eol=lf + +# Binary files should not be modified by Git +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.ico binary +*.webp binary +*.svg binary + +# Fonts +*.woff binary +*.woff2 binary +*.ttf binary +*.otf binary +*.eot binary + +# Videos +*.mp4 binary +*.mov binary +*.avi binary +*.mkv binary +*.webm binary + +# Audio +*.mp3 binary +*.wav binary +*.ogg binary +*.flac binary + +# Archives and compressed files +*.zip binary +*.gz binary +*.tar binary +*.7z binary +*.rar binary + +# PDF and documents +*.pdf binary +*.doc binary +*.docx binary +*.xls binary +*.xlsx binary +*.ppt binary +*.pptx binary + +# Exclude JSON and other data files from text processing, if necessary +*.json text +*.xml text +*.csv text + +# Scripts and code files should maintain LF endings +*.js text eol=lf +*.jsx text eol=lf +*.ts text eol=lf +*.tsx text eol=lf +*.css text eol=lf +*.scss text eol=lf +*.html text eol=lf +*.yml text eol=lf +*.yaml text eol=lf +*.md text eol=lf +*.sh text eol=lf +*.py text eol=lf +*.rb text eol=lf +*.java text eol=lf +*.php text eol=lf + +# Git configuration files +.gitattributes text eol=lf +.gitignore text eol=lf +*.gitattributes text eol=lf + +# Exclude some other potential binary files +*.db binary +*.sqlite binary +*.exe binary +*.dll binary diff --git a/.vscode/settings.json b/.vscode/settings.json index 74b58f715..b8f4d4e1c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -38,5 +38,6 @@ "smartscheduling", "timetickets", "touchtime" - ] + ], + "eslint.workingDirectories": ["./", "./client"] } diff --git a/_reference/JSON/BodyshopFeatures.json b/_reference/JSON/BodyshopFeatures.json index cb67a2940..ce9033828 100644 --- a/_reference/JSON/BodyshopFeatures.json +++ b/_reference/JSON/BodyshopFeatures.json @@ -10,5 +10,8 @@ "courtesycars": "date", "media": "date", "visualboard": "date", - "scoreboard": "date" + "scoreboard": "date", + "checklist": "date", + "smartscheduling" :"date", + "roguard": "date" } diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 96f83b437..6fadc58a7 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -1,4 +1,4 @@ - + - - - - + + + - - <% if (env.VITE_APP_INSTANCE === 'IMEX') { %> - - ImEX Online - - <% } %> <% if (env.VITE_APP_INSTANCE === 'ROME') { %> - - Rome Online - + <% if (env.VITE_APP_INSTANCE === 'IMEX') { %> + + ImEX Online + + <% } %> <% if (env.VITE_APP_INSTANCE === 'ROME') { %> + + Rome Online + - <% } %> <% if (env.VITE_APP_INSTANCE === 'PROMANAGER') { %> - ProManager - + <% } %> + - - - -
- - + !(function () { + for (var o = 0; o < e.length; o++) { + var r = e[o]; + n[r] = t(r); + } + })(), + (function () { + var e = document.createElement("script"); + (e.async = !0), (e.src = "https://sdk.noticeable.io/l.js"); + var n = document.head; + n.insertBefore(e, n.firstChild); + })(); + } + })(); + + + + +
+ + + diff --git a/client/package-lock.json b/client/package-lock.json index 141c819b6..795453627 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -91,6 +91,7 @@ "@dotenvx/dotenvx": "^1.14.1", "@emotion/babel-plugin": "^11.12.0", "@emotion/react": "^11.13.3", + "@eslint/js": "^9.15.0", "@sentry/webpack-plugin": "^2.22.4", "@testing-library/cypress": "^10.0.2", "browserslist": "^4.23.3", @@ -98,9 +99,11 @@ "chalk": "^5.3.0", "cross-env": "^7.0.3", "cypress": "^13.14.2", - "eslint": "^8.57.0", + "eslint": "^8.57.1", "eslint-config-react-app": "^7.0.1", "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-react": "^7.37.2", + "globals": "^15.12.0", "memfs": "^4.12.0", "os-browserify": "^0.3.0", "react-error-overlay": "6.0.11", @@ -1525,6 +1528,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.24.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.6.tgz", @@ -2537,6 +2550,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", @@ -2953,358 +2975,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/win32-x64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", @@ -3430,12 +3100,13 @@ } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", + "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@fingerprintjs/fingerprintjs": { @@ -4034,12 +3705,14 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -4052,6 +3725,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4062,6 +3736,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4086,7 +3761,9 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@icons/material": { "version": "0.2.4", @@ -5037,6 +4714,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -5221,105 +4899,6 @@ "@sentry/cli-win32-x64": "2.36.2" } }, - "node_modules/@sentry/cli-darwin": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.36.2.tgz", - "integrity": "sha512-To64Pq+pcmecEr+gFXiqaZy8oKhyLQLXO/SVDdf16CUL2qpuahE3bO5h9kFacMxPPxOWcgc2btF+4gYa1+bQTA==", - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.36.2.tgz", - "integrity": "sha512-cRSvOQK97WM0m03k/c+LVAWT042Qz887WP/2Gy64eUi/PfArwb+QZZnsu4FCygxK9jnzgLTo4+ewoJVi17xaLQ==", - "cpu": [ - "arm" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm64": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.36.2.tgz", - "integrity": "sha512-g+FFmj1oJ2iRMsfs1ORz6THOO6MiAR55K9YxdZUBvqfoHLjSMt7Jst43sbZ3O0u55hnfixSKLNzDaTGaM/jxIQ==", - "cpu": [ - "arm64" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-i686": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.36.2.tgz", - "integrity": "sha512-rjxTw/CMd0Q7qlOb7gWFiwn3hJIxNkhbn1bOU54xj9CZvQSCvh10l7l4Y9o8znJLl41c5kMXVq8yuYws9A7AGQ==", - "cpu": [ - "x86", - "ia32" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-x64": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.36.2.tgz", - "integrity": "sha512-cF8IPFTlwiC7JgVvSW4rS99sxb1W1N//iANxuzqaDswUnmJLi0AJy/jES87qE5GRB6ljaPVMvH7Kq0OCp3bvPA==", - "cpu": [ - "x64" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-win32-i686": { - "version": "2.36.2", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.36.2.tgz", - "integrity": "sha512-YDH/Kcd8JAo1Bg4jtSwF8dr7FZZ8QbYLMx8q/5eenHpq6VdOgPENsTvayLW3cAjWLcm44u8Ed/gcEK0z1IxQmQ==", - "cpu": [ - "x86", - "ia32" - ], - "license": "BSD-3-Clause", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@sentry/cli-win32-x64": { "version": "2.36.2", "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.36.2.tgz", @@ -6548,29 +6127,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", - "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.1.0", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { @@ -8860,10 +8431,11 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -8872,12 +8444,13 @@ "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2", "has-proto": "^1.0.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", + "iterator.prototype": "^1.1.3", "safe-array-concat": "^1.1.2" }, "engines": { @@ -9007,16 +8580,18 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -9358,35 +8933,36 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", - "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlast": "^1.2.4", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.17", + "es-iterator-helpers": "^1.1.0", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7", - "object.hasown": "^1.1.3", - "object.values": "^1.1.7", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.10" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { @@ -9505,6 +9081,16 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -10227,6 +9813,7 @@ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -10427,11 +10014,16 @@ "integrity": "sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==" }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -11034,6 +10626,7 @@ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -11227,6 +10820,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -11299,6 +10893,7 @@ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11422,6 +11017,7 @@ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11524,6 +11120,7 @@ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11548,6 +11145,7 @@ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4" @@ -11603,16 +11201,20 @@ "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "reflect.getprototypeof": "^1.0.4", "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jake": { @@ -13271,23 +12873,6 @@ "node": ">= 0.4" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -15219,6 +14804,7 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -16207,6 +15793,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -17866,13 +17463,14 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, + "license": "MIT", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -17881,8 +17479,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -17895,13 +17493,15 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", diff --git a/client/package.json b/client/package.json index fdb2b6b34..ae8724b9a 100644 --- a/client/package.json +++ b/client/package.json @@ -90,29 +90,18 @@ "build": "dotenvx run --env-file=.env.development.imex -- vite build", "start:imex": "dotenvx run --env-file=.env.development.imex -- vite", "start:rome": "dotenvx run --env-file=.env.development.rome -- vite", - "start:promanager": "dotenvx run --env-file=.env.development.promanager -- vite", "preview:imex": "dotenvx run --env-file=.env.development.imex -- vite preview", "preview:rome": "dotenvx run --env-file=.env.development.rome -- vite preview", - "preview:promanager": "dotenvx run --env-file=.env.development.promanager -- vite preview", "build:test:imex": "env-cmd -f .env.test.imex npm run build", "build:test:rome": "env-cmd -f .env.test.rome npm run build", - "build:test:promanager": "env-cmd -f .env.test.promanager npm run build", "build:production:imex": "env-cmd -f .env.production.imex npm run build", "build:production:rome": "env-cmd -f .env.production.rome npm run build", - "build:production:promanager": "env-cmd -f .env.production.promanager npm run build", "test": "cypress open", "eject": "react-scripts eject", "madge": "madge --image ./madge-graph.svg --extensions js,jsx,ts,tsx --circular .", "eulaize": "node src/utils/eulaize.js", "sentry:sourcemaps:imex": "sentry-cli sourcemaps inject --org imex --project imexonline ./build && sentry-cli sourcemaps upload --org imex --project imexonline ./build" }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest", - "plugin:cypress/recommended" - ] - }, "browserslist": { "production": [ ">0.2%", @@ -138,6 +127,7 @@ "@dotenvx/dotenvx": "^1.14.1", "@emotion/babel-plugin": "^11.12.0", "@emotion/react": "^11.13.3", + "@eslint/js": "^9.15.0", "@sentry/webpack-plugin": "^2.22.4", "@testing-library/cypress": "^10.0.2", "browserslist": "^4.23.3", @@ -145,9 +135,11 @@ "chalk": "^5.3.0", "cross-env": "^7.0.3", "cypress": "^13.14.2", - "eslint": "^8.57.0", + "eslint": "^8.57.1", "eslint-config-react-app": "^7.0.1", "eslint-plugin-cypress": "^2.15.1", + "eslint-plugin-react": "^7.37.2", + "globals": "^15.12.0", "memfs": "^4.12.0", "os-browserify": "^0.3.0", "react-error-overlay": "6.0.11", diff --git a/client/public/pm/pm-apple-touch-icon.png b/client/public/pm/pm-apple-touch-icon.png deleted file mode 100644 index 87d00f76f..000000000 Binary files a/client/public/pm/pm-apple-touch-icon.png and /dev/null differ diff --git a/client/public/pm/pm-favicon.ico b/client/public/pm/pm-favicon.ico deleted file mode 100644 index f0c442ef9..000000000 Binary files a/client/public/pm/pm-favicon.ico and /dev/null differ diff --git a/client/public/pm/pm-icon-192-maskable.png b/client/public/pm/pm-icon-192-maskable.png deleted file mode 100644 index 5a5db766b..000000000 Binary files a/client/public/pm/pm-icon-192-maskable.png and /dev/null differ diff --git a/client/public/pm/pm-icon-192.png b/client/public/pm/pm-icon-192.png deleted file mode 100644 index 015e99c5a..000000000 Binary files a/client/public/pm/pm-icon-192.png and /dev/null differ diff --git a/client/public/pm/pm-icon-512-maskable.png b/client/public/pm/pm-icon-512-maskable.png deleted file mode 100644 index d507e778b..000000000 Binary files a/client/public/pm/pm-icon-512-maskable.png and /dev/null differ diff --git a/client/public/pm/pm-icon-512.png b/client/public/pm/pm-icon-512.png deleted file mode 100644 index bef519032..000000000 Binary files a/client/public/pm/pm-icon-512.png and /dev/null differ diff --git a/client/src/App/App.jsx b/client/src/App/App.jsx index c2bfc0a7d..8099b09bb 100644 --- a/client/src/App/App.jsx +++ b/client/src/App/App.jsx @@ -96,8 +96,7 @@ export function App({ bodyshop, checkUserSession, currentUser, online, setOnline LogRocket.init( InstanceRenderMgr({ imex: "gvfvfw/bodyshopapp", - rome: "rome-online/rome-online", - promanager: "" // TODO: AIO Add in log rocket for promanager instances. + rome: "rome-online/rome-online" }) ); } @@ -134,8 +133,7 @@ export function App({ bodyshop, checkUserSession, currentUser, online, setOnline } @@ -144,8 +142,7 @@ export function App({ bodyshop, checkUserSession, currentUser, online, setOnline currentUser={currentUser} workspaceCode={InstanceRenderMgr({ imex: null, - rome: "9BkbEseqNqxw8jUH", - promanager: "aoJoEifvezYI0Z0P" + rome: "9BkbEseqNqxw8jUH" })} /> diff --git a/client/src/App/themeProvider.js b/client/src/App/themeProvider.js index 18bcaaa1c..5aaaef4cf 100644 --- a/client/src/App/themeProvider.js +++ b/client/src/App/themeProvider.js @@ -26,13 +26,11 @@ const defaultTheme = { token: { colorPrimary: InstanceRenderMgr({ imex: "#1890ff", - rome: "#326ade", - promanager: "#1d69a6" + rome: "#326ade" }), colorInfo: InstanceRenderMgr({ imex: "#1890ff", - rome: "#326ade", - promanager: "#1d69a6" + rome: "#326ade" }) } }; diff --git a/client/src/components/bill-form/bill-form.lines.component.jsx b/client/src/components/bill-form/bill-form.lines.component.jsx index b9576670c..ae0840cc1 100644 --- a/client/src/components/bill-form/bill-form.lines.component.jsx +++ b/client/src/components/bill-form/bill-form.lines.component.jsx @@ -228,7 +228,6 @@ export function BillEnterModalLinesComponent({ }} ) - //Do not need to set for promanager as it will default to Rome. }) }, { @@ -462,7 +461,6 @@ export function BillEnterModalLinesComponent({ ...InstanceRenderManager({ rome: [], - promanager: [], imex: [ { title: t("billlines.fields.federal_tax_applicable"), @@ -476,7 +474,6 @@ export function BillEnterModalLinesComponent({ initialValue: InstanceRenderManager({ imex: true, rome: false, - promanager: false }), name: [field.name, "applicable_taxes", "federal"] }; @@ -503,7 +500,6 @@ export function BillEnterModalLinesComponent({ ...InstanceRenderManager({ rome: [], - promanager: [], imex: [ { title: t("billlines.fields.local_tax_applicable"), diff --git a/client/src/components/bills-list-table/bills-list-table.component.jsx b/client/src/components/bills-list-table/bills-list-table.component.jsx index 5329c43b0..503751268 100644 --- a/client/src/components/bills-list-table/bills-list-table.component.jsx +++ b/client/src/components/bills-list-table/bills-list-table.component.jsx @@ -1,7 +1,8 @@ import { EditFilled, SyncOutlined } from "@ant-design/icons"; import { Button, Card, Checkbox, Input, Space, Table } from "antd"; -import React, { useState } from "react"; +import React, { useRef, useState } from "react"; import { useTranslation } from "react-i18next"; +import { FaTasks } from "react-icons/fa"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectJobReadOnly } from "../../redux/application/application.selectors"; @@ -13,8 +14,11 @@ import { alphaSort, dateSort } from "../../utils/sorters"; import { TemplateList } from "../../utils/TemplateConstants"; import BillDeleteButton from "../bill-delete-button/bill-delete-button.component"; import BillDetailEditReturnComponent from "../bill-detail-edit/bill-detail-edit-return.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockerWrapperComponent from "../lock-wrapper/lock-wrapper.component"; import PrintWrapperComponent from "../print-wrapper/print-wrapper.component"; -import { FaTasks } from "react-icons/fa"; +import UpsellComponent from "../upsell/upsell.component"; +import { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ jobRO: selectJobReadOnly, @@ -57,6 +61,7 @@ export function BillsListTableComponent({ // const search = queryString.parse(useLocation().search); // const selectedBill = search.billid; const [searchText, setSearchText] = useState(""); + const containerRef = useRef(null); const Templates = TemplateList("bill"); const bills = billsQuery.data ? billsQuery.data.bills : []; @@ -170,6 +175,8 @@ export function BillsListTableComponent({ ) : []; + const hasBillsAccess = HasFeatureAccess({ bodyshop, featureName: "bills" }); + return ( ) : null} @@ -211,6 +220,7 @@ export function BillsListTableComponent({ { e.preventDefault(); setSearchText(e.target.value); @@ -226,8 +236,13 @@ export function BillsListTableComponent({ }} columns={columns} rowKey="id" - dataSource={filteredBills} + dataSource={hasBillsAccess ? filteredBills : []} onChange={handleTableChange} + locale={{ + ...(!hasBillsAccess && { + emptyText: + }) + }} /> ); diff --git a/client/src/components/conflict/conflict.component.jsx b/client/src/components/conflict/conflict.component.jsx index 659e64080..a14209f8b 100644 --- a/client/src/components/conflict/conflict.component.jsx +++ b/client/src/components/conflict/conflict.component.jsx @@ -16,8 +16,7 @@ export default function ConflictComponent() { {t("general.labels.instanceconflictext", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} diff --git a/client/src/components/documents-local-upload/documents-local-upload.component.jsx b/client/src/components/documents-local-upload/documents-local-upload.component.jsx index d305b1677..cd756b8f2 100644 --- a/client/src/components/documents-local-upload/documents-local-upload.component.jsx +++ b/client/src/components/documents-local-upload/documents-local-upload.component.jsx @@ -6,6 +6,9 @@ import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; import { handleUpload } from "./documents-local-upload.utility"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; +import { useTranslation } from "react-i18next"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, @@ -23,17 +26,20 @@ export function DocumentsLocalUploadComponent({ allowAllTypes }) { const [fileList, setFileList] = useState([]); - + const { t } = useTranslation(); const handleDone = (uid) => { setTimeout(() => { setFileList((fileList) => fileList.filter((x) => x.uid !== uid)); }, 2000); }; + const hasMediaAccess = HasFeatureAccess({ bodyshop, featureName: "media" }); + return ( { if (f.event && f.event.percent === 100) handleDone(f.file.uid); @@ -59,7 +65,9 @@ export function DocumentsLocalUploadComponent({

-

Click or drag files to this area to upload.

+

+ {t("documents.labels.dragtoupload")} +

)}
diff --git a/client/src/components/documents-upload/documents-upload.component.jsx b/client/src/components/documents-upload/documents-upload.component.jsx index 6392575ec..0020d690a 100644 --- a/client/src/components/documents-upload/documents-upload.component.jsx +++ b/client/src/components/documents-upload/documents-upload.component.jsx @@ -7,6 +7,8 @@ import { createStructuredSelector } from "reselect"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; import formatBytes from "../../utils/formatbytes"; import { handleUpload } from "./documents-upload.utility"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, @@ -45,11 +47,13 @@ export function DocumentsUploadComponent({ setFileList((fileList) => fileList.filter((x) => x.uid !== uid)); }, 2000); }; + const hasMediaAccess = HasFeatureAccess({ bodyshop, featureName: "media" }); return ( { if (f.event && f.event.percent === 100) handleDone(f.file.uid); setFileList(f.fileList); @@ -89,7 +93,9 @@ export function DocumentsUploadComponent({

-

Click or drag files to this area to upload.

+

+ {t("documents.labels.dragtoupload")} +

{!ignoreSizeLimit && ( diff --git a/client/src/components/error-boundary/error-boundary.component.jsx b/client/src/components/error-boundary/error-boundary.component.jsx index d4683aab3..027a3caae 100644 --- a/client/src/components/error-boundary/error-boundary.component.jsx +++ b/client/src/components/error-boundary/error-boundary.component.jsx @@ -108,8 +108,7 @@ class ErrorBoundary extends React.Component { subTitle={t("general.messages.exception", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} extra={ diff --git a/client/src/components/feature-wrapper/blur-wrapper.component.jsx b/client/src/components/feature-wrapper/blur-wrapper.component.jsx new file mode 100644 index 000000000..b4e4a2129 --- /dev/null +++ b/client/src/components/feature-wrapper/blur-wrapper.component.jsx @@ -0,0 +1,142 @@ +import Dinero from "dinero.js"; +import React from "react"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { selectBodyshop } from "../../redux/user/user.selectors"; +import { HasFeatureAccess } from "./feature-wrapper.component"; +import { DateTimeFormatterFunction } from "../../utils/DateFormatter"; + +const mapStateToProps = createStructuredSelector({ + bodyshop: selectBodyshop +}); +const blurringProps = { + filter: "blur(4px)", + webkitUserSelect: "none", + msUserSelect: "none", + mozUserSelect: "none", + userSelect: "none", + pointerEvents: "none" +}; + +export function BlurWrapper({ + bodyshop, + featureName, + styleProp = "style", + valueProp = "value", + overrideValue = true, + overrideValueFunction, + children, + debug, + bypass +}) { + if (import.meta.env.DEV) { + if (!ValidateFeatureName(featureName)) console.trace("*** INVALID FEATURE NAME", featureName); + } + + if (debug) { + console.trace("*** DEBUG MODE", featureName); + console.log("*** HAS FEATURE ACCESS?", featureName, HasFeatureAccess({ featureName, bodyshop })); + console.log( + "***LOG ~ All Blur Wrapper Props ", + styleProp, + valueProp, + overrideValue, + overrideValueFunction, + children, + debug, + bypass + ); + } + + if (bypass) { + console.trace("*** BYPASS USED", featureName); + return children; + } + + if (!HasFeatureAccess({ featureName, bodyshop })) { + const childrenWithBlurProps = React.Children.map(children, (child) => { + if (React.isValidElement(child)) { + //Clone the child, and spread in our props to overwrite it. + let newValueProp; + if (!overrideValue) { + newValueProp = child.props[valueProp]; + } else { + if (typeof overrideValueFunction === "function") { + newValueProp = overrideValueFunction(); + } else if (typeof overrideValueFunction === "string" && overrideValueFunction === "RandomDinero") { + newValueProp = RandomDinero(); + } else if (typeof overrideValueFunction === "string" && overrideValueFunction === "RandomAmount") { + newValueProp = RandomAmount(); + } else if ( + typeof overrideValueFunction === "string" && + overrideValueFunction.startsWith("RandomSmallString") + ) { + newValueProp = RandomSmallString(overrideValueFunction.split(":")[1] || 3); //Default back to 3 words, otherwise use the string. + } else if (typeof overrideValueFunction === "string" && overrideValueFunction.startsWith("RandomDate")) { + newValueProp = RandomDate(); + } else { + newValueProp = "This is some random text. Nothing interesting here."; + } + } + + return React.cloneElement(child, { + [valueProp]: newValueProp, + [styleProp]: { ...child.props[styleProp], ...blurringProps } + }); + } + return child; + }); + + return childrenWithBlurProps; + } + + return children; +} +export default connect(mapStateToProps, null)(BlurWrapper); + +function RandomDinero() { + return Dinero({ amount: Math.round(Math.exp(Math.random() * 10, 2)) }).toFormat(); +} +function RandomAmount() { + return Math.round(Math.exp(Math.random() * 10)); +} + +function RandomSmallString(maxWords = 3) { + const words = ["lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"]; + const wordCount = Math.floor(Math.random() * maxWords) + 1; // Random number between 1 and 3 + let result = []; + for (let i = 0; i < wordCount; i++) { + const randomIndex = Math.floor(Math.random() * words.length); + result.push(words[randomIndex]); + } + return result.join(" "); +} +function RandomDate() { + return DateTimeFormatterFunction(new Date(Math.floor(Math.random() * 1000000000000))); +} + +const featureNameList = [ + "mobile", + "allAccess", + "audit", + "timetickets", + "payments", + "partsorders", + "bills", + "export", + "csi", + "courtesycars", + "media", + "visualboard", + "scoreboard", + "techconsole", + "checklist", + "smartscheduling", + "roguard", + "dashboard", + "lifecycle" +]; + +export function ValidateFeatureName(featureName) { + return featureNameList.includes(featureName); +} diff --git a/client/src/components/feature-wrapper/feature-wrapper.component.jsx b/client/src/components/feature-wrapper/feature-wrapper.component.jsx index 4b71318b7..8f9cb971d 100644 --- a/client/src/components/feature-wrapper/feature-wrapper.component.jsx +++ b/client/src/components/feature-wrapper/feature-wrapper.component.jsx @@ -1,48 +1,69 @@ -import dayjs from "../../utils/day"; import React from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; -import AlertComponent from "../alert/alert.component"; +import dayjs from "../../utils/day"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import AlertComponent from "../alert/alert.component"; +import { ValidateFeatureName } from "./blur-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop }); -function FeatureWrapper({ bodyshop, featureName, noauth, children, ...restProps }) { +function FeatureWrapper({ + bodyshop, + featureName, + noauth, + blurContent, + children, + upsellComponent, + ...restProps +}) { const { t } = useTranslation(); + if (import.meta.env.DEV) { + if (!ValidateFeatureName(featureName)) console.trace("*** INVALID FEATURE NAME", featureName); + } + + if (upsellComponent) { + console.error("*** Upsell component passed in. This is not yet implemented."); + } if (HasFeatureAccess({ featureName, bodyshop })) return children; - return ( - noauth || ( - - ) - ); + if (blurContent) { + const childrenWithBlurProps = React.Children.map(children, (child) => { + // Checking isValidElement is the safe way and avoids a + // typescript error too. + if (React.isValidElement(child)) { + return React.cloneElement(child, { blur: true }); + } + return child; + }); + return childrenWithBlurProps; + } else { + return ( + noauth || ( + + ) + ); + } } -export function HasFeatureAccess({ featureName, bodyshop }) { +export function HasFeatureAccess({ featureName, bodyshop, debug = false }) { + if (debug) { + console.trace(`*** HasFeatureAccessFunction called with feature << ${featureName} >>`); + } return bodyshop?.features?.allAccess || dayjs(bodyshop?.features[featureName]).isAfter(dayjs()); } export default connect(mapStateToProps, null)(FeatureWrapper); - -/* -dashboard -production-board -scoreboard -csi -tech-console -mobile-imaging -*/ diff --git a/client/src/components/header/header.component.jsx b/client/src/components/header/header.component.jsx index 341e19ba0..5ac82ddc0 100644 --- a/client/src/components/header/header.component.jsx +++ b/client/src/components/header/header.component.jsx @@ -26,8 +26,7 @@ import Icon, { UserOutlined } from "@ant-design/icons"; import { useSplitTreatments } from "@splitsoftware/splitio-react"; -import { Layout, Menu } from "antd"; -import React from "react"; +import { Layout, Menu, Space } from "antd"; import { useTranslation } from "react-i18next"; import { BsKanban } from "react-icons/bs"; import { FaCalendarAlt, FaCarCrash, FaCreditCard, FaFileInvoiceDollar, FaTasks } from "react-icons/fa"; @@ -44,6 +43,7 @@ import { signOutStart } from "../../redux/user/user.actions"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockWrapper from "../lock-wrapper/lock-wrapper.component"; const mapStateToProps = createStructuredSelector({ currentUser: selectCurrentUser, @@ -128,34 +128,39 @@ function Header({ const accountingChildren = []; - if ( - InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "bills", bodyshop }) - }) - ) { - accountingChildren.push( - { - key: "bills", - id: "header-accounting-bills", - icon: , - label: {t("menus.header.bills")} - }, - { - key: "enterbills", - id: "header-accounting-enterbills", - icon: , - label: t("menus.header.enterbills"), - onClick: () => { + accountingChildren.push( + { + key: "bills", + id: "header-accounting-bills", + icon: , + label: ( + + + {t("menus.header.bills")} + + + ) + }, + { + key: "enterbills", + id: "header-accounting-enterbills", + icon: , + label: ( + + + {t(t("menus.header.enterbills"))} + + + ), + onClick: () => { + HasFeatureAccess({ featureName: "bills", bodyshop }) && setBillEnterContext({ actions: {}, context: {} }); - } } - ); - } + } + ); if (Simple_Inventory.treatment === "on") { accountingChildren.push( @@ -170,37 +175,41 @@ function Header({ } ); } - if ( - InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "payments", bodyshop }) - }) - ) { - accountingChildren.push( - { - type: "divider" - }, - { - key: "allpayments", - id: "header-accounting-allpayments", - icon: , - label: {t("menus.header.allpayments")} - }, - { - key: "enterpayments", - id: "header-accounting-enterpayments", - icon: , - label: t("menus.header.enterpayment"), - onClick: () => { + + accountingChildren.push( + { + type: "divider" + }, + { + key: "allpayments", + id: "header-accounting-allpayments", + icon: , + label: ( + + + {t("menus.header.allpayments")} + + + ) + }, + { + key: "enterpayments", + id: "header-accounting-enterpayments", + icon: , + label: ( + + {t("menus.header.enterpayment")} + + ), + onClick: () => { + HasFeatureAccess({ featureName: "payments", bodyshop }) && setPaymentContext({ actions: {}, context: null }); - } } - ); - } + } + ); if (ImEXPay.treatment === "on") { accountingChildren.push({ @@ -217,40 +226,44 @@ function Header({ }); } - if ( - InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) - }) - ) { - accountingChildren.push( - { - type: "divider" - }, - { - key: "timetickets", - id: "header-accounting-timetickets", - icon: , - label: {t("menus.header.timetickets")} - } - ); - - if (bodyshop?.md_tasks_presets?.use_approvals) { - accountingChildren.push({ - key: "ttapprovals", - id: "header-accounting-ttapprovals", - icon: , - label: {t("menus.header.ttapprovals")} - }); + accountingChildren.push( + { + type: "divider" + }, + { + key: "timetickets", + id: "header-accounting-timetickets", + icon: , + label: ( + + + {t("menus.header.timetickets")} + + + ) } - accountingChildren.push( - { - key: "entertimetickets", - icon: , - label: t("menus.header.entertimeticket"), - id: "header-accounting-entertimetickets", - onClick: () => { + ); + + if (bodyshop?.md_tasks_presets?.use_approvals) { + accountingChildren.push({ + key: "ttapprovals", + id: "header-accounting-ttapprovals", + icon: , + label: {t("menus.header.ttapprovals")} + }); + } + accountingChildren.push( + { + key: "entertimetickets", + icon: , + label: ( + + {t("menus.header.entertimeticket")} + + ), + id: "header-accounting-entertimetickets", + onClick: () => { + HasFeatureAccess({ featureName: "timetickets", bodyshop }) && setTimeTicketContext({ actions: {}, context: { @@ -259,19 +272,24 @@ function Header({ : currentUser.email } }); - } - }, - { - type: "divider" } - ); - } + }, + { + type: "divider" + } + ); const accountingExportChildren = [ { key: "receivables", id: "header-accounting-receivables", - label: {t("menus.header.accounting-receivables")} + label: ( + + + {t("menus.header.accounting-receivables")} + + + ) } ]; @@ -279,7 +297,13 @@ function Header({ accountingExportChildren.push({ key: "payables", id: "header-accounting-payables", - label: {t("menus.header.accounting-payables")} + label: ( + + + {t("menus.header.accounting-payables")} + + + ) }); } @@ -287,7 +311,13 @@ function Header({ accountingExportChildren.push({ key: "payments", id: "header-accounting-payments", - label: {t("menus.header.accounting-payments")} + label: ( + + + {t("menus.header.accounting-payments")} + + + ) }); } @@ -298,25 +328,27 @@ function Header({ { key: "exportlogs", id: "header-accounting-exportlogs", - label: {t("menus.header.export-logs")} + label: ( + + + {t("menus.header.export-logs")} + + + ) } ); - if ( - InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "export", bodyshop }) - }) - ) { - accountingChildren.push({ - key: "accountingexport", - id: "header-accounting-export", - icon: , - label: t("menus.header.export"), - children: accountingExportChildren - }); - } + accountingChildren.push({ + key: "accountingexport", + id: "header-accounting-export", + icon: , + label: ( + + {t("menus.header.export")} + + ), + children: accountingExportChildren + }); const menuItems = [ { @@ -385,38 +417,35 @@ function Header({ icon: , label: {t("menus.header.productionlist")} }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "visualboard", bodyshop }) - }) - ? [ - { - key: "productionboard", - id: "header-production-board", - icon: , - label: {t("menus.header.productionboard")} - } - ] - : []), - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "scoreboard", bodyshop }) - }) - ? [ - { - type: "divider" - }, - { - key: "scoreboard", - id: "header-scoreboard", - icon: , - label: {t("menus.header.scoreboard")} - } - ] - : []) + { + key: "productionboard", + id: "header-production-board", + icon: , + label: ( + + + {t("menus.header.productionboard")} + + + ) + }, + + { + type: "divider" + }, + { + key: "scoreboard", + id: "header-scoreboard", + icon: , + label: ( + + + {t("menus.header.scoreboard")} + + + ) + } ] }, { @@ -439,40 +468,54 @@ function Header({ } ] }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: false // HasFeatureAccess({ featureName: 'courtesycars', bodyshop }), - }) - ? [ - { - key: "ccs", - id: "header-css", - icon: , - label: t("menus.header.courtesycars"), - children: [ - { - key: "courtesycarsall", - id: "header-courtesycars-all", - icon: , - label: {t("menus.header.courtesycars-all")} - }, - { - key: "contracts", - id: "header-contracts", - icon: , - label: {t("menus.header.courtesycars-contracts")} - }, - { - key: "newcontract", - id: "header-newcontract", - icon: , - label: {t("menus.header.courtesycars-newcontract")} - } - ] - } - ] - : []), + { + key: "ccs", + id: "header-css", + icon: , + label: ( + + {t("menus.header.courtesycars")} + + ), + children: [ + { + key: "courtesycarsall", + id: "header-courtesycars-all", + icon: , + label: ( + + + {t("menus.header.courtesycars-all")} + + + ) + }, + { + key: "contracts", + id: "header-contracts", + icon: , + label: ( + + + {t("menus.header.courtesycars-contracts")} + + + ) + }, + { + key: "newcontract", + id: "header-newcontract", + icon: , + label: ( + + + {t("menus.header.courtesycars-newcontract")} + + + ) + } + ] + }, ...(accountingChildren.length > 0 ? [ @@ -491,20 +534,20 @@ function Header({ icon: , label: {t("menus.header.phonebook")} }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "media", bodyshop }) - }) - ? [ - { - key: "temporarydocs", - id: "header-temporarydocs", - icon: , - label: {t("menus.header.temporarydocs")} - } - ] - : []), + + { + key: "temporarydocs", + id: "header-temporarydocs", + icon: , + label: ( + + + {t("menus.header.temporarydocs")} + + + ) + }, + { key: "tasks", id: "tasks", @@ -550,7 +593,11 @@ function Header({ key: "dashboard", id: "header-dashboard", icon: , - label: {t("menus.header.dashboard")} + label: ( + + {t("menus.header.dashboard")} + + ) }, { key: "reportcenter", @@ -570,20 +617,19 @@ function Header({ icon: , label: {t("menus.header.shop_vendors")} }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "csi", bodyshop }) - }) - ? [ - { - key: "shop-csi", - id: "header-shop-csi", - icon: , - label: {t("menus.header.shop_csi")} - } - ] - : []) + + { + key: "shop-csi", + id: "header-shop-csi", + icon: , + label: ( + + + {t("menus.header.shop_csi")} + + + ) + } ] }, { @@ -607,8 +653,7 @@ function Header({ window.open( InstanceRenderManager({ imex: "https://help.imex.online/", - rome: "https://rometech.com//", - promanager: "https://web-est.com" + rome: "https://rometech.com//" }), "_blank" @@ -617,8 +662,7 @@ function Header({ }, ...(InstanceRenderManager({ imex: true, - rome: false, - promanager: false + rome: false }) ? [ { @@ -632,20 +676,19 @@ function Header({ ] : []), - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) - }) - ? [ - { - key: "shiftclock", - id: "header-shiftclock", - icon: , - label: {t("menus.header.shiftclock")} - } - ] - : []), + { + key: "shiftclock", + id: "header-shiftclock", + icon: , + label: ( + + + {t("menus.header.shiftclock")} + + + ) + }, + { key: "profile", id: "header-profile", diff --git a/client/src/components/job-audit-trail/job-audit-trail.component.jsx b/client/src/components/job-audit-trail/job-audit-trail.component.jsx index 421733e48..5332b709b 100644 --- a/client/src/components/job-audit-trail/job-audit-trail.component.jsx +++ b/client/src/components/job-audit-trail/job-audit-trail.component.jsx @@ -1,23 +1,27 @@ +import { SyncOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client"; import { Button, Card, Col, Row, Table, Tag } from "antd"; -import { SyncOutlined } from "@ant-design/icons"; import React from "react"; import { useTranslation } from "react-i18next"; -import { QUERY_AUDIT_TRAIL } from "../../graphql/audit_trail.queries"; -import { DateTimeFormatter } from "../../utils/DateFormatter"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; -import { selectCurrentUser } from "../../redux/user/user.selectors"; +import { QUERY_AUDIT_TRAIL } from "../../graphql/audit_trail.queries"; +import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; +import { DateTimeFormatter } from "../../utils/DateFormatter"; +import BlurWrapperComponent from "../feature-wrapper/blur-wrapper.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ - currentUser: selectCurrentUser + currentUser: selectCurrentUser, + bodyshop: selectBodyshop }); const mapDispatchToProps = (dispatch) => ({ //setUserLanguage: language => dispatch(setUserLanguage(language)) }); export default connect(mapStateToProps, mapDispatchToProps)(JobAuditTrail); -export function JobAuditTrail({ currentUser, jobId }) { +export function JobAuditTrail({ bodyshop, currentUser, jobId }) { const { t } = useTranslation(); const { loading, data, refetch } = useQuery(QUERY_AUDIT_TRAIL, { variables: { jobid: jobId }, @@ -41,7 +45,12 @@ export function JobAuditTrail({ currentUser, jobId }) { { title: t("audit.fields.operation"), dataIndex: "operation", - key: "operation" + key: "operation", + render: (text, record) => ( + +
{text}
+
+ ) } ]; const emailColumns = [ @@ -64,52 +73,84 @@ export function JobAuditTrail({ currentUser, jobId }) { dataIndex: "to", key: "to", - render: (text, record) => record.to && record.to.map((email, idx) => {email}) + render: (text, record) => + record.to && + record.to.map((email, idx) => ( + + +
{email}
+
+
+ )) }, { title: t("audit.fields.cc"), dataIndex: "cc", key: "cc", - render: (text, record) => record.cc && record.cc.map((email, idx) => {email}) + render: (text, record) => + record.cc && + record.cc.map((email, idx) => ( + + +
{email}
+
+
+ )) }, { title: t("audit.fields.subject"), dataIndex: "subject", - key: "subject" + key: "subject", + render: (text, record) => ( + +
{text}
+
+ ) }, { title: t("audit.fields.status"), dataIndex: "status", - key: "status" + key: "status", + render: (text, record) => ( + +
{text}
+
+ ) }, - ...(currentUser?.email.includes("@imex.") - ? [ - { - title: t("audit.fields.contents"), - dataIndex: "contents", - key: "contents", - width: "10%", - render: (text, record) => ( - - ) - } - ] - : []) + + { + title: t("audit.fields.contents"), + dataIndex: "contents", + key: "contents", + width: "10%", + render: (text, record) => ( + + ) + } ]; + + const hasAuditAccess = HasFeatureAccess({ bodyshop, featureName: "audit" }); return ( + {!hasAuditAccess && ( + + + + + + )} ({ + //setUserLanguage: language => dispatch(setUserLanguage(language)) +}); + +export function JobBillsTotalComponent({ + bodyshop, loading, bills, partsOrders, @@ -18,7 +32,7 @@ export default function JobBillsTotalComponent({ const { t } = useTranslation(); if (loading) return ; - if (!!!jobTotals) { + if (!jobTotals) { if (showWarning && warningCallback && typeof warningCallback === "function") { warningCallback({ key: "bills", warning: t("jobs.errors.nofinancial") }); } @@ -97,8 +111,7 @@ export default function JobBillsTotalComponent({ .add( InstanceRenderManager({ imex: Dinero(), - rome: Dinero(totals.additional.additionalCosts), - promanager: "USE_ROME" + rome: Dinero(totals.additional.additionalCosts) }) ); // Additional costs were captured for Rome, but not imex. @@ -120,10 +133,10 @@ export default function JobBillsTotalComponent({ warningCallback({ key: "cm", warning: t("jobs.labels.outstanding_credit_memos") }); } } - + const hasBillsAccess = HasFeatureAccess({ bodyshop, featureName: "bills" }); return ( - + } > - + + + = } > - + + + + } > - + + + = } > - + + + + } > - + + + = } > - + + + - {showWarning && (discrepWithCms.getAmount() !== 0 || discrepWithLbrAdj.getAmount() !== 0 || @@ -253,7 +277,9 @@ export default function JobBillsTotalComponent({ /> } > - + + + } > - = 0 - ? calculatedCreditsNotReceived.toFormat() - : Dinero().toFormat() - } - /> + + = 0 + ? calculatedCreditsNotReceived.toFormat() + : Dinero().toFormat() + } + /> + } > - = 0 - ? totalReturnsMarkedNotReceived.toFormat() - : Dinero().toFormat() - } - /> + + = 0 + ? totalReturnsMarkedNotReceived.toFormat() + : Dinero().toFormat() + } + /> +
{showWarning && calculatedCreditsNotReceived.getAmount() > 0 && ( @@ -303,6 +333,15 @@ export default function JobBillsTotalComponent({ )} + {!hasBillsAccess && ( + + + + + + )} ); } + +export default connect(mapStateToProps, mapDispatchToProps)(JobBillsTotalComponent); diff --git a/client/src/components/job-detail-cards/job-detail-cards.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.component.jsx index 8374dec90..204c956db 100644 --- a/client/src/components/job-detail-cards/job-detail-cards.component.jsx +++ b/client/src/components/job-detail-cards/job-detail-cards.component.jsx @@ -47,7 +47,7 @@ export function JobDetailCards({ bodyshop, setPrintCenterContext }) { md: "100%", lg: "75%", xl: "75%", - xxl: "60%" + xxl: "75%" }; const drawerPercentage = selectedBreakpoint ? bpoints[selectedBreakpoint[0]] : "100%"; diff --git a/client/src/components/job-detail-cards/job-detail-cards.documents.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.documents.component.jsx index 88ebfdde7..3129eaab7 100644 --- a/client/src/components/job-detail-cards/job-detail-cards.documents.component.jsx +++ b/client/src/components/job-detail-cards/job-detail-cards.documents.component.jsx @@ -3,6 +3,7 @@ import React from "react"; import { useTranslation } from "react-i18next"; import { GenerateThumbUrl } from "../jobs-documents-gallery/job-documents.utility"; import CardTemplate from "./job-detail-cards.template.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; export default function JobDetailCardsDocumentsComponent({ loading, data }) { const { t } = useTranslation(); @@ -20,15 +21,17 @@ export default function JobDetailCardsDocumentsComponent({ loading, data }) { title={t("jobs.labels.cards.documents")} extraLink={`/manage/jobs/${data.id}?tab=documents`} > - {data.documents.length > 0 ? ( - - {data.documents.map((item) => ( - {item.name} - ))} - - ) : ( -
{t("documents.errors.nodocuments")}
- )} + + {data.documents.length > 0 ? ( + + {data.documents.map((item) => ( + {item.name} + ))} + + ) : ( +
{t("documents.errors.nodocuments")}
+ )} +
); } diff --git a/client/src/components/job-detail-lines/job-lines-expander.component.jsx b/client/src/components/job-detail-lines/job-lines-expander.component.jsx index 2d932bba5..523daed8e 100644 --- a/client/src/components/job-detail-lines/job-lines-expander.component.jsx +++ b/client/src/components/job-detail-lines/job-lines-expander.component.jsx @@ -12,9 +12,10 @@ import { selectBodyshop } from "../../redux/user/user.selectors"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import { DateFormatter } from "../../utils/DateFormatter"; import AlertComponent from "../alert/alert.component"; -import BillDetailEditcontainer from "../bill-detail-edit/bill-detail-edit.container.jsx"; -import FeatureWrapper from "../feature-wrapper/feature-wrapper.component.jsx"; -import TaskListContainer from "../task-list/task-list.container.jsx"; +import BillDetailEditcontainer from "../bill-detail-edit/bill-detail-edit.container"; + +import BlurWrapper from "../feature-wrapper/blur-wrapper.component"; +import TaskListContainer from "../task-list/task-list.container"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -82,7 +83,7 @@ export function JobLinesExpander({ jobline, jobid, bodyshop, technician }) { } ] } - />{" "} + /> {t("parts_dispatch.labels.parts_dispatch")} @@ -117,57 +118,61 @@ export function JobLinesExpander({ jobline, jobid, bodyshop, technician }) { } /> - null}> - - {t("bills.labels.bills")} - - 0 - ? data.billlines.map((line) => ({ - key: line.id, + + + {t("bills.labels.bills")} + + 0 + ? data.billlines.map((line) => ({ + key: line.id, + children: ( + + + {!technician ? ( + <> + + {line.bill.invoice_number} + + + ) : ( + `${line.bill.invoice_number}` + )} + + + + {`${t("billlines.fields.actual_price")}: `} + {line.actual_price} + + + + + {`${t("billlines.fields.actual_cost")}: `} + {line.actual_cost} + + + + {line.bill.date} + + {line.bill.vendor.name} + + ) + })) + : [ + { + key: "no-orders", children: ( - - - {!technician ? ( - <> - - {line.bill.invoice_number} - - - ) : ( - `${line.bill.invoice_number}` - )} - - - - {`${t("billlines.fields.actual_price")}: `} - {line.actual_price} - - - - - {`${t("billlines.fields.actual_cost")}: `} - {line.actual_cost} - - - - {line.bill.date} - - {line.bill.vendor.name} - + + {t("bills.labels.nobilllines")} + ) - })) - : [ - { - key: "no-orders", - children: t("bills.labels.nobilllines") - } - ] - } - /> - - + } + ] + } + /> + + - - ), - promanager: null + ) }); return ( diff --git a/client/src/components/job-employee-assignments/job-employee-assignments.component.jsx b/client/src/components/job-employee-assignments/job-employee-assignments.component.jsx index bfa226edb..85e037e86 100644 --- a/client/src/components/job-employee-assignments/job-employee-assignments.component.jsx +++ b/client/src/components/job-employee-assignments/job-employee-assignments.component.jsx @@ -158,8 +158,7 @@ export function JobEmployeeAssignments({ label={t( InstanceRenderManager({ imex: "jobs.fields.employee_csr", - rome: "jobs.fields.employee_csr_writer", - promanager: "USE_ROME" + rome: "jobs.fields.employee_csr_writer" }) )} > diff --git a/client/src/components/job-lifecycle/job-lifecycle.component.jsx b/client/src/components/job-lifecycle/job-lifecycle.component.jsx index e648ad4d5..ad779b858 100644 --- a/client/src/components/job-lifecycle/job-lifecycle.component.jsx +++ b/client/src/components/job-lifecycle/job-lifecycle.component.jsx @@ -8,6 +8,8 @@ import { isEmpty } from "lodash"; import { useTranslation } from "react-i18next"; import "./job-lifecycle.styles.scss"; +import BlurWrapperComponent from "../feature-wrapper/blur-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; // show text on bar if text can fit export function JobLifecycleComponent({ job, statuses, ...rest }) { @@ -65,14 +67,23 @@ export function JobLifecycleComponent({ job, statuses, ...rest }) { { title: t("job_lifecycle.columns.value"), dataIndex: "value", - key: "value" + key: "value", + render: (text, record) => ( + + {text} + + ) }, { title: t("job_lifecycle.columns.start"), dataIndex: "start", key: "start", - render: (text) => DateTimeFormatterFunction(text), - sorter: (a, b) => dayjs(a.start).unix() - dayjs(b.start).unix() + sorter: (a, b) => dayjs(a.start).unix() - dayjs(b.start).unix(), + render: (text, record) => ( + + {DateTimeFormatterFunction(text)} + + ) }, { title: t("job_lifecycle.columns.relative_start"), @@ -92,7 +103,12 @@ export function JobLifecycleComponent({ job, statuses, ...rest }) { } return dayjs(a.end).unix() - dayjs(b.end).unix(); }, - render: (text) => (isEmpty(text) ? t("job_lifecycle.content.not_available") : DateTimeFormatterFunction(text)) + + render: (text, record) => ( + + {isEmpty(text) ? t("job_lifecycle.content.not_available") : DateTimeFormatterFunction(text)} + + ) }, { title: t("job_lifecycle.columns.relative_end"), @@ -122,67 +138,72 @@ export function JobLifecycleComponent({ job, statuses, ...rest }) { } style={{ width: "100%" }} > -
- {lifecycleData.durations.summations.map((key, index, array) => { - const isFirst = index === 0; - const isLast = index === array.length - 1; - return ( -
+ + + +
+ {lifecycleData.durations.summations.map((key, index, array) => { + const isFirst = index === 0; + const isLast = index === array.length - 1; + return ( +
- {key.percentage > 15 ? ( - <> -
{key.roundedPercentage}
-
- {key.status} -
- - ) : null} -
- ); - })} -
+ backgroundColor: key.color, + width: `${key.percentage}%` + }} + aria-label={`${key.status} | ${key.roundedPercentage} | ${key.humanReadable}`} + title={`${key.status} | ${key.roundedPercentage} | ${key.humanReadable}`} + > + {key.percentage > 15 ? ( + <> +
{key.roundedPercentage}
+
+ {key.status} +
+ + ) : null} +
+ ); + })} +
+
{lifecycleData.durations.summations.map((key) => ( @@ -197,7 +218,15 @@ export function JobLifecycleComponent({ job, statuses, ...rest }) { textAlign: "center" }} > - {key.status} ({key.roundedPercentage}) + {key.status} ( + + {key.roundedPercentage} + + )
))} diff --git a/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx b/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx index e17368ed9..8b5c9c1c2 100644 --- a/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx +++ b/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx @@ -1,19 +1,31 @@ -import { useLazyQuery, useMutation } from "@apollo/client"; import { CheckCircleOutlined } from "@ant-design/icons"; +import { useLazyQuery, useMutation } from "@apollo/client"; import { Button, Card, Form, InputNumber, notification, Popover, Space } from "antd"; -import dayjs from "../../utils/day"; import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; import { logImEXEvent } from "../../firebase/firebase.utils"; import { INSERT_SCOREBOARD_ENTRY, QUERY_SCOREBOARD_ENTRY, UPDATE_SCOREBOARD_ENTRY } from "../../graphql/scoreboard.queries"; -import LoadingSpinner from "../loading-spinner/loading-spinner.component"; +import { selectBodyshop } from "../../redux/user/user.selectors.js"; +import dayjs from "../../utils/day"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component.jsx"; import DateTimePicker from "../form-date-time-picker/form-date-time-picker.component.jsx"; +import LoadingSpinner from "../loading-spinner/loading-spinner.component"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component.jsx"; -export default function ScoreboardAddButton({ job, disabled, ...otherBtnProps }) { +const mapStateToProps = createStructuredSelector({ + bodyshop: selectBodyshop +}); +const mapDispatchToProps = (dispatch) => ({ + //setUserLanguage: language => dispatch(setUserLanguage(language)) +}); + +export function ScoreboardAddButton({ bodyshop, job, disabled, ...otherBtnProps }) { const { t } = useTranslation(); const [insertScoreboardEntry] = useMutation(INSERT_SCOREBOARD_ENTRY); const [updateScoreboardEntry] = useMutation(UPDATE_SCOREBOARD_ENTRY); @@ -162,12 +174,14 @@ export default function ScoreboardAddButton({ job, disabled, ...otherBtnProps }) setVisibility(true); setLoading(false); }; - + const hasScoreboardAccess = HasFeatureAccess({ bodyshop, featureName: "scoreboard" }); return ( - ); } + +export default connect(mapStateToProps, mapDispatchToProps)(ScoreboardAddButton); diff --git a/client/src/components/job-totals-table/job-totals.table.labor.component.jsx b/client/src/components/job-totals-table/job-totals.table.labor.component.jsx index 5725bf6ef..e643f3e7f 100644 --- a/client/src/components/job-totals-table/job-totals.table.labor.component.jsx +++ b/client/src/components/job-totals-table/job-totals.table.labor.component.jsx @@ -96,8 +96,7 @@ export default function JobTotalsTableLabor({ job }) { sortOrder: state.sortedInfo.columnKey === "total" && state.sortedInfo.order, render: (text, record) => Dinero(record.total).toFormat() } - ], - promanager: "USE_ROME" + ] }) ]; @@ -131,8 +130,7 @@ export default function JobTotalsTableLabor({ job }) { - ), - promanager: "USE_ROME" + ) })} {Dinero(job.job_totals.rates.rates_subtotal).toFormat()} @@ -185,8 +183,7 @@ export default function JobTotalsTableLabor({ job }) { {Dinero(job.job_totals.rates.mapa.total).toFormat()} - ), - promanager: "USE_ROME" + ) })} @@ -236,8 +233,7 @@ export default function JobTotalsTableLabor({ job }) { {Dinero(job.job_totals.rates.mash.total).toFormat()} - ), - promanager: "USE_ROME" + ) })} @@ -253,8 +249,7 @@ export default function JobTotalsTableLabor({ job }) { - ), - promanager: "USE_ROME" + ) })} {Dinero(job.job_totals.rates.subtotal).toFormat()} diff --git a/client/src/components/job-totals-table/job-totals.table.totals.component.jsx b/client/src/components/job-totals-table/job-totals.table.totals.component.jsx index 426980105..41e49430d 100644 --- a/client/src/components/job-totals-table/job-totals.table.totals.component.jsx +++ b/client/src/components/job-totals-table/job-totals.table.totals.component.jsx @@ -59,7 +59,6 @@ export function JobTotalsTableTotals({ bodyshop, job }) { total: job.job_totals.totals.federal_tax } ], - promanager: "USE_ROME", rome: job.job_totals.totals.us_sales_tax_breakdown ? [ { @@ -183,7 +182,6 @@ export function JobTotalsTableTotals({ bodyshop, job }) { } ], rome: [], - promanager: "USE_ROME" }), { key: t("jobs.fields.other_amount_payable"), diff --git a/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx b/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx index 70e1b9ad3..3277375a8 100644 --- a/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx +++ b/client/src/components/jobs-admin-delete-intake/jobs-admin-delete-intake.component.jsx @@ -51,7 +51,6 @@ export default function JobAdminDeleteIntake({ job }) { const InstanceRender = InstanceRenderManager({ imex: true, rome: "USE_IMEX", - promanager: false }); return InstanceRender ? ( diff --git a/client/src/components/jobs-available-table/jobs-available-table.container.jsx b/client/src/components/jobs-available-table/jobs-available-table.container.jsx index a3d9060d6..2cadc3c8c 100644 --- a/client/src/components/jobs-available-table/jobs-available-table.container.jsx +++ b/client/src/components/jobs-available-table/jobs-available-table.container.jsx @@ -110,18 +110,17 @@ export function JobsAvailableContainer({ bodyshop, currentUser, insertAuditTrail InstanceRenderManager({ executeFunction: true, rome: ResolveCCCLineIssues, - args: [estData.est_data, bodyshop], - promanager: ResolveCCCLineIssues + args: [estData.est_data, bodyshop] }); // } else { //IO-539 Check for Parts Rate on PAL for SGI use case. - //TODO:AIO Check that the async function is actually waiting before moving on. + await InstanceRenderManager({ executeFunction: true, imex: CheckTaxRates, rome: CheckTaxRatesUSA, - promanager: CheckTaxRatesUSA, + args: [estData.est_data, bodyshop] }); @@ -236,7 +235,7 @@ export function JobsAvailableContainer({ bodyshop, currentUser, insertAuditTrail await InstanceRenderManager({ executeFunction: true, rome: ResolveCCCLineIssues, - promanager: ResolveCCCLineIssues, + args: [supp, bodyshop] }); @@ -244,7 +243,7 @@ export function JobsAvailableContainer({ bodyshop, currentUser, insertAuditTrail executeFunction: true, imex: CheckTaxRates, rome: CheckTaxRatesUSA, - promanager: CheckTaxRatesUSA, + args: [supp, bodyshop] }); @@ -568,7 +567,6 @@ async function CheckTaxRates(estData, bodyshop) { } function ResolveCCCLineIssues(estData, bodyshop) { //Find all misc amounts, populate them to the act price. - //TODO Ensure that this doesnt get violated //This needs to be done before cleansing unq_seq since some misc prices could move over. estData.joblines.data.forEach((line) => { if (line.misc_amt && line.misc_amt !== 0) { @@ -584,48 +582,13 @@ function ResolveCCCLineIssues(estData, bodyshop) { // line.notes += ` | ET/UT Update (prev = ${line.mod_lbr_ty})`; line.mod_lbr_ty = "LAR"; } - }, - promanager: "USE_ROME" + } }); }); - //Group by line no - // For everything but the first one, strip out the price number in - InstanceRenderManager({ executeFunction: true, args: [], - promanager: () => { - const groupedByLineRef = _.groupBy(estData.joblines.data, "line_ref"); - Object.keys(groupedByLineRef).forEach((lineRef) => { - let index0ActPrice; - groupedByLineRef[lineRef].forEach((line, index) => { - //Let the first one keep it - if (index === 0) { - index0ActPrice = line.act_price; - return; - } - //Web Est seems to have additional costs with UNQ_SEQ 0. Keep them all? - if (line.unq_seq === 0) return; - if (index0ActPrice !== line.act_price) { - // line.notes += ` | Price override.`; - return; - } - const indexInEstData = estData.joblines.data.findIndex((l) => l.unq_seq === line.unq_seq); - //estData.joblines.data[indexInEstData].notes += - // ` | Act Price delete. (prev act price = ${estData.joblines.data[indexInEstData].act_price})`; - estData.joblines.data[indexInEstData].act_price = 0; - estData.joblines.data[indexInEstData].db_price = 0; - estData.joblines.data[indexInEstData].part_type = null; - }); - }); - } - }); - - InstanceRenderManager({ - executeFunction: true, - args: [], - promanager: null, //Require to prevent auto firing of Rome. rome: () => { //Generate the list of duplicated UNQ_SEQ that will feed into the next section to scrub the lines. const unqSeqHash = _.groupBy(estData.joblines.data, "unq_seq"); diff --git a/client/src/components/jobs-close-auto-allocate/jobs-close-auto-allocate.component.jsx b/client/src/components/jobs-close-auto-allocate/jobs-close-auto-allocate.component.jsx index f90e75d32..16477501c 100644 --- a/client/src/components/jobs-close-auto-allocate/jobs-close-auto-allocate.component.jsx +++ b/client/src/components/jobs-close-auto-allocate/jobs-close-auto-allocate.component.jsx @@ -33,7 +33,6 @@ export function JobsCloseAutoAllocate({ bodyshop, joblines, form, disabled }) { InstanceRenderManager({ imex: !jl.part_type && !jl.mod_lbr_ty, rome: !ret.profitcenter_part, - promanager: "USE_ROME" }) ) { const lineDesc = jl.line_desc ? jl.line_desc.toLowerCase() : ""; diff --git a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx index 833594604..941de644b 100644 --- a/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx +++ b/client/src/components/jobs-convert-button/jobs-convert-button.component.jsx @@ -151,8 +151,7 @@ export function JobsConvertButton({ bodyshop, job, refetch, jobRO, insertAuditTr label={t( InstanceRenderManager({ imex: "jobs.fields.employee_csr", - rome: "jobs.fields.employee_csr_writer", - promanager: "USE_ROME" + rome: "jobs.fields.employee_csr_writer" }) )} rules={[ diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx index 1fdeeec61..89e0efa43 100644 --- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx +++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx @@ -23,9 +23,9 @@ import AuditTrailMapping from "../../utils/AuditTrailMappings"; import { DateTimeFormatter } from "../../utils/DateFormatter"; import { TemplateList } from "../../utils/TemplateConstants"; import dayjs from "../../utils/day"; -import InstanceRenderManager from "../../utils/instanceRenderMgr"; import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import FormDateTimePickerComponent from "../form-date-time-picker/form-date-time-picker.component"; +import LockerWrapperComponent from "../lock-wrapper/lock-wrapper.component"; import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component"; import AddToProduction from "./jobs-detail-header-actions.addtoproduction.util"; import DuplicateJob from "./jobs-detail-header-actions.duplicate.util"; @@ -198,6 +198,7 @@ export function JobsDetailHeaderActions({ message: t("appointments.successes.created") }); } catch (error) { + notification.open({ type: "error", message: t("appointments.errors.saving", { error: error.message }) }); } finally { setLoading(false); setVisibility(false); @@ -208,7 +209,7 @@ export function JobsDetailHeaderActions({ //delete the job. const result = await deleteJob({ variables: { id: job.id } }); - if (!!!result.errors) { + if (!result.errors) { notification["success"]({ message: t("jobs.successes.delete") }); @@ -266,7 +267,7 @@ export function JobsDetailHeaderActions({ awaitRefetchQueries: true }); - if (!!!result.errors) { + if (!result.errors) { notification["success"]({ message: t("csi.successes.created") }); } else { notification["error"]({ @@ -389,7 +390,7 @@ export function JobsDetailHeaderActions({ } }); - if (!!!result.errors) { + if (!result.errors) { notification["success"]({ message: t("jobs.successes.voided") }); @@ -409,7 +410,7 @@ export function JobsDetailHeaderActions({ } }; - const handleExportCustData = async (e) => { + const handleExportCustData = async () => { logImEXEvent("job_export_cust_data"); let PartnerResponse; if (bodyshop.accountingconfig && bodyshop.accountingconfig.qbo) { @@ -486,7 +487,7 @@ export function JobsDetailHeaderActions({ } }; - const handleAlertToggle = (e) => { + const handleAlertToggle = () => { logImEXEvent("production_toggle_alert"); //e.stopPropagation(); updateJob({ @@ -509,7 +510,7 @@ export function JobsDetailHeaderActions({ }); }; - const handleSuspend = (e) => { + const handleSuspend = () => { logImEXEvent("production_toggle_alert"); //e.stopPropagation(); updateJob({ @@ -522,7 +523,7 @@ export function JobsDetailHeaderActions({ }); insertAuditTrail({ jobid: job.id, - operation: AuditTrailMapping.jobsuspend(!!job.suspended ? !job.suspended : true), + operation: AuditTrailMapping.jobsuspend(job.suspended ? !job.suspended : true), type: "jobsuspend" }); }; @@ -603,7 +604,7 @@ export function JobsDetailHeaderActions({ required: true //message: t("general.validation.required"), }, - ({ getFieldValue }) => ({ + () => ({ async validator(rule, value) { if (value) { const { start } = form.getFieldsValue(); @@ -672,73 +673,74 @@ export function JobsDetailHeaderActions({ disabled: job.status !== bodyshop.md_ro_statuses.default_scheduled, label: t("menus.jobsactions.cancelallappointments") }, - ...InstanceRenderManager({ - imex: [ - { - key: "intake", - id: "job-actions-intake", - disabled: !!job.intakechecklist || !jobInPreProduction || !job.converted || jobRO, - label: - !!job.intakechecklist || !jobInPreProduction || !job.converted || jobRO ? ( - t("jobs.actions.intake") - ) : ( - {t("jobs.actions.intake")} - ) - }, - { - key: "deliver", - id: "job-actions-deliver", - disabled: !jobInProduction || jobRO, - label: !jobInProduction ? ( - t("jobs.actions.deliver") - ) : ( - {t("jobs.actions.deliver")} - ) - }, - { - key: "checklist", - id: "job-actions-checklist", - disabled: !job.converted, - label: {t("jobs.actions.viewchecklist")} - } - ], - rome: "USE_IMEX", - promanager: [ - { - key: "toggleproduction", - id: "job-actions-toggleproduction", - disabled: !job.converted || jobRO, - label: - } - ] - }), - ...(InstanceRenderManager({ - imex: true, - rome: "USE_IMEX", - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) - }) - ? [ - { - key: "entertimetickets", - id: "job-actions-entertimetickets", - disabled: !job.converted || (!bodyshop.tt_allow_post_to_invoiced && job.date_invoiced), - label: t("timetickets.actions.enter"), - onClick: () => { - logImEXEvent("job_header_enter_time_ticekts"); + { + key: "intake", + id: "job-actions-intake", + disabled: !!job.intakechecklist || !jobInPreProduction || !job.converted || jobRO, + label: + !!job.intakechecklist || !jobInPreProduction || !job.converted || jobRO ? ( + {t("jobs.actions.intake")} + ) : ( + + {t("jobs.actions.intake")} + + ) + }, + { + key: "deliver", + id: "job-actions-deliver", + disabled: !jobInProduction || jobRO, + label: !jobInProduction ? ( + + {t("jobs.actions.deliver")} + + ) : ( + + + {t("jobs.actions.deliver")} + + + ) + }, + { + key: "checklist", + id: "job-actions-checklist", + disabled: !job.converted, + label: ( + + {t("jobs.actions.viewchecklist")} + + ) + }, + { + key: "toggleproduction", + id: "job-actions-toggleproduction", + disabled: !job.converted || jobRO, + label: + }, - setTimeTicketContext({ - actions: {}, - context: { - jobId: job.id, - created_by: currentUser.displayName - ? currentUser.email.concat(" | ", currentUser.displayName) - : currentUser.email - } - }); + { + key: "entertimetickets", + id: "job-actions-entertimetickets", + disabled: !job.converted || (!bodyshop.tt_allow_post_to_invoiced && job.date_invoiced), + label: ( + {t("timetickets.actions.enter")} + ), + onClick: () => { + logImEXEvent("job_header_enter_time_ticekts"); + + HasFeatureAccess({ featureName: "timetickets", bodyshop }) && + setTimeTicketContext({ + actions: {}, + context: { + jobId: job.id, + created_by: currentUser.displayName + ? currentUser.email.concat(" | ", currentUser.displayName) + : currentUser.email } - } - ] - : []) + }); + } + } ]; if (bodyshop.md_tasks_presets.enable_tasks) { @@ -760,14 +762,15 @@ export function JobsDetailHeaderActions({ key: "enterpayments", id: "job-actions-enterpayments", disabled: !job.converted, - label: t("menus.header.enterpayment"), + label: {t("menus.header.enterpayment")}, onClick: () => { logImEXEvent("job_header_enter_payment"); - setPaymentContext({ - actions: {}, - context: { jobid: job.id } - }); + HasFeatureAccess({ featureName: "payments", bodyshop }) && + setPaymentContext({ + actions: {}, + context: { jobid: job.id } + }); } }); @@ -788,18 +791,18 @@ export function JobsDetailHeaderActions({ }); } - if (HasFeatureAccess({ featureName: "courtesycars", bodyshop })) { - menuItems.push({ - key: "cccontract", - id: "job-actions-cccontract", - disabled: jobRO || !job.converted, - label: ( - + menuItems.push({ + key: "cccontract", + id: "job-actions-cccontract", + disabled: jobRO || !job.converted, + label: ( + + {t("menus.jobsactions.newcccontract")} - - ) - }); - } + + + ) + }); menuItems.push({ key: "createtask", @@ -884,30 +887,23 @@ export function JobsDetailHeaderActions({ } ] }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "bills", bodyshop }) - }) - ? [ - { - key: "postbills", - id: "job-actions-postbills", - disabled: !job.converted, - label: t("jobs.actions.postbills"), - onClick: () => { - logImEXEvent("job_header_enter_bills"); - setBillEnterContext({ - actions: { refetch: refetch }, - context: { - job: job - } - }); + { + key: "postbills", + id: "job-actions-postbills", + disabled: !job.converted, + label: {t("jobs.actions.postbills")}, + onClick: () => { + logImEXEvent("job_header_enter_bills"); + HasFeatureAccess({ featureName: "bills", bodyshop }) && + setBillEnterContext({ + actions: { refetch: refetch }, + context: { + job: job } - } - ] - : []), + }); + } + }, { key: "addtopartsqueue", @@ -922,7 +918,7 @@ export function JobsDetailHeaderActions({ } }); - if (!!!result.errors) { + if (!result.errors) { notification["success"]({ message: t("jobs.successes.partsqueue") }); @@ -966,80 +962,70 @@ export function JobsDetailHeaderActions({ } ); - if ( - InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "export", bodyshop }) - }) - ) { - menuItems.push({ - key: "exportcustdata", - id: "job-actions-exportcustdata", - disabled: !job.converted, - label: t("jobs.actions.exportcustdata"), - onClick: handleExportCustData - }); - } + menuItems.push({ + key: "exportcustdata", + id: "job-actions-exportcustdata", + disabled: !(job.converted && HasFeatureAccess({ bodyshop, featureName: "export" })), + label: {t("jobs.actions.exportcustdata")}, + onClick: handleExportCustData + }); - if (HasFeatureAccess({ featureName: "csi", bodyshop })) { - const children = [ - { - key: "email", - id: "job-actions-email", - disabled: !!!job.ownr_ea, - label: t("general.labels.email"), - onClick: handleCreateCsi - }, - { - key: "text", - id: "job-actions-text", - disabled: !!!job.ownr_ph1, - label: t("general.labels.text"), - onClick: handleCreateCsi - }, - { - key: "generate", - id: "job-actions-generate", - disabled: job.csiinvites && job.csiinvites.length > 0, - label: t("jobs.actions.generatecsi"), - onClick: handleCreateCsi - } - ]; - - if (job?.csiinvites?.length) { - children.push( - { - type: "divider" - }, - ...job.csiinvites.map((item, idx) => { - return item.completedon - ? { - key: idx, - label: ( - - {item.completedon} - - ) - } - : { - key: idx, - onClick: () => { - navigator.clipboard.writeText(`${window.location.protocol}//${window.location.host}/csi/${item.id}`); - }, - label: t("general.actions.copylink") - }; - }) - ); + const children = [ + { + key: "email", + id: "job-actions-email", + disabled: !(job.ownr_ea && HasFeatureAccess({ bodyshop, featureName: "csi" })), + label: {t("general.labels.email")}, + onClick: handleCreateCsi + }, + { + key: "text", + id: "job-actions-text", + disabled: !(job.ownr_ph1 && HasFeatureAccess({ bodyshop, featureName: "csi" })), + label: {t("general.labels.text")}, + onClick: handleCreateCsi + }, + { + key: "generate", + id: "job-actions-generate", + disabled: job.csiinvites?.length > 0 || !HasFeatureAccess({ bodyshop, featureName: "csi" }), + label: {t("jobs.actions.generatecsi")}, + onClick: handleCreateCsi } - menuItems.push({ - key: "sendcsi", - id: "job-actions-sendcsi", - label: t("jobs.actions.sendcsi"), - disabled: !job.converted, - children - }); + ]; + + if (job?.csiinvites?.length) { + children.push( + { + type: "divider" + }, + ...job.csiinvites.map((item, idx) => { + return item.completedon + ? { + key: idx, + label: ( + + {item.completedon} + + ) + } + : { + key: idx, + onClick: () => { + navigator.clipboard.writeText(`${window.location.protocol}//${window.location.host}/csi/${item.id}`); + }, + label: t("general.actions.copylink") + }; + }) + ); } + menuItems.push({ + key: "sendcsi", + id: "job-actions-sendcsi", + label: {t("jobs.actions.sendcsi")}, + disabled: !job.converted, + children + }); menuItems.push({ key: "jobcosting", @@ -1079,7 +1065,7 @@ export function JobsDetailHeaderActions({ menuItems.push({ key: "manualevent", id: "job-actions-manualevent", - onClick: (e) => { + onClick: () => { setVisibility(true); }, label: t("appointments.labels.manualevent") diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.toggle-production.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.toggle-production.jsx index a608c6e97..3fd361ff0 100644 --- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.toggle-production.jsx +++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.toggle-production.jsx @@ -168,8 +168,8 @@ export function JobsDetailHeaderActionsToggleProduction({ bodyshop, job, jobRO, getPopupContainer={(trigger) => trigger.parentNode} trigger="click" > - {scenario === "pre" && t("jobs.actions.intake")} - {scenario === "prod" && t("jobs.actions.deliver")} + {scenario === "pre" && t("jobs.actions.intake_quick")} + {scenario === "prod" && t("jobs.actions.deliver_quick")} ); } diff --git a/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx b/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx index 2aa72db2d..704ed9d10 100644 --- a/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx +++ b/client/src/components/jobs-detail-pli/jobs-detail-pli.component.jsx @@ -4,10 +4,9 @@ import AlertComponent from "../alert/alert.component"; import BillDetailEditcontainer from "../bill-detail-edit/bill-detail-edit.container"; import BillsListTable from "../bills-list-table/bills-list-table.component"; import JobBillsTotal from "../job-bills-total/job-bills-total.component"; +import PartsDispatchTable from "../parts-dispatch-table/parts-dispatch-table.component"; import PartsOrderListTableComponent from "../parts-order-list-table/parts-order-list-table.component"; import PartsOrderModal from "../parts-order-modal/parts-order-modal.container"; -import PartsDispatchTable from "../parts-dispatch-table/parts-dispatch-table.component"; -import FeatureWrapperComponent from "../feature-wrapper/feature-wrapper.component"; export default function JobsDetailPliComponent({ job, @@ -22,16 +21,14 @@ export default function JobsDetailPliComponent({ {billsQuery.error ? : null} - null}> - - - - + + + - null}> - - - - + + + diff --git a/client/src/components/jobs-detail-rates/jobs-detail-rates.component.jsx b/client/src/components/jobs-detail-rates/jobs-detail-rates.component.jsx index f056f603d..98a76f7b5 100644 --- a/client/src/components/jobs-detail-rates/jobs-detail-rates.component.jsx +++ b/client/src/components/jobs-detail-rates/jobs-detail-rates.component.jsx @@ -194,8 +194,7 @@ export function JobsDetailRates({ jobRO, form, job, bodyshop }) { - ), - promanager: "USE_ROME" + ) })} ); diff --git a/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx b/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx index 825958cfb..d4d39c6a2 100644 --- a/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx +++ b/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx @@ -989,7 +989,7 @@ export function JobsDetailRatesParts({ jobRO, expanded, required = true, form }) - {InstanceRenderManager({ imex: true, rome: false, promanager: "USE_ROME" }) ? ( + {InstanceRenderManager({ imex: true, rome: false }) ? ( <> @@ -1002,7 +1002,7 @@ export function JobsDetailRatesParts({ jobRO, expanded, required = true, form }) - {InstanceRenderManager({ imex: true, rome: false, promanager: "USE_ROME" }) ? ( + {InstanceRenderManager({ imex: true, rome: false }) ? ( diff --git a/client/src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx b/client/src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx index 1598ea66b..0dcc18855 100644 --- a/client/src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx +++ b/client/src/components/jobs-documents-gallery/jobs-documents-gallery.component.jsx @@ -13,8 +13,19 @@ import JobsDocumentsGallerySelectAllComponent from "./jobs-documents-gallery.sel import Lightbox from "react-image-lightbox"; import "react-image-lightbox/style.css"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; + +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { selectBodyshop } from "../../redux/user/user.selectors"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; +const mapStateToProps = createStructuredSelector({ + bodyshop: selectBodyshop +}); +const mapDispatchToProps = (dispatch) => ({}); function JobsDocumentsComponent({ + bodyshop, data, jobId, refetch, @@ -103,7 +114,8 @@ function JobsDocumentsComponent({ ); setgalleryImages(documents); }, [data, setgalleryImages, t]); - + const hasMediaAccess = HasFeatureAccess({ bodyshop, featureName: "media" }); + const hasMobileAccess = HasFeatureAccess({ bodyshop, featureName: "mobile" }); return (
@@ -118,6 +130,14 @@ function JobsDocumentsComponent({ {!billId && } + {!hasMediaAccess && ( + + + + + + )} + - + {hasMediaAccess && !hasMobileAccess && ( + + + + + + )} - - - - - - - - - - - - - - - { - toggleMediaSelected({ jobid: job.id, filename: image.filename }); - }} - {...(optimized && { - customControls: [ - - ] - })} - onClick={(index) => { - setModalState({ open: true, index: index }); - // const media = allMedia[job.id].find( - // (m) => m.optimized === item.src - // ); + + + + + + + + + + + + + + {!hasMediaAccess && ( + + + + + + )} + + + + + + + + { + toggleMediaSelected({ jobid: job.id, filename: image.filename }); + }} + {...(optimized && { + customControls: [ + + ] + })} + onClick={(index) => { + setModalState({ open: true, index: index }); + // const media = allMedia[job.id].find( + // (m) => m.optimized === item.src + // ); - // window.open( - // media ? media.fullsize : item.fullsize, - // "_blank", - // "toolbar=0,location=0,menubar=0" - // ); - }} - /> - - - { - return { - backgroundImage: , - height: "100%", - width: "100%", - cursor: "pointer" - }; - }} - onClick={(index) => { - window.open(jobMedia.other[index].fullsize, "_blank", "toolbar=0,location=0,menubar=0"); - }} - onSelect={(index, image) => { - toggleMediaSelected({ jobid: job.id, filename: image.filename }); - }} - /> - - {modalState.open && ( - setModalState({ open: false, index: 0 })} - onMovePrevRequest={() => - setModalState({ - ...modalState, - index: (modalState.index + jobMedia.images.length - 1) % jobMedia.images.length - }) - } - onMoveNextRequest={() => - setModalState({ - ...modalState, - index: (modalState.index + 1) % jobMedia.images.length - }) - } - /> - )} + // window.open( + // media ? media.fullsize : item.fullsize, + // "_blank", + // "toolbar=0,location=0,menubar=0" + // ); + }} + /> + + + + + { + return { + backgroundImage: , + height: "100%", + width: "100%", + cursor: "pointer" + }; + }} + onClick={(index) => { + window.open(jobMedia.other[index].fullsize, "_blank", "toolbar=0,location=0,menubar=0"); + }} + onSelect={(index, image) => { + toggleMediaSelected({ jobid: job.id, filename: image.filename }); + }} + /> + + + {modalState.open && ( + setModalState({ open: false, index: 0 })} + onMovePrevRequest={() => + setModalState({ + ...modalState, + index: (modalState.index + jobMedia.images.length - 1) % jobMedia.images.length + }) + } + onMoveNextRequest={() => + setModalState({ + ...modalState, + index: (modalState.index + 1) % jobMedia.images.length + }) + } + /> + )} +
); } diff --git a/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx b/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx index e9e842d6a..57be0b072 100644 --- a/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx +++ b/client/src/components/labor-allocations-table/labor-allocations-table.component.jsx @@ -12,7 +12,8 @@ import { alphaSort } from "../../utils/sorters"; import LaborAllocationsAdjustmentEdit from "../labor-allocations-adjustment-edit/labor-allocations-adjustment-edit.component"; import "./labor-allocations-table.styles.scss"; import { CalculateAllocationsTotals } from "./labor-allocations-table.utility"; - +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, technician: selectTechnician @@ -190,6 +191,7 @@ export function LaborAllocationsTable({ warningCallback({ key: "labor", warning: t("jobs.labels.outstandinghours") }); } + const hasTimeTicketAccess = HasFeatureAccess({ bodyshop, featureName: "timetickets" }); return ( @@ -199,7 +201,16 @@ export function LaborAllocationsTable({ rowKey={(record) => `${record.cost_center} ${record.mod_lbr_ty}`} pagination={false} onChange={handleTableChange} - dataSource={totals} + dataSource={hasTimeTicketAccess ? totals : []} + locale={{ + ...(!hasTimeTicketAccess && { + emptyText: ( + + + + ) + }) + }} scroll={{ x: true }} @@ -233,7 +244,16 @@ export function LaborAllocationsTable({ columns={convertedTableCols} rowKey="id" pagination={false} - dataSource={convertedLines} + dataSource={hasTimeTicketAccess ? convertedLines : []} + locale={{ + ...(!hasTimeTicketAccess && { + emptyText: ( + + + + ) + }) + }} scroll={{ x: true }} diff --git a/client/src/components/loading-spinner/loading-spinner.component.jsx b/client/src/components/loading-spinner/loading-spinner.component.jsx index 1bbf80dfb..e9e94bcb3 100644 --- a/client/src/components/loading-spinner/loading-spinner.component.jsx +++ b/client/src/components/loading-spinner/loading-spinner.component.jsx @@ -12,7 +12,6 @@ export default function LoadingSpinner({ loading = true, message, ...props }) { position: "relative", alignContent: "center" }} - // TODO: Client Update - if anything funky happens check this out {...(props.children ? { tip: message ? message : null } : {})} delay={200} // TODO: Client Update - tip only works when there are actually children, and this component is used in a lot of places where there are no children diff --git a/client/src/components/lock-wrapper/lock-wrapper.component.jsx b/client/src/components/lock-wrapper/lock-wrapper.component.jsx new file mode 100644 index 000000000..8b8711089 --- /dev/null +++ b/client/src/components/lock-wrapper/lock-wrapper.component.jsx @@ -0,0 +1,38 @@ +import { LockOutlined } from "@ant-design/icons"; +import { Space } from "antd"; +import React from "react"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { selectRecentItems, selectSelectedHeader } from "../../redux/application/application.selectors"; +import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; + +const mapStateToProps = createStructuredSelector({ + currentUser: selectCurrentUser, + recentItems: selectRecentItems, + selectedHeader: selectSelectedHeader, + bodyshop: selectBodyshop +}); + +const LockWrapper = ({ featureName, bodyshop, children, disabled = true }) => { + let renderedChildren = children; + + if (disabled) { + renderedChildren = React.Children.map(children, (child) => { + if (React.isValidElement(child)) { + return React.cloneElement(child, { + disabled: true + }); + } + return child; + }); + } + + return ( + + {!HasFeatureAccess({ featureName: featureName, bodyshop }) && } + {renderedChildren} + + ); +}; +export default connect(mapStateToProps, null)(LockWrapper); diff --git a/client/src/components/parts-order-list-table/parts-order-list-table-drawer.component.jsx b/client/src/components/parts-order-list-table/parts-order-list-table-drawer.component.jsx index 168f7687e..3fe23ca4c 100644 --- a/client/src/components/parts-order-list-table/parts-order-list-table-drawer.component.jsx +++ b/client/src/components/parts-order-list-table/parts-order-list-table-drawer.component.jsx @@ -20,7 +20,8 @@ import { DateFormatter } from "../../utils/DateFormatter"; import { TemplateList } from "../../utils/TemplateConstants"; import { alphaSort } from "../../utils/sorters"; import DataLabel from "../data-label/data-label.component"; -import FeatureWrapperComponent from "../feature-wrapper/feature-wrapper.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; import PartsOrderBackorderEta from "../parts-order-backorder-eta/parts-order-backorder-eta.component"; import PartsOrderCmReceived from "../parts-order-cm-received/parts-order-cm-received.component"; import PartsOrderDeleteLine from "../parts-order-delete-line/parts-order-delete-line.component"; @@ -169,40 +170,44 @@ export function PartsOrderListTableDrawerComponent({ - null}> - - + } + }); + }} + > + {t("parts_orders.actions.receivebill")} + + - null}> - - + } + }); + }} + > + {t("parts_orders.actions.receivebill")} + +
@@ -151,15 +155,9 @@ export function ReportCenterModalComponent({ reportCenterModal, bodyshop }) { ]} > - {/* {Object.keys(Templates).map((key) => ( - - {Templates[key].title} - - ))} */} - {Object.keys(grouped) - .filter((key) => !groupExcludeKeyFilter.includes(key)) + //.filter((key) => !groupExcludeKeyFilter.includes(key)) .map((key) => ( {t(`reportcenter.labels.groups.${key}`)} -
    - {grouped[key].map((item) => ( -
  • - - {item.title} - -
  • - ))} -
+ {groupExcludeKeyFilter.find((g) => g.key === key) ? ( + g.key === key).featureName} + > +
    + {grouped[key].map((item) => ( +
  • + + {item.title} + +
  • + ))} +
+
+ ) : ( +
    + {grouped[key].map((item) => ( +
  • + + {item.title} + +
  • + ))} +
+ )}
))} @@ -284,7 +298,8 @@ export function ReportCenterModalComponent({ reportCenterModal, bodyshop }) { { validator: (_, value) => { if ( - (!import.meta.env.VITE_APP_IS_TEST && import.meta.env.PROD) && + !import.meta.env.VITE_APP_IS_TEST && + import.meta.env.PROD && value && value[0] && value[1] diff --git a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx index dd23c669f..7c81df1e4 100644 --- a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx +++ b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header-graph.component.jsx @@ -6,6 +6,8 @@ import { connect } from "react-redux"; import { Legend, PolarAngleAxis, PolarGrid, PolarRadiusAxis, Radar, RadarChart, Tooltip } from "recharts"; import { createStructuredSelector } from "reselect"; import { selectBodyshop } from "../../redux/user/user.selectors"; +import BlurWrapperComponent from "../feature-wrapper/blur-wrapper.component"; +import { UpsellMaskWrapper, upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -38,26 +40,34 @@ export function ScheduleCalendarHeaderGraph({ bodyshop, loadData }) {
{t("appointments.labels.expectedprodhrs")} - {loadData?.expectedHours?.toFixed(1)} + + {loadData?.expectedHours?.toFixed(1)} + {t("appointments.labels.expectedjobs")} - {loadData?.expectedJobCount} + + {loadData?.expectedJobCount} + - - - - - - - - - + + + + + + + + + + + + +
); diff --git a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx index 9a83f7cae..58a9c29dc 100644 --- a/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx +++ b/client/src/components/schedule-calendar-wrapper/schedule-calendar-header.component.jsx @@ -1,5 +1,5 @@ import Icon from "@ant-design/icons"; -import { Popover, Space } from "antd"; +import { Card, Popover, Space } from "antd"; import _ from "lodash"; import dayjs from "../../utils/day"; @@ -12,11 +12,12 @@ import { createStructuredSelector } from "reselect"; import { selectScheduleLoad, selectScheduleLoadCalculating } from "../../redux/application/application.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { DateTimeFormatter } from "../../utils/DateFormatter"; +import { default as BlurWrapper, default as BlurWrapperComponent } from "../feature-wrapper/blur-wrapper.component"; import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component"; import OwnerNameDisplay from "../owner-name-display/owner-name-display.component"; import ScheduleBlockDay from "../schedule-block-day/schedule-block-day.component"; import ScheduleCalendarHeaderGraph from "./schedule-calendar-header-graph.component"; -import InstanceRenderMgr from "../../utils/instanceRenderMgr"; +import UpsellComponent, { upsellEnum, UpsellMaskWrapper } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -58,38 +59,39 @@ export function ScheduleCalendarHeaderComponent({ {loadData && loadData.allJobsOut ? ( loadData.allJobsOut.map((j) => ( - - - {j.ro_number} ( - {j.status}) - - - - - - {`(${j.labhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0}/${ - j.larhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0 - }/${( - j.labhrs.aggregate?.sum?.mod_lb_hrs + - j.larhrs.aggregate?.sum?.mod_lb_hrs - ).toFixed(1)} ${t("general.labels.hours")})`} - - - - {j.scheduled_completion} - - - + + + + {j.ro_number} ({j.status}) + + + + + + {`(${j.labhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0}/${ + j.larhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0 + }/${(j.labhrs.aggregate?.sum?.mod_lb_hrs + j.larhrs.aggregate?.sum?.mod_lb_hrs).toFixed( + 1 + )} ${t("general.labels.hours")})`} + + + {j.scheduled_completion} + + + )) ) : ( - - {t("appointments.labels.nocompletingjobs")} - + + {t("appointments.labels.nocompletingjobs")} + )} + + + ); @@ -99,33 +101,37 @@ export function ScheduleCalendarHeaderComponent({ {loadData && loadData.allJobsIn ? ( loadData.allJobsIn.map((j) => ( - - - {j.ro_number} - - - - - - {`(${j.labhrs?.aggregate?.sum.mod_lb_hrs?.toFixed(1) || 0}/${ - j.larhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0 - }/${( - j.labhrs?.aggregate?.sum?.mod_lb_hrs + - j.larhrs?.aggregate?.sum?.mod_lb_hrs - ).toFixed(1)} ${t("general.labels.hours")})`} - - - {j.scheduled_in} - - + + + + {j.ro_number} + + + + + + {`(${j.labhrs?.aggregate?.sum.mod_lb_hrs?.toFixed(1) || 0}/${ + j.larhrs?.aggregate?.sum?.mod_lb_hrs?.toFixed(1) || 0 + }/${(j.labhrs?.aggregate?.sum?.mod_lb_hrs + j.larhrs?.aggregate?.sum?.mod_lb_hrs).toFixed( + 1 + )} ${t("general.labels.hours")})`} + + + {j.scheduled_in} + + + )) ) : ( - - {t("appointments.labels.noarrivingjobs")} - + + {t("appointments.labels.noarrivingjobs")} + )} + + + @@ -133,33 +139,36 @@ export function ScheduleCalendarHeaderComponent({ const LoadComponent = loadData ? (
- - + + + - {(loadData.allHoursInBody || 0) && - loadData.allHoursInBody.toFixed(1)} - / - {(loadData.allHoursInRefinish || 0) && - loadData.allHoursInRefinish.toFixed(1)} - /{(loadData.allHoursIn || 0) && loadData.allHoursIn.toFixed(1)} - - + + {`${(loadData.allHoursInBody || 0) && loadData.allHoursInBody.toFixed(1)}/${(loadData.allHoursInRefinish || 0) && loadData.allHoursInRefinish.toFixed(1)}/${(loadData.allHoursIn || 0) && loadData.allHoursIn.toFixed(1)}`} + + + + + - {(loadData.allHoursOut || 0) && loadData.allHoursOut.toFixed(1)} - - - - + + {(loadData.allHoursOut || 0) && loadData.allHoursOut.toFixed(1)} + + + + + +
    {Object.keys(ATSToday).map((key, idx) => ( @@ -207,11 +216,7 @@ export function ScheduleCalendarHeaderComponent({ 0} date={date} refetch={refetch}>
    {label} - {InstanceRenderMgr({ - imex: calculating ? : LoadComponent, - rome: "USE_IMEX", - promanager: <> - })} + {calculating ? : LoadComponent}
diff --git a/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx b/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx index 4d6f8fe78..13941cd08 100644 --- a/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx +++ b/client/src/components/schedule-calendar-wrapper/scheduler-calendar-wrapper.component.jsx @@ -1,20 +1,20 @@ -import dayjs from "../../utils/day"; +import { Alert, Collapse, Space } from "antd"; import queryString from "query-string"; import React from "react"; import { Calendar } from "react-big-calendar"; +import { Trans, useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { Link, useLocation, useNavigate } from "react-router-dom"; import { createStructuredSelector } from "reselect"; +import { selectProblemJobs } from "../../redux/application/application.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; +import dayjs from "../../utils/day"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import Event from "../job-at-change/schedule-event.container"; +import JobDetailCards from "../job-detail-cards/job-detail-cards.component"; +import local from "./localizer"; import HeaderComponent from "./schedule-calendar-header.component"; import "./schedule-calendar.styles.scss"; -import JobDetailCards from "../job-detail-cards/job-detail-cards.component"; -import { selectProblemJobs } from "../../redux/application/application.selectors"; -import { Alert, Collapse, Space } from "antd"; -import { Trans, useTranslation } from "react-i18next"; -import InstanceRenderManager from "../../utils/instanceRenderMgr"; -import local from "./localizer"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -54,58 +54,54 @@ export function ScheduleCalendarWrapperComponent({ return ( <> - {InstanceRenderManager({ - imex: - problemJobs && problemJobs.length > 2 ? ( - - {t("appointments.labels.severalerrorsfound")}} - > - - {problemJobs.map((problem) => ( - ]} - values={{ - ro_number: problem.ro_number, - code: problem.code - }} - /> - } - /> - ))} - - - - ) : ( - - {problemJobs.map((problem) => ( - ]} - values={{ - ro_number: problem.ro_number, - code: problem.code - }} - /> - } - /> - ))} - - ), - - rome: "USE_IMEX", - promanager: - })} + {HasFeatureAccess({ featureName: "smartscheduling", bodyshop }) && + problemJobs && + (problemJobs.length > 2 ? ( + + {t("appointments.labels.severalerrorsfound")}} + > + + {problemJobs.map((problem) => ( + ]} + values={{ + ro_number: problem.ro_number, + code: problem.code + }} + /> + } + /> + ))} + + + + ) : ( + + {problemJobs.map((problem) => ( + ]} + values={{ + ro_number: problem.ro_number, + code: problem.code + }} + /> + } + /> + ))} + + ))} @@ -99,39 +104,46 @@ export function ScheduleJobModalComponent({ - {InstanceRenderManager({ - imex: ( - <> - {t("appointments.labels.smartscheduling")} - - + + {smartOptions.map((d, idx) => ( + - {smartOptions.map((d, idx) => ( - - ))} - - - ), - rome: "USE_IMEX", - promanager: <> - })} + ))} + {smartOptions.length > 1 && hasSmartSchedulingAccess && ( + + )} + + + } diff --git a/client/src/components/shop-info/shop-info.component.jsx b/client/src/components/shop-info/shop-info.component.jsx index fe09d2220..6f62d8fcc 100644 --- a/client/src/components/shop-info/shop-info.component.jsx +++ b/client/src/components/shop-info/shop-info.component.jsx @@ -21,6 +21,8 @@ import queryString from "query-string"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; import ShopInfoRoGuard from "./shop-info.roguard.component"; import ShopInfoIntellipay from "./shop-intellipay-config.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -87,18 +89,14 @@ export function ShopInfoComponent({ bodyshop, form, saveLoading }) { children: , id: "tab-shop-responsibilitycenters" }, - ...InstanceRenderManager({ - imex: [ - { - key: "checklists", - label: t("bodyshop.labels.checklists"), - children: , - id: "tab-shop-checklists" - } - ], - rome: "USE_IMEX", - promanager: [] - }), + + { + key: "checklists", + label: {t("bodyshop.labels.checklists")}, + children: , + disabled: HasFeatureAccess({ bodyshop, featureName: "checklist" }), + id: "tab-shop-checklists" + }, { key: "laborrates", label: t("bodyshop.labels.laborrates"), @@ -125,29 +123,22 @@ export function ShopInfoComponent({ bodyshop, form, saveLoading }) { } ] : []), - ...InstanceRenderManager({ - imex: [ - { - key: "roguard", - label: t("bodyshop.labels.roguard.title"), - children: , - id: "tab-shop-roguard" - } - ], - rome: "USE_IMEX", - promanager: [] - }), - ...InstanceRenderManager({ - imex: [], - rome: [ - { - key: "intellipay", - label: InstanceRenderManager({ rome: t("bodyshop.labels.romepay"), imex: t("bodyshop.labels.imexpay") }), - children: - } - ], - promanager: [] - }) + ...(HasFeatureAccess({ featureName: "roguard", bodyshop }) + ? [ + { + key: "roguard", + label: t("bodyshop.labels.roguard.title"), + children: , + id: "tab-shop-roguard" + } + ] + : []), + + { + key: "intellipay", + label: InstanceRenderManager({ rome: t("bodyshop.labels.romepay"), imex: t("bodyshop.labels.imexpay") }), + children: + } ]; return ( diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx index 8343a9be2..f0c3b0f35 100644 --- a/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx +++ b/client/src/components/shop-info/shop-info.responsibilitycenters.component.jsx @@ -4043,8 +4043,7 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) { - ), - promanager: "USE_ROME" + ) })} {/**/} @@ -4336,7 +4335,6 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) { {InstanceRenderManager({ - promanager: "USE_ROME", rome: ( Adjustments
} id="refund"> {bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber ? ( diff --git a/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx b/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx index b587deb5a..de3832311 100644 --- a/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx +++ b/client/src/components/shop-info/shop-info.responsibilitycenters.taxes.component.jsx @@ -2034,7 +2034,7 @@ export function ShopInfoResponsibilityCenters({ bodyshop, form }) { - {InstanceRenderManager({ imex: true, rome: false, promanager: "USE_ROME" }) ? ( + {InstanceRenderManager({ imex: true, rome: false }) ? ( <> - {InstanceRenderManager({ imex: true, rome: false, promanager: "USE_ROME" }) ? ( + {InstanceRenderManager({ imex: true, rome: false }) ? ( diff --git a/client/src/components/shop-info/shop-info.scheduling.component.jsx b/client/src/components/shop-info/shop-info.scheduling.component.jsx index b441db818..36fd0e6d1 100644 --- a/client/src/components/shop-info/shop-info.scheduling.component.jsx +++ b/client/src/components/shop-info/shop-info.scheduling.component.jsx @@ -2,13 +2,23 @@ import { DeleteFilled } from "@ant-design/icons"; import { Button, Divider, Form, Input, InputNumber, Select, Space, Switch, TimePicker } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import ColorpickerFormItemComponent from "../form-items-formatted/colorpicker-form-item.component"; import FormListMoveArrows from "../form-list-move-arrows/form-list-move-arrows.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import { ColorPicker } from "./shop-info.rostatus.component"; -import InstanceRenderManager from "../../utils/instanceRenderMgr"; -export default function ShopInfoSchedulingComponent({ form }) { +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { selectBodyshop } from "../../redux/user/user.selectors"; +const mapStateToProps = createStructuredSelector({ + bodyshop: selectBodyshop +}); +const mapDispatchToProps = (dispatch) => ({ + //setUserLanguage: language => dispatch(setUserLanguage(language)) +}); + +export function ShopInfoSchedulingComponent({ form, bodyshop }) { const { t } = useTranslation(); return ( @@ -167,138 +177,136 @@ export default function ShopInfoSchedulingComponent({ form }) { }} - {InstanceRenderManager({ - imex: ( - - - {(fields, { add, remove, move }) => { - return ( -
- {fields.map((field, index) => ( - - - - - - - - + {HasFeatureAccess({ featureName: "smartscheduling", bodyshop }) && ( + + + {(fields, { add, remove, move }) => { + return ( +
+ {fields.map((field, index) => ( + + + + + + + + + + + + + + + + + + + + + + {t("bodyshop.fields.ssbuckets.color")} + + + } + key={`${index}color`} + name={[field.name, "color"]} > - + - - - - - - - - - - - - {t("bodyshop.fields.ssbuckets.color")} - - - } - key={`${index}color`} - name={[field.name, "color"]} - > - - - - { - remove(field.name); - }} - /> - - + + { + remove(field.name); + }} + /> + - - - ))} - - + + -
- ); - }} -
-
- ), - rome: "USE_IMEX", - promanager: null - })} + ))} + + + +
+ ); + }} +
+
+ )} ); } + +export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoSchedulingComponent); diff --git a/client/src/components/shop-info/shop-intellipay-config.component.jsx b/client/src/components/shop-info/shop-intellipay-config.component.jsx index f40a404ee..5c8ec7ee9 100644 --- a/client/src/components/shop-info/shop-intellipay-config.component.jsx +++ b/client/src/components/shop-info/shop-intellipay-config.component.jsx @@ -1,6 +1,6 @@ -import {Alert, Form, Switch} from "antd"; +import { Alert, Form, Switch } from "antd"; import React from "react"; -import {useTranslation} from "react-i18next"; +import { useTranslation } from "react-i18next"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; import {connect} from "react-redux"; diff --git a/client/src/components/sign-in-form/sign-in-form.component.jsx b/client/src/components/sign-in-form/sign-in-form.component.jsx index 0319cff6a..d39128af4 100644 --- a/client/src/components/sign-in-form/sign-in-form.component.jsx +++ b/client/src/components/sign-in-form/sign-in-form.component.jsx @@ -8,10 +8,9 @@ import { Link, useLocation, useNavigate } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import RomeLogo from "../../assets/RomeOnlineBlue.png"; import ImEXOnlineLogo from "../../assets/logo192.png"; -import ProManagerLogo from "../../assets/promanager/ProManagerLogo.gif"; -import InstanceRenderManager from "../../utils/instanceRenderMgr"; import { emailSignInStart, sendPasswordReset } from "../../redux/user/user.actions"; import { selectCurrentUser, selectLoginLoading, selectSignInError } from "../../redux/user/user.selectors"; +import InstanceRenderManager from "../../utils/instanceRenderMgr"; import AlertComponent from "../alert/alert.component"; import "./sign-in-form.styles.scss"; @@ -49,21 +48,18 @@ export function SignInComponent({ emailSignInStart, currentUser, signInError, se {InstanceRenderManager({ {InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: null + rome: t("titles.romeonline") })} diff --git a/client/src/components/tech-login/tech-login.component.jsx b/client/src/components/tech-login/tech-login.component.jsx index 4ebcc34e4..da3ad7b32 100644 --- a/client/src/components/tech-login/tech-login.component.jsx +++ b/client/src/components/tech-login/tech-login.component.jsx @@ -37,8 +37,7 @@ export function TechLogin({ technician, loginError, loginLoading, techLoginStart document.title = t("titles.techconsole", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); }, [t]); diff --git a/client/src/components/time-ticket-list/time-ticket-list.component.jsx b/client/src/components/time-ticket-list/time-ticket-list.component.jsx index 668cdb106..c29648f17 100644 --- a/client/src/components/time-ticket-list/time-ticket-list.component.jsx +++ b/client/src/components/time-ticket-list/time-ticket-list.component.jsx @@ -14,6 +14,9 @@ import dayjs from "../../utils/day"; import { alphaSort, dateSort } from "../../utils/sorters"; import { HasRbacAccess } from "../rbac-wrapper/rbac-wrapper.component"; import TimeTicketEnterButton from "../time-ticket-enter-button/time-ticket-enter-button.component"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; +import LockWrapperComponent from "../lock-wrapper/lock-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -39,7 +42,7 @@ export function TimeTicketList({ extra }) { const [state, setState] = useState({ - sortedInfo: { columnKey: 'date', order: 'descend' }, + sortedInfo: { columnKey: "date", order: "descend" }, filteredInfo: { text: "" } }); @@ -77,7 +80,7 @@ export function TimeTicketList({ if (isShiftTicket) { return !(canEditShiftTickets && (!isCommitted || canEditCommittedTimeTickets)); } - + return !(canEditTimeTickets && (!isCommitted || canEditCommittedTimeTickets)); }; @@ -277,6 +280,8 @@ export function TimeTicketList({ setState({ ...state, filteredInfo: filters, sortedInfo: sorter }); }; + const hasTimeTicketsAccess = HasFeatureAccess({ bodyshop, featureName: "timetickets" }); + return ( {jobId && bodyshop.md_tasks_presets.enable_tasks && ( )} {jobId && @@ -305,9 +312,9 @@ export function TimeTicketList({ ? currentUser.email.concat(" | ", currentUser.displayName) : currentUser.email }} - disabled={disabled} + disabled={disabled || !hasTimeTicketsAccess} > - {t("timetickets.actions.enter")} + {t("timetickets.actions.enter")} ))} {extra} @@ -328,7 +335,7 @@ export function TimeTicketList({ scroll={{ x: true }} - dataSource={timetickets} + dataSource={hasTimeTicketsAccess ? timetickets : []} onChange={handleTableChange} summary={() => { if (Enhanced_Payroll.treatment === "on") return null; @@ -338,7 +345,6 @@ export function TimeTicketList({ {t("general.labels.totals")} - {totals.productivehrs.toFixed(1)} {totals.actualhrs.toFixed(1)} @@ -354,6 +360,15 @@ export function TimeTicketList({ ); }} + locale={{ + ...(!hasTimeTicketsAccess && { + emptyText: ( + + + + ) + }) + }} /> ); diff --git a/client/src/components/update-alert/update-alert.component.jsx b/client/src/components/update-alert/update-alert.component.jsx index 32f80ea79..1f525a479 100644 --- a/client/src/components/update-alert/update-alert.component.jsx +++ b/client/src/components/update-alert/update-alert.component.jsx @@ -76,8 +76,7 @@ export function UpdateAlert({ updateAvailable }) { time: (timeLeft / 1000).toFixed(0), app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }), placement: "bottomRight" @@ -95,8 +94,7 @@ export function UpdateAlert({ updateAvailable }) { message={t("general.messages.newversiontitle", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} showIcon @@ -107,8 +105,7 @@ export function UpdateAlert({ updateAvailable }) { {t("general.messages.newversionmessage", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} diff --git a/client/src/components/upsell/upsell.component.jsx b/client/src/components/upsell/upsell.component.jsx new file mode 100644 index 000000000..704959ba8 --- /dev/null +++ b/client/src/components/upsell/upsell.component.jsx @@ -0,0 +1,238 @@ +import { + AppstoreAddOutlined, + BuildOutlined, + CalendarOutlined, + CarOutlined, + DashboardOutlined, + DollarOutlined, + LineChartOutlined, + MobileOutlined, + StarOutlined +} from "@ant-design/icons"; +import { Button, Card, Result } from "antd"; +import i18n from "i18next"; +import React, { useEffect, useRef } from "react"; +import { useTranslation } from "react-i18next"; +import "./upsell.styles.scss"; + +export default function UpsellComponent({ featureName, subFeatureName, upsell, disableMask }) { + const { t } = useTranslation(); + const resultProps = upsell || upsellEnum[featureName][subFeatureName]; + + console.trace("***LOG ~ file: upsell.component.jsx:22 ~ UpsellComponent ~ resultProps:", resultProps); + const componentRef = useRef(null); + + useEffect(() => { + if (disableMask) return; + const parentElement = componentRef.current?.parentElement; + if (parentElement) { + const mask = document.createElement("div"); + mask.style.position = "absolute"; + mask.style.top = 0; + mask.style.left = 0; + mask.style.width = "100%"; + mask.style.height = "100%"; + mask.style.backgroundColor = "rgba(0, 0, 0, 0.05)"; + // mask.style.zIndex = 9999; + parentElement.style.position = "relative"; + + parentElement.prepend(mask); + + return () => { + parentElement.removeChild(mask); + }; + } + }, [disableMask]); + + if (!resultProps) return ; + return ( +
+ } {...resultProps} /> +
+ ); +} +//Kept in the same function as the result props line must mirror and doesnt warrant a separate function. +export function UpsellMaskWrapper({ children, upsell, featureName, subFeatureName }) { + const resultProps = upsell || upsellEnum[featureName][subFeatureName]; + return ( +
+
{children}
+
+ + } {...resultProps} /> + +
+
+ ); +} +//This is kept in this function as pulling it out into it's own util/enum prevents passing JSX as an `extra` prop +export const upsellEnum = () => ({ + bills: { + autoreconcile: { + //icon: null, + title: i18n.t("upsell.messages.bills.autoreconcile.title"), + subTitle: i18n.t("upsell.messages.bills.autoreconcile.subtitle"), + extra: + //status: null + }, + general: { + //icon: null, + title: i18n.t("upsell.messages.bills.general.title"), + subTitle: i18n.t("upsell.messages.bills.general.subtitle"), + extra: + //status: null + } + }, + checklist: { + general: { + //icon: null, + title: i18n.t("upsell.messages.checklist.general.title"), + subTitle: i18n.t("upsell.messages.checklist.general.subtitle"), + extra: + //status: null + } + }, + payments: { + general: { + //icon: null, + title: i18n.t("upsell.messages.payments.general.title"), + subTitle: i18n.t("upsell.messages.payments.general.subtitle"), + extra: + //status: null + } + }, + audit: { + general: { + //icon: null, + title: i18n.t("upsell.messages.audit.general.title"), + subTitle: i18n.t("upsell.messages.audit.general.subtitle"), + extra: + //status: null + } + }, + lifecycle: { + general: { + //icon: null, + title: i18n.t("upsell.messages.lifecycle.general.title"), + subTitle: i18n.t("upsell.messages.lifecycle.general.subtitle"), + extra: + //status: null } + } + }, + media: { + general: { + //icon: null, + title: i18n.t("upsell.messages.media.general.title"), + subTitle: i18n.t("upsell.messages.media.general.subtitle"), + extra: + //status: null } + }, + mobile: { + icon: , + title: i18n.t("upsell.messages.media.mobile.title"), + subTitle: i18n.t("upsell.messages.media.mobile.subtitle"), + extra: + //status: null } + } + }, + timetickets: { + allocations: { + title: i18n.t("upsell.messages.timetickets.allocations.title"), + subTitle: i18n.t("upsell.messages.timetickets.allocations.subtitle"), + extra: + }, + general: { + title: i18n.t("upsell.messages.timetickets.general.title"), + subTitle: i18n.t("upsell.messages.timetickets.general.subtitle"), + extra: + } + }, + smartscheduling: { + general: { + icon: , + title: i18n.t("upsell.messages.smartscheduling.general.title"), + subTitle: i18n.t("upsell.messages.smartscheduling.general.subtitle"), + extra: + }, + hrsdelta: { + icon: , + title: i18n.t("upsell.messages.smartscheduling.hrsdelta.title"), + subTitle: i18n.t("upsell.messages.smartscheduling.hrsdelta.subtitle"), + extra: + }, + datepicker: { + icon: , + title: i18n.t("upsell.messages.smartscheduling.datepicker.title"), + subTitle: i18n.t("upsell.messages.smartscheduling.datepicker.subtitle"), + extra: + } + }, + accounting: { + payables: { + icon: , + title: i18n.t("upsell.messages.accounting.payables.title"), + subTitle: i18n.t("upsell.messages.accounting.payables.subtitle"), + extra: + }, + receivables: { + icon: , + title: i18n.t("upsell.messages.accounting.receivables.title"), + subTitle: i18n.t("upsell.messages.accounting.receivables.subtitle"), + extra: + }, + payments: { + icon: , + title: i18n.t("upsell.messages.accounting.payments.title"), + subTitle: i18n.t("upsell.messages.accounting.payments.subtitle"), + extra: + } + }, + courtesycars: { + general: { + icon: , + title: i18n.t("upsell.messages.courtesycars.general.title"), + subTitle: i18n.t("upsell.messages.courtesycars.general.subtitle"), + extra: + } + }, + dashboard: { + general: { + icon: , + title: i18n.t("upsell.messages.dashboard.general.title"), + subTitle: i18n.t("upsell.messages.dashboard.general.subtitle"), + extra: + } + }, + visualboard: { + general: { + icon: , + title: i18n.t("upsell.messages.visualboard.general.title"), + subTitle: i18n.t("upsell.messages.visualboard.general.subtitle"), + extra: + } + }, + scoreboard: { + general: { + icon: , + title: i18n.t("upsell.messages.scoreboard.general.title"), + subTitle: i18n.t("upsell.messages.scoreboard.general.subtitle"), + extra: + } + }, + techconsole: { + general: { + icon: , + title: i18n.t("upsell.messages.techconsole.general.title"), + subTitle: i18n.t("upsell.messages.techconsole.general.subtitle"), + extra: + } + }, + csi: { + general: { + icon: , + title: i18n.t("upsell.messages.csi.general.title"), + subTitle: i18n.t("upsell.messages.csi.general.subtitle"), + extra: + } + } +}); diff --git a/client/src/components/upsell/upsell.styles.scss b/client/src/components/upsell/upsell.styles.scss new file mode 100644 index 000000000..bc6be85d0 --- /dev/null +++ b/client/src/components/upsell/upsell.styles.scss @@ -0,0 +1,56 @@ +.mask-wrapper { + position: relative; +//Newly added + display: flex; + justify-content: center; + align-items: center; + min-height: 100px; /* Adjust as needed */ +} + +.mask-content { + // filter: blur(5px); + background-color: rgba(0, 0, 0, 0.05); + pointer-events: none; + + //Newly added + //width: 100%; +} + +.mask-overlay { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10; + // width: 100% +} + +.mask-overlay .ant-card { + max-width: 100%; +} + +// .mask-wrapper { +// position: relative; +// display: inline-block; +// } + +// .mask-content { +// filter: blur(5px); +// pointer-events: none; +// } + +// .mask-overlay { +// position: absolute; +// top: 0; +// left: 0; +// width: 100%; +// height: 100%; +// display: flex; +// justify-content: center; +// align-items: center; +// z-index: 10; +// } + +// .mask-overlay .ant-card { +// max-width: 100%; +// } diff --git a/client/src/components/user-request-pw-reset/user-request-reset-pw.component.jsx b/client/src/components/user-request-pw-reset/user-request-reset-pw.component.jsx index ce888ed64..38abe4936 100644 --- a/client/src/components/user-request-pw-reset/user-request-reset-pw.component.jsx +++ b/client/src/components/user-request-pw-reset/user-request-reset-pw.component.jsx @@ -55,15 +55,13 @@ export function UserRequestResetPw({ passwordReset, sendPasswordReset, sendPassw width="100" alt={InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") })} /> {InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") })} diff --git a/client/src/components/user-validate-pw-reset/user-validate-pw-reset.component.jsx b/client/src/components/user-validate-pw-reset/user-validate-pw-reset.component.jsx index 4ea899d01..9512a5668 100644 --- a/client/src/components/user-validate-pw-reset/user-validate-pw-reset.component.jsx +++ b/client/src/components/user-validate-pw-reset/user-validate-pw-reset.component.jsx @@ -75,16 +75,14 @@ export function UserValidatePwReset({ passwordReset, validatePasswordReset, oobC width={100} alt={InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") })} /> {InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") })} diff --git a/client/src/index.jsx b/client/src/index.jsx index a5a4149cb..2e47b02d1 100644 --- a/client/src/index.jsx +++ b/client/src/index.jsx @@ -31,8 +31,7 @@ if (import.meta.env.PROD) { Sentry.init({ dsn: InstanceRenderManager({ imex: "https://fd7e89369b6b4bdc9c6c4c9f22fa4ee4@o492140.ingest.sentry.io/5651027", - rome: "https://a6acc91c073e414196014b8484627a61@o492140.ingest.sentry.io/4504561071161344", - promanager: "" //TODO:AIO Add in the sentry tracker for proman. + rome: "https://a6acc91c073e414196014b8484627a61@o492140.ingest.sentry.io/4504561071161344" }), ignoreErrors: [ diff --git a/client/src/pages/accounting-payables/accounting-payables.container.jsx b/client/src/pages/accounting-payables/accounting-payables.container.jsx index 1055b21af..4e9b0dcfd 100644 --- a/client/src/pages/accounting-payables/accounting-payables.container.jsx +++ b/client/src/pages/accounting-payables/accounting-payables.container.jsx @@ -13,6 +13,8 @@ import { selectPartnerVersion } from "../../redux/application/application.select import { selectBodyshop } from "../../redux/user/user.selectors"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; +import { Card } from "antd"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -31,8 +33,7 @@ export function AccountingPayablesContainer({ bodyshop, setBreadcrumbs, setSelec document.title = t("titles.accounting-payables", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("payables"); @@ -58,7 +59,14 @@ export function AccountingPayablesContainer({ bodyshop, setBreadcrumbs, setSelec return (
- + + + + } + > {noPath && } diff --git a/client/src/pages/accounting-payments/accounting-payments.container.jsx b/client/src/pages/accounting-payments/accounting-payments.container.jsx index 77c6157fa..e3c01885d 100644 --- a/client/src/pages/accounting-payments/accounting-payments.container.jsx +++ b/client/src/pages/accounting-payments/accounting-payments.container.jsx @@ -13,6 +13,8 @@ import { checkPartnerStatus } from "../../components/partner-ping/partner-ping.c import { selectPartnerVersion } from "../../redux/application/application.selectors"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; +import { Card } from "antd"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -31,8 +33,7 @@ export function AccountingPaymentsContainer({ bodyshop, setBreadcrumbs, setSelec document.title = t("titles.accounting-payments", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("payments"); @@ -56,7 +57,14 @@ export function AccountingPaymentsContainer({ bodyshop, setBreadcrumbs, setSelec !(bodyshop && (bodyshop.cdk_dealerid || bodyshop.pbs_serialnumber || bodyshop.accountingconfig.qbo)); return (
- + + + + } + > {noPath && } diff --git a/client/src/pages/accounting-receivables/accounting-receivables.container.jsx b/client/src/pages/accounting-receivables/accounting-receivables.container.jsx index e1485a3a9..830eb6cfa 100644 --- a/client/src/pages/accounting-receivables/accounting-receivables.container.jsx +++ b/client/src/pages/accounting-receivables/accounting-receivables.container.jsx @@ -13,6 +13,8 @@ import { checkPartnerStatus } from "../../components/partner-ping/partner-ping.c import { selectPartnerVersion } from "../../redux/application/application.selectors"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -31,8 +33,7 @@ export function AccountingReceivablesContainer({ bodyshop, setBreadcrumbs, setSe document.title = t("titles.accounting-receivables", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("receivables"); @@ -61,7 +62,14 @@ export function AccountingReceivablesContainer({ bodyshop, setBreadcrumbs, setSe return (
- + + + + } + > {noPath && } diff --git a/client/src/pages/bills/bills.page.container.jsx b/client/src/pages/bills/bills.page.container.jsx index bf2dde4d5..5398cb87b 100644 --- a/client/src/pages/bills/bills.page.container.jsx +++ b/client/src/pages/bills/bills.page.container.jsx @@ -13,6 +13,8 @@ import BillsPageComponent from "./bills.page.component"; import { pageLimit } from "../../utils/config"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -28,8 +30,7 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.bills-list", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("bills"); @@ -54,7 +55,14 @@ export function BillsPageContainer({ setBreadcrumbs, setSelectedHeader }) { if (error) return ; return ( - + + + + } + >
+ + + + } + > ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -41,14 +42,12 @@ export function ContractDetailPageContainer({ setBreadcrumbs, addRecentItem, set document.title = loading ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : error ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : t("titles.contracts-detail", { id: (data && data.cccontracts_by_pk && data.cccontracts_by_pk.agreementnumber) || "" @@ -107,10 +106,17 @@ export function ContractDetailPageContainer({ setBreadcrumbs, addRecentItem, set if (error) return ; if (loading) return ; - if (!!!data.cccontracts_by_pk) return ; + if (!data.cccontracts_by_pk) return ; return ( - + + + + } + >
diff --git a/client/src/pages/contracts/contracts.page.container.jsx b/client/src/pages/contracts/contracts.page.container.jsx index 4653f654d..4652b30be 100644 --- a/client/src/pages/contracts/contracts.page.container.jsx +++ b/client/src/pages/contracts/contracts.page.container.jsx @@ -12,6 +12,8 @@ import ContractsPageComponent from "./contracts.page.component"; import { pageLimit } from "../../utils/config"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -41,8 +43,7 @@ export function ContractsPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.contracts", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("contracts"); @@ -57,7 +58,14 @@ export function ContractsPageContainer({ setBreadcrumbs, setSelectedHeader }) { if (error) return ; return ( - + + + + } + > - + + + + } + > + - + - - + + ); } diff --git a/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx b/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx index 8fc7efe6b..5fd1dc4b0 100644 --- a/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx +++ b/client/src/pages/courtesy-car-detail/courtesy-car-detail.page.container.jsx @@ -54,20 +54,17 @@ export function CourtesyCarDetailPageContainer({ setBreadcrumbs, addRecentItem, document.title = loading ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : error ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : t("titles.courtesycars-detail", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), id: (data && data.courtesycars_by_pk && data.courtesycars_by_pk.fleet_number) || "" }); diff --git a/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx b/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx index 607242570..ebbd2c0b6 100644 --- a/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx +++ b/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx @@ -9,6 +9,8 @@ import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/appli import CourtesyCarsPageComponent from "./courtesy-cars.page.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -25,8 +27,7 @@ export function CourtesyCarsPageContainer({ setBreadcrumbs, setSelectedHeader }) document.title = t("titles.courtesycars", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("courtesycarsall"); @@ -35,11 +36,18 @@ export function CourtesyCarsPageContainer({ setBreadcrumbs, setSelectedHeader }) if (error) return ; return ( - - + + + + } + > + - - + + ); } diff --git a/client/src/pages/csi/csi.container.page.jsx b/client/src/pages/csi/csi.container.page.jsx index 7e4857d1b..e3240ad38 100644 --- a/client/src/pages/csi/csi.container.page.jsx +++ b/client/src/pages/csi/csi.container.page.jsx @@ -70,15 +70,13 @@ export function CsiContainerPage({ currentUser }) { title={t("csi.labels.nologgedinuser", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} subTitle={t("csi.labels.nologgedinuser_sub", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} /> diff --git a/client/src/pages/dashboard/dashboard.container.jsx b/client/src/pages/dashboard/dashboard.container.jsx index 6094d678d..fd1b76e45 100644 --- a/client/src/pages/dashboard/dashboard.container.jsx +++ b/client/src/pages/dashboard/dashboard.container.jsx @@ -6,6 +6,8 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -19,8 +21,7 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.dashboard", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("dashboard"); @@ -33,7 +34,14 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) { }, [setBreadcrumbs, t, setSelectedHeader]); return ( - + + + + } + > diff --git a/client/src/pages/disclaimer/disclaimer.page.jsx b/client/src/pages/disclaimer/disclaimer.page.jsx index c6315e3d4..14593ac4d 100644 --- a/client/src/pages/disclaimer/disclaimer.page.jsx +++ b/client/src/pages/disclaimer/disclaimer.page.jsx @@ -9,9 +9,8 @@ export default function AboutPage() {
{`${InstanceRenderMgr({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") - })}Rome Online V.${import.meta.env.MODE}-${import.meta.env.VITE_APP_GIT_SHA}`} + rome: t("titles.romeonline") + })} V.${import.meta.env.MODE}-${import.meta.env.VITE_APP_GIT_SHA}`} Third Party Notices Application diff --git a/client/src/pages/dms-payables/dms-payables.container.jsx b/client/src/pages/dms-payables/dms-payables.container.jsx index 4fa92b9fb..21fd0f19e 100644 --- a/client/src/pages/dms-payables/dms-payables.container.jsx +++ b/client/src/pages/dms-payables/dms-payables.container.jsx @@ -46,8 +46,7 @@ export function DmsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.dms", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("dms"); diff --git a/client/src/pages/dms/dms.container.jsx b/client/src/pages/dms/dms.container.jsx index 3a8ac77b0..3b9fe6e42 100644 --- a/client/src/pages/dms/dms.container.jsx +++ b/client/src/pages/dms/dms.container.jsx @@ -65,8 +65,7 @@ export function DmsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader, inse document.title = t("titles.dms", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("dms"); diff --git a/client/src/pages/export-logs/export-logs.page.container.jsx b/client/src/pages/export-logs/export-logs.page.container.jsx index 885577b95..05fbe9426 100644 --- a/client/src/pages/export-logs/export-logs.page.container.jsx +++ b/client/src/pages/export-logs/export-logs.page.container.jsx @@ -6,6 +6,8 @@ import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/appli import ExportLogsPage from "./export-logs.page.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapDispatchToProps = (dispatch) => ({ setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)), @@ -19,8 +21,7 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.export-logs", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("export-logs"); @@ -33,7 +34,14 @@ export function ExportsLogPageContainer({ setBreadcrumbs, setSelectedHeader }) { }, [setBreadcrumbs, t, setSelectedHeader]); return ( - + + + + } + > diff --git a/client/src/pages/inventory/inventory.page.jsx b/client/src/pages/inventory/inventory.page.jsx index a6a1f128c..2b74e608d 100644 --- a/client/src/pages/inventory/inventory.page.jsx +++ b/client/src/pages/inventory/inventory.page.jsx @@ -19,8 +19,7 @@ export function InventoryPage({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.inventory", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("inventory"); diff --git a/client/src/pages/jobs-admin/jobs-admin.page.jsx b/client/src/pages/jobs-admin/jobs-admin.page.jsx index 03d726efd..c7c78ec95 100644 --- a/client/src/pages/jobs-admin/jobs-admin.page.jsx +++ b/client/src/pages/jobs-admin/jobs-admin.page.jsx @@ -52,8 +52,7 @@ export function JobsCloseContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.jobs-admin", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), ro_number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null }); diff --git a/client/src/pages/jobs-all/jobs-all.container.jsx b/client/src/pages/jobs-all/jobs-all.container.jsx index 88adc7921..d6c75544b 100644 --- a/client/src/pages/jobs-all/jobs-all.container.jsx +++ b/client/src/pages/jobs-all/jobs-all.container.jsx @@ -47,8 +47,7 @@ export function AllJobs({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.jobs-all", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("alljobs"); diff --git a/client/src/pages/jobs-available/jobs-available.page.container.jsx b/client/src/pages/jobs-available/jobs-available.page.container.jsx index bb17df1bf..9cbd509de 100644 --- a/client/src/pages/jobs-available/jobs-available.page.container.jsx +++ b/client/src/pages/jobs-available/jobs-available.page.container.jsx @@ -29,8 +29,7 @@ export function JobsAvailablePageContainer({ partnerVersion, setBreadcrumbs, set document.title = t("titles.jobsavailable", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("availablejobs"); @@ -55,8 +54,7 @@ export function JobsAvailablePageContainer({ partnerVersion, setBreadcrumbs, set @@ -66,7 +64,6 @@ export function JobsAvailablePageContainer({ partnerVersion, setBreadcrumbs, set app: InstanceRenderManager({ imex: "$t(titles.imexonline)", rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" }) })} /> diff --git a/client/src/pages/jobs-checklist-view/jobs-checklist-view.page.jsx b/client/src/pages/jobs-checklist-view/jobs-checklist-view.page.jsx index f25bace38..cc6bf193f 100644 --- a/client/src/pages/jobs-checklist-view/jobs-checklist-view.page.jsx +++ b/client/src/pages/jobs-checklist-view/jobs-checklist-view.page.jsx @@ -1,5 +1,5 @@ import { useQuery } from "@apollo/client"; -import { Col, Row, Typography } from "antd"; +import { Card, Col, Row, Typography } from "antd"; import dayjs from "../../utils/day"; import React, { useEffect } from "react"; import { useTranslation } from "react-i18next"; @@ -14,6 +14,8 @@ import { QUERY_JOB_CHECKLISTS } from "../../graphql/jobs.queries"; import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser @@ -37,8 +39,7 @@ export function JobsChecklistViewContainer({ bodyshop, setBreadcrumbs, setSelect document.title = t("titles.jobs-checklist", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("activejobs"); @@ -74,38 +75,47 @@ export function JobsChecklistViewContainer({ bodyshop, setBreadcrumbs, setSelect ); return ( - - - - {t("jobs.labels.intakechecklist")} - {data.jobs_by_pk.intakechecklist && data.jobs_by_pk.intakechecklist.form && ( - <> - - - - )} - - - {t("jobs.labels.deliverchecklist")} - {data.jobs_by_pk.deliverchecklist && data.jobs_by_pk.deliverchecklist.form && ( - <> - - - - )} - - - + + + + } + > + + + + {t("jobs.labels.intakechecklist")} + {data.jobs_by_pk.intakechecklist && data.jobs_by_pk.intakechecklist.form && ( + <> + + + + )} + + + {t("jobs.labels.deliverchecklist")} + {data.jobs_by_pk.deliverchecklist && data.jobs_by_pk.deliverchecklist.form && ( + <> + + + + )} + + + + ); } diff --git a/client/src/pages/jobs-close/jobs-close.container.jsx b/client/src/pages/jobs-close/jobs-close.container.jsx index ad47ae676..e237fab9f 100644 --- a/client/src/pages/jobs-close/jobs-close.container.jsx +++ b/client/src/pages/jobs-close/jobs-close.container.jsx @@ -39,8 +39,7 @@ export function JobsCloseContainer({ setBreadcrumbs, setSelectedHeader, setJobRe document.title = t("titles.jobs-close", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), number: data ? data.jobs_by_pk && data.jobs_by_pk.ro_number : null }); diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx index 2347f8f9a..9602a2f94 100644 --- a/client/src/pages/jobs-create/jobs-create.container.jsx +++ b/client/src/pages/jobs-create/jobs-create.container.jsx @@ -56,8 +56,7 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.jobs-create", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("newjob"); @@ -280,8 +279,7 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { tax_sub_rt: bodyshop.md_responsibility_centers.tax_sub_rt, tax_lbr_rt: bodyshop.md_responsibility_centers.tax_lbr_rt, tax_levies_rt: bodyshop.md_responsibility_centers.tax_levies_rt - }, - promanager: "USE_ROME" + } }) }} > diff --git a/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx b/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx index 1535936e9..077c83398 100644 --- a/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx +++ b/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx @@ -12,6 +12,9 @@ import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/appli import { selectBodyshop } from "../../redux/user/user.selectors"; import JobchecklistComponent from "../../components/job-checklist/job-checklist.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser @@ -35,8 +38,7 @@ export function JobsDeliverContainer({ bodyshop, setBreadcrumbs, setSelectedHead document.title = t("titles.jobs-deliver", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("activejobs"); @@ -60,15 +62,24 @@ export function JobsDeliverContainer({ bodyshop, setBreadcrumbs, setSelectedHead if (data && !!!data.bodyshops_by_pk.deliverchecklist) return ; return ( - -
- -
-
+ + + + } + > + +
+ +
+
+
); } diff --git a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx index a82da973c..20dba22c7 100644 --- a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx +++ b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx @@ -56,6 +56,7 @@ import { DateTimeFormat } from "../../utils/DateFormatter"; import dayjs from "../../utils/day"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; import UndefinedToNull from "../../utils/undefinedtonull"; +import LockWrapperComponent from "../../components/lock-wrapper/lock-wrapper.component.jsx"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -158,7 +159,7 @@ export function JobsDetailPage({ (acc, val) => { acc[val] = { ...job.parts_tax_rates[val], - ...values.parts_tax_rates?.[val] //TODO:AIO Verify that these still save for Rome Online with this null coalescing. + ...values.parts_tax_rates?.[val] }; return acc; }, @@ -376,9 +377,7 @@ export function JobsDetailPage({ key: "partssublet", id: "job-details-partssublet", icon: , - label: HasFeatureAccess({ featureName: "bills", bodyshop }) - ? t("menus.jobsdetail.partssublet") - : t("menus.jobsdetail.parts"), + label: t("menus.jobsdetail.partssublet"), children: ( ) }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) - }) - ? [ - { - key: "labor", - id: "job-details-labor", - icon: , - label: t("menus.jobsdetail.labor"), - children: - } - ] - : []), + + { + key: "labor", + id: "job-details-labor", + icon: , + label: ( + {t("menus.jobsdetail.labor")} + ), + children: + }, { key: "lifecycle", icon: , id: "job-details-lifecycle", - label: t("menus.jobsdetail.lifecycle"), + label: ( + {t("menus.jobsdetail.lifecycle")} + ), children: }, { @@ -419,25 +415,18 @@ export function JobsDetailPage({ forceRender: true, children: }, - ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "media", bodyshop }) - }) - ? [ - { - key: "documents", - id: "job-details-documents", - icon: , - label: t("jobs.labels.documents"), - children: bodyshop.uselocalmediaserver ? ( - - ) : ( - - ) - } - ] - : []), + + { + key: "documents", + id: "job-details-documents", + icon: , + label: {t("jobs.labels.documents")}, + children: bodyshop.uselocalmediaserver ? ( + + ) : ( + + ) + }, { key: "notes", id: "job-details-notes", @@ -449,7 +438,7 @@ export function JobsDetailPage({ key: "audit", icon: , id: "job-details-audit", - label: t("jobs.labels.audit"), + label: {t("jobs.labels.audit")}, children: }, { diff --git a/client/src/pages/jobs-detail/jobs-detail.page.container.jsx b/client/src/pages/jobs-detail/jobs-detail.page.container.jsx index 5ac3cfc74..814e0208a 100644 --- a/client/src/pages/jobs-detail/jobs-detail.page.container.jsx +++ b/client/src/pages/jobs-detail/jobs-detail.page.container.jsx @@ -18,9 +18,9 @@ import { } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import { CreateRecentItem } from "../../utils/create-recent-item"; +import InstanceRenderManager from "../../utils/instanceRenderMgr"; import IsJobReadOnly from "../../utils/jobReadOnly"; import JobsDetailPage from "./jobs-detail.page.component"; -import InstanceRenderManager from "../../utils/instanceRenderMgr"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -49,20 +49,17 @@ function JobsDetailPageContainer({ setBreadcrumbs, addRecentItem, setSelectedHea document.title = loading ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : error ? InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }) : t("titles.jobsdetail", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), ro_number: (data.jobs_by_pk && data.jobs_by_pk.ro_number) || t("general.labels.na") }); diff --git a/client/src/pages/jobs-intake/jobs-intake.page.container.jsx b/client/src/pages/jobs-intake/jobs-intake.page.container.jsx index a0a5bae84..54a8a561d 100644 --- a/client/src/pages/jobs-intake/jobs-intake.page.container.jsx +++ b/client/src/pages/jobs-intake/jobs-intake.page.container.jsx @@ -11,8 +11,10 @@ import { QUERY_INTAKE_CHECKLIST } from "../../graphql/bodyshop.queries"; import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; -import { Result } from "antd"; +import { Card, Result } from "antd"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ //currentUser: selectCurrentUser @@ -37,8 +39,7 @@ export function JobsIntakeContainer({ bodyshop, setBreadcrumbs, setSelectedHeade document.title = t("titles.jobs-intake", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("activejobs"); @@ -64,20 +65,29 @@ export function JobsIntakeContainer({ bodyshop, setBreadcrumbs, setSelectedHeade return ; return ( - -
- {!!data.jobs_by_pk.intakechecklist || - !bodyshop.md_ro_statuses.pre_production_statuses.includes(data.jobs_by_pk.status) ? ( - - ) : ( - - )} -
-
+ + + + } + > + +
+ {!!data.jobs_by_pk.intakechecklist || + !bodyshop.md_ro_statuses.pre_production_statuses.includes(data.jobs_by_pk.status) ? ( + + ) : ( + + )} +
+
+
); } diff --git a/client/src/pages/jobs-ready/jobs-ready.page.jsx b/client/src/pages/jobs-ready/jobs-ready.page.jsx index d1b1a58f9..ad8d1950c 100644 --- a/client/src/pages/jobs-ready/jobs-ready.page.jsx +++ b/client/src/pages/jobs-ready/jobs-ready.page.jsx @@ -19,8 +19,7 @@ export function JobsReadyPage({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.readyjobs", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("readyjobs"); diff --git a/client/src/pages/jobs/jobs.page.jsx b/client/src/pages/jobs/jobs.page.jsx index f330bb2f0..08dbb2985 100644 --- a/client/src/pages/jobs/jobs.page.jsx +++ b/client/src/pages/jobs/jobs.page.jsx @@ -19,8 +19,7 @@ export function JobsPage({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.jobs", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("activejobs"); diff --git a/client/src/pages/manage-root/manage-root.page.container.jsx b/client/src/pages/manage-root/manage-root.page.container.jsx index 1763dcb6b..c8b795618 100644 --- a/client/src/pages/manage-root/manage-root.page.container.jsx +++ b/client/src/pages/manage-root/manage-root.page.container.jsx @@ -21,8 +21,7 @@ export function ManageRootPageContainer({ setBreadcrumbs, bodyshop }) { document.title = t("titles.manageroot", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setBreadcrumbs([]); diff --git a/client/src/pages/manage/manage.page.component.jsx b/client/src/pages/manage/manage.page.component.jsx index b39ee69c4..05f599fae 100644 --- a/client/src/pages/manage/manage.page.component.jsx +++ b/client/src/pages/manage/manage.page.component.jsx @@ -193,8 +193,7 @@ export function Manage({ conflict, bodyshop, alerts, setAlerts }) { useEffect(() => { document.title = InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }); }, [t]); @@ -205,8 +204,7 @@ export function Manage({ conflict, bodyshop, alerts, setAlerts }) { message={t("general.labels.loadingapp", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} /> @@ -674,8 +672,7 @@ export function Manage({ conflict, bodyshop, alerts, setAlerts }) {
{`${InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") })} - ${import.meta.env.VITE_APP_GIT_SHA_DATE}`}
diff --git a/client/src/pages/owners-detail/owners-detail.page.container.jsx b/client/src/pages/owners-detail/owners-detail.page.container.jsx index 95904c01a..f10792fba 100644 --- a/client/src/pages/owners-detail/owners-detail.page.container.jsx +++ b/client/src/pages/owners-detail/owners-detail.page.container.jsx @@ -34,8 +34,7 @@ export function OwnersDetailContainer({ setBreadcrumbs, addRecentItem, setSelect document.title = t("titles.owners-detail", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), name: data ? OwnerNameDisplayFunction(data.owners_by_pk) : "" }); diff --git a/client/src/pages/owners/owners.page.container.jsx b/client/src/pages/owners/owners.page.container.jsx index 0729e2d84..ab380db42 100644 --- a/client/src/pages/owners/owners.page.container.jsx +++ b/client/src/pages/owners/owners.page.container.jsx @@ -17,8 +17,7 @@ export function OwnersPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.owners", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("owners"); diff --git a/client/src/pages/parts-queue/parts-queue.page.container.jsx b/client/src/pages/parts-queue/parts-queue.page.container.jsx index 91572e276..a4ed6d442 100644 --- a/client/src/pages/parts-queue/parts-queue.page.container.jsx +++ b/client/src/pages/parts-queue/parts-queue.page.container.jsx @@ -19,8 +19,7 @@ export function PartsQueuePageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.parts-queue", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("parts-queue"); diff --git a/client/src/pages/payments-all/payments-all.container.page.jsx b/client/src/pages/payments-all/payments-all.container.page.jsx index 9e63b8dfd..2b67c4737 100644 --- a/client/src/pages/payments-all/payments-all.container.page.jsx +++ b/client/src/pages/payments-all/payments-all.container.page.jsx @@ -14,6 +14,8 @@ import { selectBodyshop } from "../../redux/user/user.selectors"; import { pageLimit } from "../../utils/config"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; +import { Card } from "antd"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -49,8 +51,7 @@ export function AllJobs({ bodyshop, setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.payments-all", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("allpayments"); @@ -59,7 +60,15 @@ export function AllJobs({ bodyshop, setBreadcrumbs, setSelectedHeader }) { if (error) return ; return ( - + + + + } + z + > + + + + } + > diff --git a/client/src/pages/production-list/production-list.container.jsx b/client/src/pages/production-list/production-list.container.jsx index 9c7cc4892..f87364e7d 100644 --- a/client/src/pages/production-list/production-list.container.jsx +++ b/client/src/pages/production-list/production-list.container.jsx @@ -22,8 +22,7 @@ export function ProductionListContainer({ document.title = t("titles.productionlist", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("productionlist"); diff --git a/client/src/pages/profile/profile.container.page.jsx b/client/src/pages/profile/profile.container.page.jsx index 3ab67ec65..05f4172ba 100644 --- a/client/src/pages/profile/profile.container.page.jsx +++ b/client/src/pages/profile/profile.container.page.jsx @@ -19,7 +19,7 @@ export function ProfileContainerPage({ setBreadcrumbs, setSelectedHeader }) { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + }) }); }, [t, setBreadcrumbs, setSelectedHeader]); diff --git a/client/src/pages/schedule/schedule.page.container.jsx b/client/src/pages/schedule/schedule.page.container.jsx index 9ee7ff34c..cfb6fafdb 100644 --- a/client/src/pages/schedule/schedule.page.container.jsx +++ b/client/src/pages/schedule/schedule.page.container.jsx @@ -18,8 +18,7 @@ export function SchedulePageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.schedule", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("schedule"); diff --git a/client/src/pages/scoreboard/scoreboard.page.container.jsx b/client/src/pages/scoreboard/scoreboard.page.container.jsx index 693a1b977..7e15cae75 100644 --- a/client/src/pages/scoreboard/scoreboard.page.container.jsx +++ b/client/src/pages/scoreboard/scoreboard.page.container.jsx @@ -1,5 +1,5 @@ import Icon, { FieldTimeOutlined } from "@ant-design/icons"; -import { Tabs } from "antd"; +import { Card, Tabs } from "antd"; import queryString from "query-string"; import React, { useEffect } from "react"; import { useTranslation } from "react-i18next"; @@ -15,6 +15,7 @@ import ScoreboardTimeTickets from "../../components/scoreboard-timetickets/score import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; /** * Mapping state to props @@ -50,8 +51,7 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.scoreboard", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("scoreboard"); @@ -67,7 +67,14 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) { * Render the component */ return ( - + + + + } + > + + + + } + > diff --git a/client/src/pages/shop-csi/shop-csi.container.page.jsx b/client/src/pages/shop-csi/shop-csi.container.page.jsx index 4adcaf6cd..fe6e6cf02 100644 --- a/client/src/pages/shop-csi/shop-csi.container.page.jsx +++ b/client/src/pages/shop-csi/shop-csi.container.page.jsx @@ -1,5 +1,5 @@ import { useQuery } from "@apollo/client"; -import { Col, Row } from "antd"; +import { Card, Col, Row } from "antd"; import React, { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -12,6 +12,8 @@ import { QUERY_CSI_RESPONSE_PAGINATED } from "../../graphql/csi.queries"; import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -34,8 +36,7 @@ export function ShopCsiContainer({ bodyshop, setBreadcrumbs, setSelectedHeader } document.title = t("titles.shop-csi", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("shop-csi"); @@ -51,21 +52,30 @@ export function ShopCsiContainer({ bodyshop, setBreadcrumbs, setSelectedHeader } if (error) return ; return ( - - - - - - - - - - + + + + } + > + + + + + + + + + + + ); } diff --git a/client/src/pages/shop-vendor/shop-vendor.page.container.jsx b/client/src/pages/shop-vendor/shop-vendor.page.container.jsx index 5f41d3438..20c4da53c 100644 --- a/client/src/pages/shop-vendor/shop-vendor.page.container.jsx +++ b/client/src/pages/shop-vendor/shop-vendor.page.container.jsx @@ -23,8 +23,7 @@ export function ShopVendorPageContainer({ bodyshop, setBreadcrumbs, setSelectedH document.title = t("titles.shop_vendors", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("shop-vendors"); diff --git a/client/src/pages/shop/shop.page.component.jsx b/client/src/pages/shop/shop.page.component.jsx index 328d07247..b4b354b1d 100644 --- a/client/src/pages/shop/shop.page.component.jsx +++ b/client/src/pages/shop/shop.page.component.jsx @@ -34,8 +34,7 @@ export function ShopPage({ bodyshop, setSelectedHeader, setBreadcrumbs }) { document.title = t("titles.shop", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("shop"); diff --git a/client/src/pages/tasks/allTasksPageContainer.jsx b/client/src/pages/tasks/allTasksPageContainer.jsx index e85dc5b46..107143786 100644 --- a/client/src/pages/tasks/allTasksPageContainer.jsx +++ b/client/src/pages/tasks/allTasksPageContainer.jsx @@ -26,8 +26,7 @@ export function AllTasksPageContainer({ setBreadcrumbs, setSelectedHeader, setTa document.title = t("titles.all_tasks", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("all_tasks"); diff --git a/client/src/pages/tasks/myTasksPageContainer.jsx b/client/src/pages/tasks/myTasksPageContainer.jsx index 52b4b0fbf..4477e3878 100644 --- a/client/src/pages/tasks/myTasksPageContainer.jsx +++ b/client/src/pages/tasks/myTasksPageContainer.jsx @@ -21,8 +21,7 @@ export function MyTasksPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.my_tasks", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("my_tasks"); diff --git a/client/src/pages/tech-job-clock/tech-job-clock.component.jsx b/client/src/pages/tech-job-clock/tech-job-clock.component.jsx index f9c120be3..98b4e9bf2 100644 --- a/client/src/pages/tech-job-clock/tech-job-clock.component.jsx +++ b/client/src/pages/tech-job-clock/tech-job-clock.component.jsx @@ -13,8 +13,7 @@ export default function TechClockComponent() { document.title = t("titles.techjobclock", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); }, [t]); diff --git a/client/src/pages/tech-lookup/tech-lookup.container.jsx b/client/src/pages/tech-lookup/tech-lookup.container.jsx index a209777ba..74cbd1300 100644 --- a/client/src/pages/tech-lookup/tech-lookup.container.jsx +++ b/client/src/pages/tech-lookup/tech-lookup.container.jsx @@ -12,8 +12,7 @@ export default function TechLookupContainer() { document.title = t("titles.techjoblookup", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); }, [t]); diff --git a/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx b/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx index bdc9f8b32..85237280e 100644 --- a/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx +++ b/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx @@ -10,8 +10,7 @@ export default function TechShiftClock() { document.title = t("titles.techshiftclock", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); }, [t]); diff --git a/client/src/pages/tech/tech.page.component.jsx b/client/src/pages/tech/tech.page.component.jsx index 2be9f0a2a..5f66bb970 100644 --- a/client/src/pages/tech/tech.page.component.jsx +++ b/client/src/pages/tech/tech.page.component.jsx @@ -1,4 +1,4 @@ -import { FloatButton, Layout } from "antd"; +import { Card, FloatButton, Layout } from "antd"; import React, { lazy, Suspense, useEffect } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -14,6 +14,7 @@ import UpdateAlert from "../../components/update-alert/update-alert.component"; import { selectTechnician } from "../../redux/tech/tech.selectors"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; import "./tech.page.styles.scss"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component.jsx"; const TimeTicketModalContainer = lazy(() => import("../../components/time-ticket-modal/time-ticket-modal.container")); const EmailOverlayContainer = lazy(() => import("../../components/email-overlay/email-overlay.container.jsx")); @@ -50,8 +51,7 @@ export function TechPage({ technician }) { useEffect(() => { document.title = InstanceRenderManager({ imex: t("titles.imexonline"), - rome: t("titles.romeonline"), - promanager: t("titles.promanager") + rome: t("titles.romeonline") }); }, [t]); @@ -77,14 +77,20 @@ export function TechPage({ technician }) { message={t("general.labels.loadingapp", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} /> } > - + + + + } + > diff --git a/client/src/pages/temporary-docs/temporary-docs.container.jsx b/client/src/pages/temporary-docs/temporary-docs.container.jsx index bb8785838..44d848230 100644 --- a/client/src/pages/temporary-docs/temporary-docs.container.jsx +++ b/client/src/pages/temporary-docs/temporary-docs.container.jsx @@ -8,6 +8,8 @@ import { selectBodyshop } from "../../redux/user/user.selectors"; import TemporaryDocsComponent from "./temporary-docs.component"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -25,8 +27,7 @@ export function TempDocumentsContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.temporarydocs", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("temporarydocs"); @@ -39,11 +40,18 @@ export function TempDocumentsContainer({ setBreadcrumbs, setSelectedHeader }) { }, [t, setBreadcrumbs, setSelectedHeader]); return ( - - + + + + } + > + - - + + ); } diff --git a/client/src/pages/time-tickets/time-tickets.container.jsx b/client/src/pages/time-tickets/time-tickets.container.jsx index 766bd62e0..f1492a9d9 100644 --- a/client/src/pages/time-tickets/time-tickets.container.jsx +++ b/client/src/pages/time-tickets/time-tickets.container.jsx @@ -1,5 +1,5 @@ import { useQuery } from "@apollo/client"; -import { Col, Row, Space } from "antd"; +import { Card, Col, Row, Space } from "antd"; import dayjs from "../../utils/day"; import React, { useEffect } from "react"; import { useTranslation } from "react-i18next"; @@ -20,6 +20,7 @@ import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wr import InstanceRenderManager from "../../utils/instanceRenderMgr"; import { useSplitTreatments } from "@splitsoftware/splitio-react"; import { selectBodyshop } from "../../redux/user/user.selectors"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -58,8 +59,7 @@ export function TimeTicketsContainer({ bodyshop, setBreadcrumbs, setSelectedHead document.title = t("titles.timetickets", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("timetickets"); @@ -74,7 +74,14 @@ export function TimeTicketsContainer({ bodyshop, setBreadcrumbs, setSelectedHead if (error) return ; return ( - + + + + } + > diff --git a/client/src/pages/tt-approvals/tt-approvals.page.container.jsx b/client/src/pages/tt-approvals/tt-approvals.page.container.jsx index 6f30c0727..530a04503 100644 --- a/client/src/pages/tt-approvals/tt-approvals.page.container.jsx +++ b/client/src/pages/tt-approvals/tt-approvals.page.container.jsx @@ -8,6 +8,8 @@ import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/appli import { selectBodyshop } from "../../redux/user/user.selectors"; import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { Card } from "antd"; +import UpsellComponent, { upsellEnum } from "../../components/upsell/upsell.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -25,8 +27,7 @@ export function TtApprovalsPage({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.ttapprovals", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("ttapprovals"); @@ -39,7 +40,14 @@ export function TtApprovalsPage({ setBreadcrumbs, setSelectedHeader }) { }, [t, setBreadcrumbs, setSelectedHeader]); return ( - + + + + } + > diff --git a/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx b/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx index ac3be0137..1f2917f4f 100644 --- a/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx +++ b/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx @@ -32,8 +32,7 @@ export function VehicleDetailContainer({ setBreadcrumbs, addRecentItem, setSelec document.title = t("titles.vehicledetail", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }), vehicle: data && data.vehicles_by_pk diff --git a/client/src/pages/vehicles/vehicles.page.container.jsx b/client/src/pages/vehicles/vehicles.page.container.jsx index 96a0af2b7..539c09dbb 100644 --- a/client/src/pages/vehicles/vehicles.page.container.jsx +++ b/client/src/pages/vehicles/vehicles.page.container.jsx @@ -18,8 +18,7 @@ export function VehiclesPageContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.vehicles", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("vehicles"); diff --git a/client/src/redux/email/email.reducer.js b/client/src/redux/email/email.reducer.js index 86582d98d..bd9485d97 100644 --- a/client/src/redux/email/email.reducer.js +++ b/client/src/redux/email/email.reducer.js @@ -8,8 +8,7 @@ const INITIAL_STATE = { name: "ShopName", address: InstanceRenderManager({ imex: "noreply@iemx.online", - rome: "noreply@romeonline.io", - promanager: "noreply@promanager.web-est.com" + rome: "noreply@romeonline.io" }) }, to: null, diff --git a/client/src/redux/store.js b/client/src/redux/store.js index 0697e722c..7ef5aa73b 100644 --- a/client/src/redux/store.js +++ b/client/src/redux/store.js @@ -30,7 +30,6 @@ export const store = configureStore({ middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: false, - // TODO: (Note) This is a production board change immutableCheck: false }).concat(middlewares), // middleware: middlewares, diff --git a/client/src/redux/user/user.sagas.js b/client/src/redux/user/user.sagas.js index 423b40283..8cd70c480 100644 --- a/client/src/redux/user/user.sagas.js +++ b/client/src/redux/user/user.sagas.js @@ -15,7 +15,6 @@ import { getToken } from "firebase/messaging"; import i18next from "i18next"; import LogRocket from "logrocket"; import { all, call, delay, put, select, takeLatest } from "redux-saga/effects"; -import { Userpilot } from "userpilot"; import { factory } from "../../App/App.container"; import { analytics, @@ -245,12 +244,6 @@ export function* signInSuccessSaga({ payload }) { rome: () => { window.$zoho.salesiq.visitor.name(payload.displayName || payload.email); window.$zoho.salesiq.visitor.email(payload.email); - }, - promanager: () => { - Userpilot.identify(payload.email, { - email: payload.email - }); - console.log("*** Userpilot identified."); } }); } catch (error) { @@ -281,8 +274,7 @@ export function* sendPasswordResetEmailSaga({ payload }) { yield sendPasswordResetEmail(auth, payload, { url: InstanceRenderManager({ imex: "https://imex.online/passwordreset", - rome: "https://romeonline.io/passwordreset", - promanager: "https:promanager.web-est.com/passwordreset" + rome: "https://romeonline.io/passwordreset" }) }); @@ -330,41 +322,10 @@ export function* SetAuthLevelFromShopDetails({ payload }) { const user = yield select((state) => state.user.currentUser); if (payload.features.singleDeviceOnly) { - if ( - !( - user.email.includes("@imex.") || - user.email.includes("@rome.") || - user.email.includes("@rometech.") || - user.email.includes("@promanager.") - ) - ) + if (!(user.email.includes("@imex.") || user.email.includes("@rome.") || user.email.includes("@rometech."))) yield put(setInstanceId(user.uid)); } - //For Rome, check to make sure it's not a PM shop. - try { - InstanceRenderManager({ - executeFunction: true, - args: [], - rome: () => { - if ( - payload.imexshopid.toLowerCase().startsWith("pm_") && - !( - user.email.includes("@imex.") || - user.email.includes("@rome.") || - user.email.includes("@rometech.") || - user.email.includes("@promanager.") - ) - ) { - throw new Error("You are not authorized to use this application."); - } - }, - promanager: () => {} - }); - } catch (error) { - yield put(setInstanceConflict()); - } - try { InstanceRenderManager({ executeFunction: true, diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index be7c095e3..f153a242a 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1,262 +1,262 @@ { - "translation": { - "allocations": { - "actions": { - "assign": "Assign" - }, - "errors": { - "deleting": "Error encountered while deleting allocation. {{message}}", - "saving": "Error while allocating. {{message}}", - "validation": "Please ensure all fields are entered correctly. " - }, - "fields": { - "employee": "Allocated To" - }, - "successes": { - "deleted": "Allocation deleted successfully.", - "save": "Allocated successfully. " - } - }, - "appointments": { - "actions": { - "block": "Block Day", - "calculate": "Calculate SMART Dates", - "cancel": "Cancel Appointment", - "intake": "Intake", - "new": "New Appointment", - "preview": "Preview", - "reschedule": "Reschedule", - "sendreminder": "Send Reminder", - "unblock": "Unblock", - "viewjob": "View Job" - }, - "errors": { - "blocking": "Error creating block {{message}}.", - "canceling": "Error canceling appointment. {{message}}", - "saving": "Error scheduling appointment. {{message}}" - }, - "fields": { - "alt_transport": "Alt. Trans.", - "color": "Appointment Color", - "end": "End", - "note": "Note", - "start": "Start", - "time": "Appointment Time", - "title": "Title" - }, - "labels": { - "arrivedon": "Arrived on: ", - "arrivingjobs": "Arriving Jobs", - "blocked": "Blocked", - "cancelledappointment": "Canceled appointment for: ", - "completingjobs": "Completing Jobs", - "dataconsistency": "<0>{{ro_number}} has a data consistency issue. It may have been excluded for scheduling purposes. CODE: {{code}}.", - "expectedjobs": "Expected Jobs in Production: ", - "expectedprodhrs": "Expected Production Hours:", - "history": "History", - "inproduction": "Jobs In Production", - "manualevent": "Add Manual Appointment", - "noarrivingjobs": "No Jobs are arriving.", - "nocompletingjobs": "No Jobs scheduled for completion.", - "nodateselected": "No date has been selected.", - "priorappointments": "Previous Appointments", - "reminder": "This is {{shopname}} reminding you about an appointment on {{date}} at {{time}}. Please let us know if you are not able to make the appointment. We look forward to seeing you soon. ", - "scheduledfor": "Scheduled appointment for: ", - "severalerrorsfound": "Several Jobs have issues which may prevent accurate smart scheduling. Click to expand.", - "smartscheduling": "Smart Scheduling", - "smspaymentreminder": "This is {{shopname}} reminding you about your remaining balance of {{amount}}. To pay for the said balance click the link {{payment_link}}.", - "suggesteddates": "Suggested Dates" - }, - "successes": { - "canceled": "Appointment canceled successfully.", - "created": "Appointment scheduled successfully.", - "saved": "Appointment saved successfully." - } - }, - "associations": { - "actions": { - "activate": "Activate" - }, - "fields": { - "active": "Active?", - "shopname": "Shop Name" - }, - "labels": { - "actions": "Actions" - } - }, - "audit": { - "fields": { - "cc": "CC", - "contents": "Contents", - "created": "Time", - "operation": "Operation", - "status": "Status", - "subject": "Subject", - "to": "To", - "useremail": "User", - "values": "Values" - } - }, - "audit_trail": { - "messages": { - "admin_job_remove_from_ar": "ADMIN: Remove from AR updated to: {{status}}", - "admin_jobmarkexported": "ADMIN: Job marked as exported.", - "admin_jobmarkforreexport": "ADMIN: Job marked for re-export.", - "admin_jobuninvoice": "ADMIN: Job has been uninvoiced.", - "admin_jobunvoid": "ADMIN: Job has been unvoided.", - "alerttoggle": "Alert Toggle set to {{status}}", - "appointmentcancel": "Appointment canceled. Lost Reason: {{lost_sale_reason}}.", - "appointmentinsert": "Appointment created. Appointment Date: {{start}}.", - "assignedlinehours": "Assigned job lines totaling {{hours}} units to {{team}}.", - "billdeleted": "Bill with invoice number {{invoice_number}} deleted.", - "billposted": "Bill with invoice number {{invoice_number}} posted.", - "billupdated": "Bill with invoice number {{invoice_number}} updated.", - "failedpayment": "Failed payment attempt.", - "jobassignmentchange": "Employee {{name}} assigned to {{operation}}", - "jobassignmentremoved": "Employee assignment removed for {{operation}}", - "jobchecklist": "Checklist type \"{{type}}\" completed. In production set to {{inproduction}}. Status set to {{status}}.", - "jobclosedwithbypass": "Job was invoiced using the master bypass password. ", - "jobconverted": "Job converted and assigned number {{ro_number}}.", - "jobdelivery": "Job intake completed. Status set to {{status}}. Actual completion is {{actual_completion}}.", - "jobexported": "Job has been exported", - "jobfieldchanged": "Job field $t(jobs.fields.{{field}}) changed to {{value}}.", - "jobimported": "Job imported.", - "jobinproductionchange": "Job production status set to {{inproduction}}", - "jobintake": "Job intake completed. Status set to {{status}}. Scheduled completion is {{scheduled_completion}}.", - "jobinvoiced": "Job has been invoiced.", - "jobioucreated": "IOU Created.", - "jobmodifylbradj": "Labor adjustments modified {{mod_lbr_ty}} / {{hours}}.", - "jobnoteadded": "Note added to Job.", - "jobnotedeleted": "Note deleted from Job.", - "jobnoteupdated": "Note updated on Job.", - "jobspartsorder": "Parts order {{order_number}} added to Job.", - "jobspartsreturn": "Parts return {{order_number}} added to Job.", - "jobstatuschange": "Job status changed to {{status}}.", - "jobsupplement": "Job supplement imported.", - "jobsuspend": "Suspend Toggle set to {{status}}", - "jobvoid": "Job has been voided.", - "tasks_completed": "Task '{{title}}' completed by {{completedBy}}", - "tasks_created": "Task '{{title}}' created by {{createdBy}}", - "tasks_deleted": "Task '{{title}}' deleted by {{deletedBy}}", - "tasks_uncompleted": "Task '{{title}}' uncompleted by {{uncompletedBy}}", - "tasks_undeleted": "Task '{{title}}' undeleted by {{undeletedBy}}", - "tasks_updated": "Task '{{title}}' updated by {{updatedBy}}" - } - }, - "billlines": { - "actions": { - "newline": "New Line" - }, - "fields": { - "actual_cost": "Actual Cost", - "actual_price": "Retail", - "cost_center": "Cost Center", - "federal_tax_applicable": "Fed. Tax?", - "jobline": "Job Line", - "line_desc": "Line Description", - "local_tax_applicable": "Loc. Tax?", - "location": "Location", - "quantity": "Quantity", - "state_tax_applicable": "St. Tax?" - }, - "labels": { - "deductedfromlbr": "Deduct from Labor?", - "entered": "Entered", - "from": "From", - "mod_lbr_adjustment": "Adjustment Units", - "other": "-- Not On Estimate --", - "reconciled": "Reconciled!", - "unreconciled": "Unreconciled" - }, - "validation": { - "atleastone": "At least one bill line must be entered." - } - }, - "bills": { - "actions": { - "deductallhours": "Deduct all", - "edit": "Edit", - "receive": "Receive Part", - "return": "Return Items" - }, - "errors": { - "creating": "Error adding bill. {{error}}", - "deleting": "Error deleting bill. {{error}}", - "existinginventoryline": "This bill cannot be deleted as it is tied to items in inventory.", - "exporting": "Error exporting payable(s). {{error}}", - "exporting-partner": "Unable to connect to partner application. Please ensure it is running and logged in.", - "invalidro": "Not a valid RO.", - "invalidvendor": "Not a valid vendor.", - "validation": "Please ensure all fields are entered correctly. " - }, - "fields": { - "allpartslocation": "Parts Bin", - "date": "Bill Date", - "exported": "Exported", - "federal_tax_rate": "Federal Tax Rate", - "invoice_number": "Invoice Number", - "is_credit_memo": "Credit Memo?", - "is_credit_memo_short": "CM", - "local_tax_rate": "Local Tax Rate", - "ro_number": "RO Number", - "state_tax_rate": "State Tax Rate", - "total": "Bill Total", - "vendor": "Vendor", - "vendorname": "Vendor Name" - }, - "labels": { - "actions": "Actions", - "bill_lines": "Bill Lines", - "bill_total": "Bill Total Amount", - "billcmtotal": "Credit Memos", - "bills": "Bills", - "calculatedcreditsnotreceived": "Calculated CNR", - "creditsnotreceived": "Credits Not Marked Received", - "creditsreceived": "Credits Received", - "dedfromlbr": "Labor Adjustments", - "deleteconfirm": "Are you sure you want to delete this bill? It cannot be undone. If this bill has deductions from labors, manual changes may be required.", - "discrepancy": "Discrepancy", - "discrepwithcms": "Discrepancy including Credit Memos", - "discrepwithlbradj": "Discrepancy including Lbr. Adj.", - "editadjwarning": "This bill had lines which resulted in labor adjustments. Manual correction to adjustments may be required.", - "entered_total": "Total of Entered Lines", - "enteringcreditmemo": "You are entering a credit memo. Please ensure you are also entering positive values.", - "federal_tax": "Federal Tax", - "federal_tax_exempt": "Federal Tax Exempt?", - "generatepartslabel": "Generate Parts Labels after Saving?", - "iouexists": "An IOU exists that is associated to this RO.", - "local_tax": "Local Tax", - "markexported": "Mark Exported", - "markforreexport": "Mark for Re-export", - "new": "New Bill", - "nobilllines": "", - "noneselected": "No bill selected.", - "onlycmforinvoiced": "Only credit memos can be entered for any Job that has been invoiced, exported, or voided.", - "printlabels": "Print Labels", - "retailtotal": "Bills Retail Total", - "returnfrombill": "Return From Bill", - "savewithdiscrepancy": "You are about to save this bill with a discrepancy. The system will continue to use the calculated amount using the bill lines. Press cancel to return to the bill.", - "state_tax": "State Tax", - "subtotal": "Subtotal", - "totalreturns": "Total Returns" - }, - "successes": { - "created": "Invoice added successfully.", - "deleted": "Bill deleted successfully.", - "exported": "Bill(s) exported successfully.", - "markexported": "Bill marked as exported.", - "reexport": "Bill marked for re-export." - }, - "validation": { - "closingperiod": "This Bill Date is outside of the Closing Period.", - "inventoryquantity": "Quantity must be greater than or equal to what has been added to inventory ({{number}}).", - "manualinhouse": "Manual posting to the in house vendor is restricted. ", - "unique_invoice_number": "This invoice number has already been entered for this vendor." - } - }, - "bodyshop": { - "operations": { + "translation": { + "allocations": { + "actions": { + "assign": "Assign" + }, + "errors": { + "deleting": "Error encountered while deleting allocation. {{message}}", + "saving": "Error while allocating. {{message}}", + "validation": "Please ensure all fields are entered correctly. " + }, + "fields": { + "employee": "Allocated To" + }, + "successes": { + "deleted": "Allocation deleted successfully.", + "save": "Allocated successfully. " + } + }, + "appointments": { + "actions": { + "block": "Block Day", + "calculate": "Calculate SMART Dates", + "cancel": "Cancel Appointment", + "intake": "Intake", + "new": "New Appointment", + "preview": "Preview", + "reschedule": "Reschedule", + "sendreminder": "Send Reminder", + "unblock": "Unblock", + "viewjob": "View Job" + }, + "errors": { + "blocking": "Error creating block {{message}}.", + "canceling": "Error canceling appointment. {{message}}", + "saving": "Error scheduling appointment. {{message}}" + }, + "fields": { + "alt_transport": "Alt. Trans.", + "color": "Appointment Color", + "end": "End", + "note": "Note", + "start": "Start", + "time": "Appointment Time", + "title": "Title" + }, + "labels": { + "arrivedon": "Arrived on: ", + "arrivingjobs": "Arriving Jobs", + "blocked": "Blocked", + "cancelledappointment": "Canceled appointment for: ", + "completingjobs": "Completing Jobs", + "dataconsistency": "<0>{{ro_number}} has a data consistency issue. It may have been excluded for scheduling purposes. CODE: {{code}}.", + "expectedjobs": "Expected Jobs in Production: ", + "expectedprodhrs": "Expected Production Hours:", + "history": "History", + "inproduction": "Jobs In Production", + "manualevent": "Add Manual Appointment", + "noarrivingjobs": "No Jobs are arriving.", + "nocompletingjobs": "No Jobs scheduled for completion.", + "nodateselected": "No date has been selected.", + "priorappointments": "Previous Appointments", + "reminder": "This is {{shopname}} reminding you about an appointment on {{date}} at {{time}}. Please let us know if you are not able to make the appointment. We look forward to seeing you soon. ", + "scheduledfor": "Scheduled appointment for: ", + "severalerrorsfound": "Several Jobs have issues which may prevent accurate smart scheduling. Click to expand.", + "smartscheduling": "Smart Scheduling", + "smspaymentreminder": "This is {{shopname}} reminding you about your remaining balance of {{amount}}. To pay for the said balance click the link {{payment_link}}.", + "suggesteddates": "Suggested Dates" + }, + "successes": { + "canceled": "Appointment canceled successfully.", + "created": "Appointment scheduled successfully.", + "saved": "Appointment saved successfully." + } + }, + "associations": { + "actions": { + "activate": "Activate" + }, + "fields": { + "active": "Active?", + "shopname": "Shop Name" + }, + "labels": { + "actions": "Actions" + } + }, + "audit": { + "fields": { + "cc": "CC", + "contents": "Contents", + "created": "Time", + "operation": "Operation", + "status": "Status", + "subject": "Subject", + "to": "To", + "useremail": "User", + "values": "Values" + } + }, + "audit_trail": { + "messages": { + "admin_job_remove_from_ar": "ADMIN: Remove from AR updated to: {{status}}", + "admin_jobmarkexported": "ADMIN: Job marked as exported.", + "admin_jobmarkforreexport": "ADMIN: Job marked for re-export.", + "admin_jobuninvoice": "ADMIN: Job has been uninvoiced.", + "admin_jobunvoid": "ADMIN: Job has been unvoided.", + "alerttoggle": "Alert Toggle set to {{status}}", + "appointmentcancel": "Appointment canceled. Lost Reason: {{lost_sale_reason}}.", + "appointmentinsert": "Appointment created. Appointment Date: {{start}}.", + "assignedlinehours": "Assigned job lines totaling {{hours}} units to {{team}}.", + "billdeleted": "Bill with invoice number {{invoice_number}} deleted.", + "billposted": "Bill with invoice number {{invoice_number}} posted.", + "billupdated": "Bill with invoice number {{invoice_number}} updated.", + "failedpayment": "Failed payment attempt.", + "jobassignmentchange": "Employee {{name}} assigned to {{operation}}", + "jobassignmentremoved": "Employee assignment removed for {{operation}}", + "jobchecklist": "Checklist type \"{{type}}\" completed. In production set to {{inproduction}}. Status set to {{status}}.", + "jobclosedwithbypass": "Job was invoiced using the master bypass password. ", + "jobconverted": "Job converted and assigned number {{ro_number}}.", + "jobdelivery": "Job intake completed. Status set to {{status}}. Actual completion is {{actual_completion}}.", + "jobexported": "Job has been exported", + "jobfieldchanged": "Job field $t(jobs.fields.{{field}}) changed to {{value}}.", + "jobimported": "Job imported.", + "jobinproductionchange": "Job production status set to {{inproduction}}", + "jobintake": "Job intake completed. Status set to {{status}}. Scheduled completion is {{scheduled_completion}}.", + "jobinvoiced": "Job has been invoiced.", + "jobioucreated": "IOU Created.", + "jobmodifylbradj": "Labor adjustments modified {{mod_lbr_ty}} / {{hours}}.", + "jobnoteadded": "Note added to Job.", + "jobnotedeleted": "Note deleted from Job.", + "jobnoteupdated": "Note updated on Job.", + "jobspartsorder": "Parts order {{order_number}} added to Job.", + "jobspartsreturn": "Parts return {{order_number}} added to Job.", + "jobstatuschange": "Job status changed to {{status}}.", + "jobsupplement": "Job supplement imported.", + "jobsuspend": "Suspend Toggle set to {{status}}", + "jobvoid": "Job has been voided.", + "tasks_completed": "Task '{{title}}' completed by {{completedBy}}", + "tasks_created": "Task '{{title}}' created by {{createdBy}}", + "tasks_deleted": "Task '{{title}}' deleted by {{deletedBy}}", + "tasks_uncompleted": "Task '{{title}}' uncompleted by {{uncompletedBy}}", + "tasks_undeleted": "Task '{{title}}' undeleted by {{undeletedBy}}", + "tasks_updated": "Task '{{title}}' updated by {{updatedBy}}" + } + }, + "billlines": { + "actions": { + "newline": "New Line" + }, + "fields": { + "actual_cost": "Actual Cost", + "actual_price": "Retail", + "cost_center": "Cost Center", + "federal_tax_applicable": "Fed. Tax?", + "jobline": "Job Line", + "line_desc": "Line Description", + "local_tax_applicable": "Loc. Tax?", + "location": "Location", + "quantity": "Quantity", + "state_tax_applicable": "St. Tax?" + }, + "labels": { + "deductedfromlbr": "Deduct from Labor?", + "entered": "Entered", + "from": "From", + "mod_lbr_adjustment": "Adjustment Units", + "other": "-- Not On Estimate --", + "reconciled": "Reconciled!", + "unreconciled": "Unreconciled" + }, + "validation": { + "atleastone": "At least one bill line must be entered." + } + }, + "bills": { + "actions": { + "deductallhours": "Deduct all", + "edit": "Edit", + "receive": "Receive Part", + "return": "Return Items" + }, + "errors": { + "creating": "Error adding bill. {{error}}", + "deleting": "Error deleting bill. {{error}}", + "existinginventoryline": "This bill cannot be deleted as it is tied to items in inventory.", + "exporting": "Error exporting payable(s). {{error}}", + "exporting-partner": "Unable to connect to partner application. Please ensure it is running and logged in.", + "invalidro": "Not a valid RO.", + "invalidvendor": "Not a valid vendor.", + "validation": "Please ensure all fields are entered correctly. " + }, + "fields": { + "allpartslocation": "Parts Bin", + "date": "Bill Date", + "exported": "Exported", + "federal_tax_rate": "Federal Tax Rate", + "invoice_number": "Invoice Number", + "is_credit_memo": "Credit Memo?", + "is_credit_memo_short": "CM", + "local_tax_rate": "Local Tax Rate", + "ro_number": "RO Number", + "state_tax_rate": "State Tax Rate", + "total": "Bill Total", + "vendor": "Vendor", + "vendorname": "Vendor Name" + }, + "labels": { + "actions": "Actions", + "bill_lines": "Bill Lines", + "bill_total": "Bill Total Amount", + "billcmtotal": "Credit Memos", + "bills": "Bills", + "calculatedcreditsnotreceived": "Calculated CNR", + "creditsnotreceived": "Credits Not Marked Received", + "creditsreceived": "Credits Received", + "dedfromlbr": "Labor Adjustments", + "deleteconfirm": "Are you sure you want to delete this bill? It cannot be undone. If this bill has deductions from labors, manual changes may be required.", + "discrepancy": "Discrepancy", + "discrepwithcms": "Discrepancy including Credit Memos", + "discrepwithlbradj": "Discrepancy including Lbr. Adj.", + "editadjwarning": "This bill had lines which resulted in labor adjustments. Manual correction to adjustments may be required.", + "entered_total": "Total of Entered Lines", + "enteringcreditmemo": "You are entering a credit memo. Please ensure you are also entering positive values.", + "federal_tax": "Federal Tax", + "federal_tax_exempt": "Federal Tax Exempt?", + "generatepartslabel": "Generate Parts Labels after Saving?", + "iouexists": "An IOU exists that is associated to this RO.", + "local_tax": "Local Tax", + "markexported": "Mark Exported", + "markforreexport": "Mark for Re-export", + "new": "New Bill", + "nobilllines": "No bills have been posted yet.", + "noneselected": "No bill selected.", + "onlycmforinvoiced": "Only credit memos can be entered for any Job that has been invoiced, exported, or voided.", + "printlabels": "Print Labels", + "retailtotal": "Bills Retail Total", + "returnfrombill": "Return From Bill", + "savewithdiscrepancy": "You are about to save this bill with a discrepancy. The system will continue to use the calculated amount using the bill lines. Press cancel to return to the bill.", + "state_tax": "State Tax", + "subtotal": "Subtotal", + "totalreturns": "Total Returns" + }, + "successes": { + "created": "Invoice added successfully.", + "deleted": "Bill deleted successfully.", + "exported": "Bill(s) exported successfully.", + "markexported": "Bill marked as exported.", + "reexport": "Bill marked for re-export." + }, + "validation": { + "closingperiod": "This Bill Date is outside of the Closing Period.", + "inventoryquantity": "Quantity must be greater than or equal to what has been added to inventory ({{number}}).", + "manualinhouse": "Manual posting to the in house vendor is restricted. ", + "unique_invoice_number": "This invoice number has already been entered for this vendor." + } + }, + "bodyshop": { + "operations": { "starts_with": "Starts With", "contains": "Contains", "ends_with": "Ends With", @@ -266,3361 +266,3488 @@ "less_than": "Less Than" }, "actions": { - "add_task_preset": "Add Task Preset", - "addapptcolor": "Add Appointment Color", - "addbucket": "Add Definition", - "addpartslocation": "Add Parts Location", - "addpartsrule": "Add Parts Scan Rule", - "addspeedprint": "Add Speed Print", - "addtemplate": "Add Template", - "newlaborrate": "New Labor Rate", - "newsalestaxcode": "New Sales Tax Code", - "newstatus": "Add Status", - "testrender": "Test Render" - }, - "errors": { - "creatingdefaultview": "Error creating default view.", - "loading": "Unable to load shop details. Please call technical support.", - "saving": "Error encountered while saving. {{message}}" - }, - "fields": { - "ReceivableCustomField": "QBO Receivable Custom Field {{number}}", - "address1": "Address 1", - "address2": "Address 2", - "appt_alt_transport": "Appointment Alternative Transportation Options", - "appt_colors": { - "color": "Color", - "label": "Label" - }, - "appt_length": "Default Appointment Length", - "attach_pdf_to_email": "Attach PDF copy to sent emails?", - "batchid": "ADP Batch ID", - "bill_allow_post_to_closed": "Allow Bills to be posted to Closed Jobs", - "bill_federal_tax_rate": "Bills - Federal Tax Rate %", - "bill_local_tax_rate": "Bill - Local Tax Rate %", - "bill_state_tax_rate": "Bill - Provincial/State Tax Rate %", - "city": "City", - "closingperiod": "Closing Period", - "companycode": "ADP Company Code", - "country": "Country", - "dailybodytarget": "Scoreboard - Daily Body Target", - "dailypainttarget": "Scoreboard - Daily Paint Target", - "default_adjustment_rate": "Default Labor Deduction Adjustment Rate", - "deliver": { - "require_actual_delivery_date": "Require Actual Delivery", - "templates": "Delivery Templates" - }, - "dms": { - "apcontrol": "AP Control Number", - "appostingaccount": "AP Posting Account", - "cashierid": "Cashier ID", - "default_journal": "Default Journal", - "disablebillwip": "Disable bill WIP for A/P Posting", - "disablecontactvehiclecreation": "Disable Contact & Vehicle Updates/Creation", - "dms_acctnumber": "DMS Account #", - "dms_control_override": "Static Control # Override", - "dms_wip_acctnumber": "DMS W.I.P. Account #", - "generic_customer_number": "Generic Customer Number", - "itc_federal": "Federal Tax is ITC?", - "itc_local": "Local Tax is ITC?", - "itc_state": "State Tax is ITC?", - "mappingname": "DMS Mapping Name", - "sendmaterialscosting": "Materials Cost as % of Sale", - "srcco": "Source Company #/Dealer #" - }, - "email": "General Shop Email", - "enforce_class": "Enforce Class on Conversion?", - "enforce_conversion_category": "Enforce Category on Conversion?", - "enforce_conversion_csr": "Enforce CSR on Conversion?", - "enforce_referral": "Enforce Referrals", - "federal_tax_id": "Federal Tax ID (GST/HST)", - "ignoreblockeddays": "Scoreboard - Ignore Blocked Days", - "inhousevendorid": "In House Vendor ID", - "insurance_vendor_id": "Insurance Vendor ID", - "intake": { - "next_contact_hours": "Automatic Next Contact Date - Hours from Intake", - "templates": "Intake Templates" - }, - "intellipay_config": { - "cash_discount_percentage": "Cash Discount %", - "enable_cash_discount": "Enable Cash Discounting" - }, - "invoice_federal_tax_rate": "Invoices - Federal Tax Rate", - "invoice_local_tax_rate": "Invoices - Local Tax Rate", - "invoice_state_tax_rate": "Invoices - State Tax Rate", - "jc_hourly_rates": { - "mapa": "Job Costing - Paint Materials Hourly Cost Rate", - "mash": "Job Costing - Shop Materials Hourly Cost Rate" - }, - "last_name_first": "Display Owner Info as , ", - "lastnumberworkingdays": "Scoreboard - Last Number of Working Days", - "localmediaserverhttp": "Local Media Server - HTTP Path", - "localmediaservernetwork": "Local Media Server - Network Path", - "localmediatoken": "Local Media Server - Token", - "logo_img_footer_margin": "Footer Margin (px)", - "logo_img_header_margin": "Header Margin (px)", - "logo_img_path": "Shop Logo", - "logo_img_path_height": "Logo Image Height", - "logo_img_path_width": "Logo Image Width", - "md_categories": "Categories", - "md_ccc_rates": "Courtesy Car Contract Rate Presets", - "md_classes": "Classes", - "md_ded_notes": "Deductible Notes", - "md_email_cc": "Auto Email CC: $t(printcenter.subjects.jobs.{{template}})", - "md_from_emails": "Additional From Emails", - "md_functionality_toggles": { - "parts_queue_toggle": "Auto Add Imported/Supplemented Jobs to Parts Queue" - }, - "md_hour_split": { - "paint": "Paint Hour Split", - "prep": "Prep Hour Split" - }, - "md_ins_co": { - "city": "City", - "name": "Insurance Company Name", - "private": "Private", - "state": "Province/State", - "street1": "Street 1", - "street2": "Street 2", - "zip": "Zip/Postal Code" - }, - "md_jobline_presets": "Jobline Presets", - "md_lost_sale_reasons": "Lost Sale Reasons", - "md_parts_order_comment": "Parts Orders Comments", - "md_parts_scan": { - "field": "Field", + "add_task_preset": "Add Task Preset", + "addapptcolor": "Add Appointment Color", + "addbucket": "Add Definition", + "addpartslocation": "Add Parts Location", + "addpartsrule": "Add Parts Scan Rule", + "addspeedprint": "Add Speed Print", + "addtemplate": "Add Template", + "newlaborrate": "New Labor Rate", + "newsalestaxcode": "New Sales Tax Code", + "newstatus": "Add Status", + "testrender": "Test Render" + }, + "errors": { + "creatingdefaultview": "Error creating default view.", + "loading": "Unable to load shop details. Please call technical support.", + "saving": "Error encountered while saving. {{message}}" + }, + "fields": { + "ReceivableCustomField": "QBO Receivable Custom Field {{number}}", + "address1": "Address 1", + "address2": "Address 2", + "appt_alt_transport": "Appointment Alternative Transportation Options", + "appt_colors": { + "color": "Color", + "label": "Label" + }, + "appt_length": "Default Appointment Length", + "attach_pdf_to_email": "Attach PDF copy to sent emails?", + "batchid": "ADP Batch ID", + "bill_allow_post_to_closed": "Allow Bills to be posted to Closed Jobs", + "bill_federal_tax_rate": "Bills - Federal Tax Rate %", + "bill_local_tax_rate": "Bill - Local Tax Rate %", + "bill_state_tax_rate": "Bill - Provincial/State Tax Rate %", + "city": "City", + "closingperiod": "Closing Period", + "companycode": "ADP Company Code", + "country": "Country", + "dailybodytarget": "Scoreboard - Daily Body Target", + "dailypainttarget": "Scoreboard - Daily Paint Target", + "default_adjustment_rate": "Default Labor Deduction Adjustment Rate", + "deliver": { + "require_actual_delivery_date": "Require Actual Delivery", + "templates": "Delivery Templates" + }, + "dms": { + "apcontrol": "AP Control Number", + "appostingaccount": "AP Posting Account", + "cashierid": "Cashier ID", + "default_journal": "Default Journal", + "disablebillwip": "Disable bill WIP for A/P Posting", + "disablecontactvehiclecreation": "Disable Contact & Vehicle Updates/Creation", + "dms_acctnumber": "DMS Account #", + "dms_control_override": "Static Control # Override", + "dms_wip_acctnumber": "DMS W.I.P. Account #", + "generic_customer_number": "Generic Customer Number", + "itc_federal": "Federal Tax is ITC?", + "itc_local": "Local Tax is ITC?", + "itc_state": "State Tax is ITC?", + "mappingname": "DMS Mapping Name", + "sendmaterialscosting": "Materials Cost as % of Sale", + "srcco": "Source Company #/Dealer #" + }, + "email": "General Shop Email", + "enforce_class": "Enforce Class on Conversion?", + "enforce_conversion_category": "Enforce Category on Conversion?", + "enforce_conversion_csr": "Enforce CSR on Conversion?", + "enforce_referral": "Enforce Referrals", + "federal_tax_id": "Federal Tax ID (GST/HST)", + "ignoreblockeddays": "Scoreboard - Ignore Blocked Days", + "inhousevendorid": "In House Vendor ID", + "insurance_vendor_id": "Insurance Vendor ID", + "intake": { + "next_contact_hours": "Automatic Next Contact Date - Hours from Intake", + "templates": "Intake Templates" + }, + "intellipay_config": { + "cash_discount_percentage": "Cash Discount %", + "enable_cash_discount": "Enable Cash Discounting" + }, + "invoice_federal_tax_rate": "Invoices - Federal Tax Rate", + "invoice_local_tax_rate": "Invoices - Local Tax Rate", + "invoice_state_tax_rate": "Invoices - State Tax Rate", + "jc_hourly_rates": { + "mapa": "Job Costing - Paint Materials Hourly Cost Rate", + "mash": "Job Costing - Shop Materials Hourly Cost Rate" + }, + "last_name_first": "Display Owner Info as , ", + "lastnumberworkingdays": "Scoreboard - Last Number of Working Days", + "localmediaserverhttp": "Local Media Server - HTTP Path", + "localmediaservernetwork": "Local Media Server - Network Path", + "localmediatoken": "Local Media Server - Token", + "logo_img_footer_margin": "Footer Margin (px)", + "logo_img_header_margin": "Header Margin (px)", + "logo_img_path": "Shop Logo", + "logo_img_path_height": "Logo Image Height", + "logo_img_path_width": "Logo Image Width", + "md_categories": "Categories", + "md_ccc_rates": "Courtesy Car Contract Rate Presets", + "md_classes": "Classes", + "md_ded_notes": "Deductible Notes", + "md_email_cc": "Auto Email CC: $t(printcenter.subjects.jobs.{{template}})", + "md_from_emails": "Additional From Emails", + "md_functionality_toggles": { + "parts_queue_toggle": "Auto Add Imported/Supplemented Jobs to Parts Queue" + }, + "md_hour_split": { + "paint": "Paint Hour Split", + "prep": "Prep Hour Split" + }, + "md_ins_co": { + "city": "City", + "name": "Insurance Company Name", + "private": "Private", + "state": "Province/State", + "street1": "Street 1", + "street2": "Street 2", + "zip": "Zip/Postal Code" + }, + "md_jobline_presets": "Jobline Presets", + "md_lost_sale_reasons": "Lost Sale Reasons", + "md_parts_order_comment": "Parts Orders Comments", + "md_parts_scan": { + "field": "Field", "operation": "Operation", "value": "Value", - "caseInsensitive": "Case Insensitive" - }, - "md_payment_types": "Payment Types", - "md_referral_sources": "Referral Sources", - "md_ro_guard": { - "enabled": "RO Guard Enabled?", - "enforce_ar": "Enforce AR Balance", - "enforce_bills": "Enforce Bill Discrepancy", - "enforce_cm": "Enforce Credit Memo Entry", - "enforce_labor": "Enforce Labor Allocation", - "enforce_ppd": "Enforce PPD Sync", - "enforce_profit": "Enforce Profit Requirement", - "enforce_sublet": "Enforce Sublet Completion", - "masterbypass": "Master Bypass Password (not encrypted)", - "totalgppercent_minimum": "Minimum Total Gross Profit %" - }, - "md_tasks_presets": { - "enable_tasks": "Enable Hour Flagging", - "hourstype": "Hour Types", - "memo": "Time Ticket Memo", - "name": "Preset Name", - "nextstatus": "Next Status", - "percent": "Percent", - "use_approvals": "Use Time Ticket Approval Queue" - }, - "messaginglabel": "Messaging Preset Label", - "messagingtext": "Messaging Preset Text", - "noteslabel": "Note Label", - "notestext": "Note Text", - "partslocation": "Parts Location", - "phone": "Phone", - "prodtargethrs": "Production Target Hours", - "rbac": { - "accounting": { - "exportlog": "Accounting -> Export Log", - "payables": "Accounting -> Payables", - "payments": "Accounting -> Payments", - "receivables": "Accounting -> Receivables" - }, - "bills": { - "delete": "Bills -> Delete", - "enter": "Bills -> Enter", - "list": "Bills -> List", - "reexport": "Bills -> Re-export", - "view": "Bills -> View" - }, - "contracts": { - "create": "Contracts -> Create", - "detail": "Contracts -> Detail", - "list": "Contracts -> List" - }, - "courtesycar": { - "create": "Courtesy Car -> Create", - "detail": "Courtesy Car -> Detail", - "list": "Courtesy Car -> List" - }, - "csi": { - "export": "CSI -> Export", - "page": "CSI -> Page" - }, - "employee_teams": { - "page": "Employee Teams -> List" - }, - "employees": { - "page": "Employees -> List" - }, - "inventory": { - "delete": "Inventory -> Delete", - "list": "Inventory -> List" - }, - "jobs": { - "admin": "Jobs -> Admin", - "available-list": "Jobs -> Available List", - "checklist-view": "Jobs -> Checklist View", - "close": "Jobs -> Close", - "create": "Jobs -> Create", - "deliver": "Jobs -> Deliver", - "detail": "Jobs -> Detail", - "intake": "Jobs -> Intake", - "list-active": "Jobs -> List Active", - "list-all": "Jobs -> List All", - "list-ready": "Jobs -> List Ready", - "partsqueue": "Jobs -> Parts Queue", - "void": "Jobs -> Void" - }, - "owners": { - "detail": "Owners -> Detail", - "list": "Owners -> List" - }, - "payments": { - "enter": "Payments -> Enter", - "list": "Payments -> List" - }, - "phonebook": { - "edit": "Phonebook -> Edit", - "view": "Phonebook -> View" - }, - "production": { - "board": "Production -> Board", - "list": "Production -> List" - }, - "schedule": { - "view": "Schedule -> View" - }, - "scoreboard": { - "view": "Scoreboard -> View" - }, - "shiftclock": { - "view": "Shift Clock -> View" - }, - "shop": { - "config": "Shop -> Config", - "dashboard": "Shop -> Dashboard", - "rbac": "Shop -> RBAC", - "reportcenter": "Shop -> Report Center", - "templates": "Shop -> Templates", - "vendors": "Shop -> Vendors" - }, - "temporarydocs": { - "view": "Temporary Docs -> View" - }, - "timetickets": { - "edit": "Time Tickets -> Edit", - "editcommitted": "Time Tickets -> Edit Committed", - "enter": "Time Tickets -> Enter", - "list": "Time Tickets -> List", - "shiftedit": "Time Tickets -> Shift Edit" - }, - "ttapprovals": { - "approve": "Time Ticket Approval -> Approve", - "view": "Time Ticket Approval -> View" - }, - "users": { - "editaccess": "Users -> Edit access" - } - }, - "responsibilitycenter": "Responsibility Center", - "responsibilitycenter_accountdesc": "Account Description", - "responsibilitycenter_accountitem": "Item", - "responsibilitycenter_accountname": "Account Name", - "responsibilitycenter_accountnumber": "Account Number", - "responsibilitycenter_rate": "Rate", - "responsibilitycenter_tax_rate": "Tax {{typeNum}} Tier {{typeNumIterator}} Rate", - "responsibilitycenter_tax_sur": "Tax {{typeNum}} Tier {{typeNumIterator}} Surcharge", - "responsibilitycenter_tax_thres": "Tax {{typeNum}} Tier {{typeNumIterator}} Threshold", - "responsibilitycenter_tax_tier": "Tax {{typeNum}} Tier {{typeNumIterator}}", - "responsibilitycenter_tax_type": "Tax {{typeNum}} Type", - "responsibilitycenters": { - "ap": "Accounts Payable", - "ar": "Accounts Receivable", - "ats": "ATS", - "federal_tax": "Federal Tax", - "federal_tax_itc": "Federal Tax Credit", - "gst_override": "GST Override Account #", - "invoiceexemptcode": "QuickBooks US - Invoice Tax Exempt Code", - "itemexemptcode": "QuickBooks US - Line Item Tax Exempt Code", - "la1": "LA1", - "la2": "LA2", - "la3": "LA3", - "la4": "LA4", - "laa": "Aluminum", - "lab": "Body", - "lad": "Diagnostic", - "lae": "Electrical", - "laf": "Frame", - "lag": "Glass", - "lam": "Mechanical", - "lar": "Refinish", - "las": "Structural", - "lau": "User Defined", - "local_tax": "Local Tax", - "mapa": "Paint Materials", - "mash": "Shop Materials", - "paa": "Aftermarket", - "pac": "Chrome", - "pag": "Glass", - "pal": "LKQ", - "pam": "Remanufactured", - "pan": "OEM", - "pao": "Other", - "pap": "OEM Partial", - "par": "Recored", - "pas": "Sublet", - "pasl": "Sublet (L)", - "refund": "Refund", - "sales_tax_codes": { - "code": "Code", - "description": "Description", - "federal": "Federal Tax Applies", - "local": "Local Tax Applies", - "state": "State Tax Applies" - }, - "state_tax": "State Tax", - "tow": "Towing" - }, - "schedule_end_time": "Schedule Ending Time", - "schedule_start_time": "Schedule Starting Time", - "shopname": "Shop Name", - "speedprint": { - "id": "Id", - "label": "Label", - "templates": "Templates" - }, - "ss_configuration": { - "dailyhrslimit": "Daily Incoming Hours Limit" - }, - "ssbuckets": { - "color": "Job Color", - "gte": "Greater Than/Equal to (hrs)", - "id": "ID", - "label": "Label", - "lt": "Less than (hrs)", - "target": "Target (count)" - }, - "state": "Province/State", - "state_tax_id": "State Tax ID", - "status": "Status Label", - "statuses": { - "active_statuses": "Active Statuses (Filtering for Active Jobs throughout system)", - "additional_board_statuses": "Additional Status to Display on Production Board", - "color": "Color", - "default_arrived": "Default Arrived Status (Transition to Production)", - "default_bo": "Default Backordered Status", - "default_canceled": "Default Canceled Status", - "default_completed": "Default Completed Status", - "default_delivered": "Default Delivered Status (Transition to Post-Production)", - "default_exported": "Default Exported Status", - "default_imported": "Default Imported Status", - "default_invoiced": "Default Invoiced Status", - "default_ordered": "Default Ordered Status", - "default_quote": "Default Quote Status", - "default_received": "Default Received Status", - "default_returned": "Default Returned", - "default_scheduled": "Default Scheduled Status", - "default_void": "Default Void", - "open_statuses": "Open Statuses", - "post_production_statuses": "Post-Production Statuses", - "pre_production_statuses": "Pre-Production Statuses", - "production_colors": "Production Status Colors", - "production_statuses": "Production Statuses", - "ready_statuses": "Ready Statuses" - }, - "target_touchtime": "Target Touch Time", - "timezone": "Timezone", - "tt_allow_post_to_invoiced": "Allow Time Tickets to be posted to Invoiced & Exported Jobs", - "tt_enforce_hours_for_tech_console": "Restrict Claimable hours from Tech Console", - "use_fippa": "Conceal Customer Information on Generated Documents?", - "use_paint_scale_data": "Use Paint Scale Data for Job Costing?", - "uselocalmediaserver": "Use Local Media Server?", - "website": "Website", - "zip_post": "Zip/Postal Code" - }, - "labels": { - "2tiername": "Name => RO", - "2tiersetup": "2 Tier Setup", - "2tiersource": "Source => RO", - "accountingsetup": "Accounting Setup", - "accountingtiers": "Number of Tiers to Use for Export", - "alljobstatuses": "All Job Statuses", - "allopenjobstatuses": "All Open Job Statuses", - "apptcolors": "Appointment Colors", - "businessinformation": "Business Information", - "checklists": "Checklists", - "csiq": "CSI Questions", - "customtemplates": "Custom Templates", - "defaultcostsmapping": "Default Costs Mapping", - "defaultprofitsmapping": "Default Profits Mapping", - "deliverchecklist": "Delivery Checklist", - "dms": { - "cdk": { - "controllist": "Control Number List", - "payers": "Payers" - }, - "cdk_dealerid": "CDK Dealer ID", - "costsmapping": "Costs Mapping", - "dms_allocations": "DMS Allocations", - "pbs_serialnumber": "PBS Serial Number", - "profitsmapping": "Profits Mapping", - "title": "DMS" - }, - "emaillater": "Email Later", - "employee_teams": "Employee Teams", - "employees": "Employees", - "estimators": "Estimators", - "filehandlers": "Adjusters", - "imexpay": "ImEX Pay", - "insurancecos": "Insurance Companies", - "intakechecklist": "Intake Checklist", - "intellipay_cash_discount": "Please ensure that cash discounting has been enabled on your merchant account. Reach out to IntelliPay Support if you need assistance. ", - "jobstatuses": "Job Statuses", - "laborrates": "Labor Rates", - "licensing": "Licensing", - "md_parts_scan": "Parts Scan Rules", - "md_ro_guard": "RO Guard", - "md_tasks_presets": "Tasks Presets", - "md_to_emails": "Preset To Emails", - "md_to_emails_emails": "Emails", - "messagingpresets": "Messaging Presets", - "notemplatesavailable": "No templates available to add.", - "notespresets": "Notes Presets", - "orderstatuses": "Order Statuses", - "partslocations": "Parts Locations", - "partsscan": "Critical Parts Scanning", - "printlater": "Print Later", - "qbo": "Use QuickBooks Online?", - "qbo_departmentid": "QBO Department ID", - "qbo_usa": "QBO USA Compatibility", - "rbac": "Role Based Access Control", - "responsibilitycenters": { - "costs": "Cost Centers", - "profits": "Profit Centers", - "sales_tax_codes": "Sales Tax Codes", - "tax_accounts": "Tax Accounts", - "title": "Responsibility Centers", - "ttl_adjustment": "Subtotal Adjustment Account", - "ttl_tax_adjustment": "Tax Adjustment Account" - }, - "roguard": { - "title": "RO Guard" - }, - "romepay": "Rome Pay", - "scheduling": "SMART Scheduling", - "scoreboardsetup": "Scoreboard Setup", - "shopinfo": "Shop Information", - "speedprint": "Speed Print Configuration", - "ssbuckets": "Job Size Definitions", - "systemsettings": "System Settings", - "task-presets": "Task Presets", - "workingdays": "Working Days" - }, - "successes": { - "areyousure": "Are you sure you want to continue?", - "defaultviewcreated": "Default view created successfully.", - "save": "Shop configuration saved successfully. ", - "unsavedchanges": "Unsaved changes will be lost. Are you sure you want to continue?" - }, - "validation": { - "centermustexist": "The chosen responsibility center does not exist.", - "larsplit": "Refinish hour split must add up to 1.", - "useremailmustexist": "This email is not a valid user." - } - }, - "checklist": { - "actions": { - "printall": "Print All Documents" - }, - "errors": { - "complete": "Error during Job checklist completion. {{error}}", - "nochecklist": "No checklist has been configured for your shop. " - }, - "labels": { - "addtoproduction": "Add Job to Production?", - "allow_text_message": "Permission to Text?", - "checklist": "Checklist", - "printpack": "Job Intake Print Pack", - "removefromproduction": "Remove Job from Production?" - }, - "successes": { - "completed": "Job checklist completed." - } - }, - "contracts": { - "actions": { - "changerate": "Change Contract Rates", - "convertoro": "Convert to RO", - "decodelicense": "Decode License", - "find": "Find Contract", - "printcontract": "Print Contract", - "senddltoform": "Insert Driver's License Information" - }, - "errors": { - "fetchingjobinfo": "Error fetching Job Info. {{error}}.", - "returning": "Error returning Courtesy Car. {{error}}", - "saving": "Error saving Contract. {{error}}", - "selectjobandcar": "Please ensure both a car and job are selected." - }, - "fields": { - "actax": "A/C Tax", - "actualreturn": "Actual Return Date", - "agreementnumber": "Agreement Number", - "cc_cardholder": "Cardholder Name", - "cc_expiry": "Credit Card Expiry Date", - "cc_num": "Credit Card Number", - "cleanupcharge": "Clean Up Charge", - "coverage": "Coverage", - "dailyfreekm": "Daily Free Mileage", - "dailyrate": "Daily Rate", - "damage": "Existing Damage", - "damagewaiver": "Damage Waiver", - "driver": "Driver", - "driver_addr1": "Driver Address 1", - "driver_addr2": "Driver Address 2", - "driver_city": "Driver City", - "driver_dlexpiry": "Driver's License Expiration Date", - "driver_dlnumber": "Driver's License Number", - "driver_dlst": "Driver's License Province/State", - "driver_dob": "Driver's DOB", - "driver_fn": "Driver's First Name", - "driver_ln": "Driver's Last Name", - "driver_ph1": "Driver's Phone", - "driver_state": "Driver's Province/State ", - "driver_zip": "Driver's Postal/ZIP Code", - "excesskmrate": "Excess Mileage", - "federaltax": "Federal Taxes", - "fuelin": "Fuel In", - "fuelout": "Fuel Out", - "kmend": "Mileage End", - "kmstart": "Mileage Start", - "length": "Length", - "localtax": "Local Taxes", - "refuelcharge": "Refuel Charge (per liter/gallon)", - "scheduledreturn": "Scheduled Return", - "start": "Contract Start", - "statetax": "Provincial/State Taxes", - "status": "Status" - }, - "labels": { - "agreement": "Agreement {{agreement_num}} - {{status}}", - "availablecars": "Available Cars", - "cardueforservice": "The courtesy car is due for servicing.", - "convertform": { - "applycleanupcharge": "Apply cleanup charge?", - "refuelqty": "Refuel qty.?" - }, - "correctdataonform": "Please review the information above. If any of it is not correct, you can fix it later.", - "dateinpast": "Date is in the past.", - "dlexpirebeforereturn": "The driver's license expires before the car is expected to return. ", - "driverinformation": "Driver's Information", - "findcontract": "Find Contract", - "findermodal": "Contract Finder", - "insuranceexpired": "The courtesy car insurance expires before the car is expected to return.", - "noteconvertedfrom": "R.O. created from converted Courtesy Car Contract {{agreementnumber}}.", - "populatefromjob": "Populate from Job", - "rates": "Contract Rates", - "time": "Time", - "vehicle": "Vehicle", - "waitingforscan": "Please scan driver's license barcode..." - }, - "status": { - "new": "New Contract", - "out": "Out", - "returned": "Returned" - }, - "successes": { - "saved": "Contract saved successfully. " - } - }, - "courtesycars": { - "actions": { - "new": "New Courtesy Car", - "return": "Return Car" - }, - "errors": { - "saving": "Error saving Courtesy Car. {{error}}" - }, - "fields": { - "color": "Color", - "dailycost": "Daily Cost to Rent", - "damage": "Damage", - "fleetnumber": "Fleet Number", - "fuel": "Fuel Level", - "insuranceexpires": "Insurance Expires On", - "leaseenddate": "Lease Ends On", - "make": "Make", - "mileage": "Mileage", - "model": "Model", - "nextservicedate": "Next Service Date", - "nextservicekm": "Next Service KMs", - "notes": "Notes", - "plate": "Plate Number", - "purchasedate": "Purchase Date", - "readiness": "Readiness", - "registrationexpires": "Registration Expires On", - "serviceenddate": "Usage End Date", - "servicestartdate": "Usage Start Date", - "status": "Status", - "vin": "VIN", - "year": "Year" - }, - "labels": { - "courtesycar": "Courtesy Car", - "fuel": { - "12": "1/2", - "14": "1/4", - "18": "1/8", - "34": "3/4", - "38": "3/8", - "58": "5/8", - "78": "7/8", - "empty": "Empty", - "full": "Full" - }, - "outwith": "Out With", - "return": "Return Courtesy Car", - "status": "Status", - "uniquefleet": "Enter a unique fleet number.", - "usage": "Usage", - "vehicle": "Vehicle Description" - }, - "readiness": { - "notready": "Not Ready", - "ready": "Ready" - }, - "status": { - "in": "Available", - "inservice": "Service/Maintenance", - "leasereturn": "Lease Returned", - "out": "Rented", - "sold": "Sold", - "unavailable": "Unavailable" - }, - "successes": { - "saved": "Courtesy Car saved successfully." - } - }, - "csi": { - "actions": { - "activate": "Activate" - }, - "errors": { - "creating": "Error creating survey {{message}}", - "notconfigured": "You do not have any current CSI Question Sets configured.", - "notfoundsubtitle": "We were unable to find a survey using the link you provided. Please ensure the URL is correct or reach out to your shop for more help.", - "notfoundtitle": "No survey found.", - "surveycompletesubtitle": "", - "surveycompletetitle": "" - }, - "fields": { - "completedon": "Completed On", - "created_at": "Created At", - "surveyid": "", - "validuntil": "" - }, - "labels": { - "copyright": "", - "greeting": "", - "intro": "", - "nologgedinuser": "Please log out of {{app}}", - "nologgedinuser_sub": "Users of {{app}} cannot complete CSI surveys while logged in. Please log out and try again.", - "noneselected": "No response selected.", - "title": "Customer Satisfaction Survey" - }, - "successes": { - "created": "CSI created successfully. ", - "submitted": "Your responses have been submitted successfully.", - "submittedsub": "Your input is highly appreciated." - } - }, - "dashboard": { - "actions": { - "addcomponent": "Add Component" - }, - "errors": { - "refreshrequired": "You must refresh the dashboard data to see this component.", - "updatinglayout": "Error saving updated layout {{message}}" - }, - "labels": { - "bodyhrs": "Body Hrs", - "dollarsinproduction": "Dollars in Production", - "phone": "Phone", - "prodhrs": "Production Hrs", - "refhrs": "Refinish Hrs" - }, - "titles": { - "joblifecycle": "Job Life Cycles", - "labhours": "Total Body Hours", - "larhours": "Total Refinish Hours", - "monthlyemployeeefficiency": "Monthly Employee Efficiency", - "monthlyjobcosting": "Monthly Job Costing ", - "monthlylaborsales": "Monthly Labor Sales", - "monthlypartssales": "Monthly Parts Sales", - "monthlyrevenuegraph": "Monthly Revenue Graph", - "prodhrssummary": "Production Hours Summary", - "productiondollars": "Total Dollars in Production", - "productionhours": "Total Hours in Production", - "projectedmonthlysales": "Projected Monthly Sales", - "scheduledindate": "Sheduled In Today: {{date}}", - "scheduledintoday": "Sheduled In Today", - "scheduledoutdate": "Sheduled Out Today: {{date}}", - "scheduledouttoday": "Sheduled Out Today", - "tasks": "Tasks" - } - }, - "dms": { - "errors": { - "alreadyexported": "This job has already been sent to the DMS. If you need to resend it, please use admin permissions to mark the job for re-export." - }, - "labels": { - "refreshallocations": "Refresh to see DMS Allocataions." - } - }, - "documents": { - "actions": { - "delete": "Delete Selected Documents", - "download": "Download Selected Images", - "reassign": "Reassign to another Job", - "selectallimages": "Select All Images", - "selectallotherdocuments": "Select All Other Documents" - }, - "errors": { - "deletes3": "Error deleting document from storage. ", - "deleting": "Error deleting documents {{error}}", - "deleting_cloudinary": "Error deleting document from storage. {{message}}", - "getpresignurl": "Error obtaining presigned URL for document. {{message}}", - "insert": "Unable to upload file. {{message}}", - "nodocuments": "There are no documents.", - "updating": "Error updating document. {{error}}" - }, - "labels": { - "confirmdelete": "Are you sure you want to delete these documents. This CANNOT be undone.", - "doctype": "Document Type", - "newjobid": "Assign to Job", - "openinexplorer": "Open in Explorer", - "optimizedimage": "The below image is optimized. Click on the picture below to open in a new window and view it full size, or open it in explorer.", - "reassign_limitexceeded": "Reassigning all selected documents will exceed the job storage limit for your shop. ", - "reassign_limitexceeded_title": "Unable to reassign document(s)", - "storageexceeded": "You've exceeded your storage limit for this job. Please remove documents, or increase your storage plan.", - "storageexceeded_title": "Storage Limit Exceeded", - "upload": "Upload", - "upload_limitexceeded": "Uploading all selected documents will exceed the job storage limit for your shop. ", - "upload_limitexceeded_title": "Unable to upload document(s)", - "uploading": "Uploading...", - "usage": "of Job storage used. ({{used}} / {{total}})" - }, - "successes": { - "delete": "Document(s) deleted successfully.", - "edituploaded": "Edited document uploaded successfully. Please close this window and refresh the documents list.", - "insert": "Uploaded document successfully. ", - "updated": "Document updated successfully. " - } - }, - "emails": { - "errors": { - "notsent": "Email not sent. Error encountered while sending {{message}}" - }, - "fields": { - "cc": "CC", - "from": "From", - "subject": "Subject", - "to": "To" - }, - "labels": { - "attachments": "Attachments", - "documents": "Documents", - "emailpreview": "Email Preview", - "generatingemail": "Generating email...", - "pdfcopywillbeattached": "A PDF copy of this email will be attached when it is sent.", - "preview": "Email Preview" - }, - "successes": { - "sent": "Email sent successfully." - } - }, - "employee_teams": { - "actions": { - "new": "New Team", - "newmember": "New Team Member" - }, - "fields": { - "active": "Active", - "employeeid": "Employee", - "max_load": "Max Load", - "name": "Team Name", - "percentage": "Percent" - } - }, - "employees": { - "actions": { - "addvacation": "Add Vacation", - "new": "New Employee", - "newrate": "New Rate" - }, - "errors": { - "delete": "Error encountered while deleting employee. {{message}}", - "save": "Error encountered saving employee. {{message}}", - "validation": "Please check all fields.", - "validationtitle": "Unable to save employee." - }, - "fields": { - "active": "Active?", - "base_rate": "Base Rate", - "cost_center": "Cost Center", - "employee_number": "Employee Number", - "external_id": "External Employee ID", - "first_name": "First Name", - "flat_rate": "Flat Rate (Disabled is Straight Time)", - "hire_date": "Hire Date", - "last_name": "Last Name", - "pin": "Tech Console PIN", - "rate": "Rate", - "termination_date": "Termination Date", - "user_email": "User Email", - "vacation": { - "end": "Vacation End", - "length": "Vacation Length", - "start": "Vacation Start" - } - }, - "labels": { - "actions": "Actions", - "active": "Active", - "endmustbeafterstart": "End date must be after start date.", - "flat_rate": "Flat Rate", - "inactive": "Inactive", - "name": "Name", - "rate_type": "Rate Type", - "status": "Status", - "straight_time": "Straight Time" - }, - "successes": { - "delete": "Employee deleted successfully.", - "save": "Employee saved successfully.", - "vacationadded": "Employee vacation added." - }, - "validation": { - "unique_employee_number": "You must enter a unique employee number." - } - }, - "eula": { - "buttons": { - "accept": "Accept EULA" - }, - "content": { - "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." - }, - "errors": { - "acceptance": { - "description": "Something went wrong while accepting the EULA. Please try again.", - "message": "Eula Acceptance Error" - } - }, - "labels": { - "accepted_terms": "I accept the terms and conditions of this agreement.", - "address": "Address", - "business_name": "Legal Business Name", - "date_accepted": "Date Accepted", - "first_name": "First Name", - "last_name": "Last Name", - "phone_number": "Phone Number" - }, - "messages": { - "accepted_terms": "Please accept the terms and conditions of this agreement.", - "business_name": "Please enter your legal business name.", - "date_accepted": "Please enter Today's Date.", - "first_name": "Please enter your first name.", - "last_name": "Please enter your last name.", - "phone_number": "Please enter your phone number." - }, - "titles": { - "modal": "Terms and Conditions", - "upper_card": "Acknowledgement" - } - }, - "exportlogs": { - "fields": { - "createdat": "Created At" - }, - "labels": { - "attempts": "Export Attempts", - "priorsuccesfulexport": "This record has previously been exported successfully. Please make sure it has already been deleted in the target system." - } - }, - "general": { - "actions": { - "add": "Add", - "autoupdate": "{{app}} will automatically update in {{time}} seconds. Please save all changes.", - "calculate": "Calculate", - "cancel": "Cancel", - "clear": "Clear", - "close": "Close", - "copied": "Copied!", - "copylink": "Copy Link", - "create": "Create", - "defaults": "Defaults", - "delay": "Delay Update (5 mins)", - "delete": "Delete", - "deleteall": "Delete All", - "deselectall": "Deselect All", - "download": "Download", - "edit": "Edit", - "login": "Login", - "next": "Next", - "previous": "Previous", - "print": "Print", - "refresh": "Refresh", - "remove": "Remove", - "remove_alert": "Are you sure you want to dismiss the alert?", - "reset": "Reset your changes.", - "resetpassword": "Reset Password", - "save": "Save", - "saveandnew": "Save and New", - "saveas": "Save As", - "selectall": "Select All", - "send": "Send", - "sendbysms": "Send by SMS", - "senderrortosupport": "Send Error to Support", - "submit": "Submit", - "tryagain": "Try Again", - "view": "View", - "viewreleasenotes": "See What's Changed" - }, - "errors": { - "fcm": "You must allow notification permissions to have real time messaging. Click to try again.", - "notfound": "No record was found.", - "sizelimit": "The selected items exceed the size limit." - }, - "itemtypes": { - "contract": "CC Contract", - "courtesycar": "Courtesy Car", - "job": "Job", - "owner": "Owner", - "vehicle": "Vehicle" - }, - "labels": { - "actions": "Actions", - "areyousure": "Are you sure?", - "barcode": "Barcode", - "cancel": "Are you sure you want to cancel? Your changes will not be saved.", - "clear": "Clear", - "confirmpassword": "Confirm Password", - "created_at": "Created At", - "date": "Select Date", - "datetime": "Select Date & Time", - "email": "Email", - "errors": "Errors", - "excel": "Excel", - "exceptiontitle": "An error has occurred.", - "friday": "Friday", - "globalsearch": "Global Search", - "help": "Help", - "hours": "hrs", - "in": "In", - "instanceconflictext": "Your {{app}} account can only be used on one device at any given time. Refresh your session to take control.", - "instanceconflictitle": "Your account is being used elsewhere.", - "item": "Item", - "label": "Label", - "loading": "Loading...", - "loadingapp": "Loading {{app}}", - "loadingshop": "Loading shop data...", - "loggingin": "Authorizing...", - "markedexported": "Manually marked as exported.", - "media": "Media", - "message": "Message", - "monday": "Monday", - "na": "N/A", - "newpassword": "New Password", - "no": "No", - "nointernet": "It looks like you're not connected to the internet.", - "nointernet_sub": "Please check your connection and try again. ", - "none": "None", - "out": "Out", - "password": "Password", - "passwordresetsuccess": "A password reset link has been sent to you.", - "passwordresetsuccess_sub": "You should receive this email in the next few minutes. Please check your email including any junk or spam folders. ", - "passwordresetvalidatesuccess": "Password successfully reset. ", - "passwordresetvalidatesuccess_sub": "You may now sign in again using your new password. ", - "passwordsdonotmatch": "The passwords you have entered do not match.", - "print": "Print", - "refresh": "Refresh", - "reports": "Reports", - "required": "Required", - "saturday": "Saturday", - "search": "Search...", - "searchresults": "Results for {{search}}", - "selectdate": "Select date...", - "sendagain": "Send Again", - "sendby": "Send By", - "signin": "Sign In", - "sms": "SMS", - "status": "Status", - "sub_status": { - "expired": "The subscription for this shop has expired. Please contact technical support to reactivate the subscription. " - }, - "successful": "Successful", - "sunday": "Sunday", - "text": "Text", - "thursday": "Thursday", - "time": "Select Time", - "total": "Total", - "totals": "Totals", - "tuesday": "Tuesday", - "tvmode": "TV Mode", - "unknown": "Unknown", - "unsavedchanges": "Unsaved changes.", - "username": "Username", - "view": "View", - "wednesday": "Wednesday", - "yes": "Yes" - }, - "languages": { - "english": "English", - "french": "French", - "spanish": "Spanish" - }, - "messages": { - "exception": "{{app}} has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.", - "newversionmessage": "Click refresh below to update to the latest available version of {{app}}. Please make sure all other tabs and windows are closed.", - "newversiontitle": "New version of {{app}} Available", - "noacctfilepath": "There is no accounting file path set. You will not be able to export any items.", - "nofeatureaccess": "You do not have access to this feature of {{app}}. Please contact support to request a license for this feature.", - "noshop": "You do not have access to any shops. Please reach out to your shop manager or technical support. ", - "notfoundsub": "Please make sure that you have access to the data or that the link is correct.", - "notfoundtitle": "We couldn't find what you're looking for...", - "partnernotrunning": "{{app}} has detected that the partner is not running. Please ensure it is running to enable full functionality.", - "rbacunauth": "You are not authorized to view this content. Please reach out to your shop manager to change your access level.", - "unsavedchanges": "You have unsaved changes.", - "unsavedchangespopup": "You have unsaved changes. Are you sure you want to leave?" - }, - "validation": { - "dateRangeExceeded": "The date range has been exceeded.", - "invalidemail": "Please enter a valid email.", - "invalidphone": "Please enter a valid phone number.", - "required": "{{label}} is required." - } - }, - "help": { - "actions": { - "connect": "Connect" - }, - "labels": { - "codeplacholder": "6 digit PIN code", - "rescuedesc": "Enter the 6 digit code provided by {{app}} Support below and click connect.", - "rescuetitle": "Rescue Me!" - } - }, - "intake": { - "labels": { - "printpack": "Intake Print Pack" - } - }, - "inventory": { - "actions": { - "addtoinventory": "Add to Inventory", - "addtoro": "Add to RO", - "consumefrominventory": "Consume from Inventory?", - "edit": "Edit Inventory LIne", - "new": "New Inventory Line" - }, - "errors": { - "inserting": "Error inserting inventory item. {{error}}" - }, - "fields": { - "comment": "Comment", - "manualinvoicenumber": "Invoice Number", - "manualvendor": "Vendor" - }, - "labels": { - "consumedbyjob": "Consumed by Job", - "deleteconfirm": "Are you sure you want to delete this from inventory? The associated bill will not be modified or deleted. ", - "frombillinvoicenumber": "Original Bill Invoice Number", - "fromvendor": "Original Bill Vendor", - "inventory": "Inventory", - "showall": "Show All Inventory", - "showavailable": "Show Only Available Inventory" - }, - "successes": { - "deleted": "Inventory lined deleted.", - "inserted": "Added line to inventory.", - "updated": "Inventory line updated." - } - }, - "job_lifecycle": { - "columns": { - "average_human_readable": "Average Human Readable", - "average_value": "Average Value", - "duration": "Duration", - "end": "End", - "human_readable": "Human Readable", - "percentage": "Percentage", - "relative_end": "Relative End", - "relative_start": "Relative Start", - "start": "Start", - "status": "Status", - "status_count": "In Status", - "value": "Value" - }, - "content": { - "calculated_based_on": "Calculated based on", - "current_status_accumulated_time": "Current Status Accumulated Time", - "data_unavailable": " There is currently no Lifecycle data for this Job.", - "jobs_in_since": "Jobs in since", - "legend_title": "Legend", - "loading": "Loading Job Timelines....", - "not_available": "N/A", - "previous_status_accumulated_time": "Previous Status Accumulated Time", - "title": "Job Lifecycle Component", - "title_durations": "Historical Status Durations", - "title_loading": "Loading", - "title_transitions": "Transitions" - }, - "errors": { - "fetch": "Error getting Job Lifecycle Data" - }, - "titles": { - "dashboard": "Job Lifecycle", - "top_durations": "Top Durations" - } - }, - "job_payments": { - "buttons": { - "create_short_link": "Generate Short Link", - "goback": "Go Back", - "proceedtopayment": "Proceed to Payment", - "refundpayment": "Refund Payment" - }, - "notifications": { - "error": { - "description": "Please try again. Make sure the refund amount does not exceeds the payment amount.", - "openingip": "Error connecting to IntelliPay service.", - "title": "Error placing refund" - } - }, - "titles": { - "amount": "Amount", - "dateOfPayment": "Date of Payment", - "descriptions": "Payment Details", - "hint": "Hint", - "payer": "Payer", - "payername": "Payer Name", - "paymentid": "Payment Reference ID", - "paymentnum": "Payment Number", - "paymenttype": "Payment Type", - "refundamount": "Refund Amount", - "transactionid": "Transaction ID" - } - }, - "joblines": { - "actions": { - "assign_team": "Assign Team", - "converttolabor": "Convert amount to Labor.", - "dispatchparts": "Dispatch Parts ({{count}})", - "new": "New Line" - }, - "errors": { - "creating": "Error encountered while creating job line. {{message}}", - "updating": "Error encountered updating job line. {{message}}" - }, - "fields": { - "act_price": "Retail Price", - "act_price_before_ppc": "Original Part Price", - "adjustment": "Adjustment", - "ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)", - "amount": "Amount", - "assigned_team": "Team", - "assigned_team_name": "Team {{name}}", - "create_ppc": "Create PPC?", - "db_price": "List Price", - "lbr_types": { - "LA1": "LA1", - "LA2": "LA2", - "LA3": "LA3", - "LA4": "LA4", - "LAA": "Aluminum", - "LAB": "Body", - "LAD": "Diagnostic", - "LAE": "Electrical", - "LAF": "Frame", - "LAG": "Glass", - "LAM": "Mechanical", - "LAR": "Refinish", - "LAS": "Structural", - "LAU": "User Defined" - }, - "line_desc": "Line Desc.", - "line_ind": "S#", - "line_no": "Line #", - "location": "Location", - "mod_lb_hrs": "Hrs", - "mod_lbr_ty": "Labor Type", - "notes": "Notes", - "oem_partno": "OEM Part #", + "caseInsensitive": "Case Insensitive" + }, + "md_payment_types": "Payment Types", + "md_referral_sources": "Referral Sources", + "md_ro_guard": { + "enabled": "RO Guard Enabled?", + "enforce_ar": "Enforce AR Balance", + "enforce_bills": "Enforce Bill Discrepancy", + "enforce_cm": "Enforce Credit Memo Entry", + "enforce_labor": "Enforce Labor Allocation", + "enforce_ppd": "Enforce PPD Sync", + "enforce_profit": "Enforce Profit Requirement", + "enforce_sublet": "Enforce Sublet Completion", + "masterbypass": "Master Bypass Password (not encrypted)", + "totalgppercent_minimum": "Minimum Total Gross Profit %" + }, + "md_tasks_presets": { + "enable_tasks": "Enable Hour Flagging", + "hourstype": "Hour Types", + "memo": "Time Ticket Memo", + "name": "Preset Name", + "nextstatus": "Next Status", + "percent": "Percent", + "use_approvals": "Use Time Ticket Approval Queue" + }, + "messaginglabel": "Messaging Preset Label", + "messagingtext": "Messaging Preset Text", + "noteslabel": "Note Label", + "notestext": "Note Text", + "partslocation": "Parts Location", + "phone": "Phone", + "prodtargethrs": "Production Target Hours", + "rbac": { + "accounting": { + "exportlog": "Accounting -> Export Log", + "payables": "Accounting -> Payables", + "payments": "Accounting -> Payments", + "receivables": "Accounting -> Receivables" + }, + "bills": { + "delete": "Bills -> Delete", + "enter": "Bills -> Enter", + "list": "Bills -> List", + "reexport": "Bills -> Re-export", + "view": "Bills -> View" + }, + "contracts": { + "create": "Contracts -> Create", + "detail": "Contracts -> Detail", + "list": "Contracts -> List" + }, + "courtesycar": { + "create": "Courtesy Car -> Create", + "detail": "Courtesy Car -> Detail", + "list": "Courtesy Car -> List" + }, + "csi": { + "export": "CSI -> Export", + "page": "CSI -> Page" + }, + "employee_teams": { + "page": "Employee Teams -> List" + }, + "employees": { + "page": "Employees -> List" + }, + "inventory": { + "delete": "Inventory -> Delete", + "list": "Inventory -> List" + }, + "jobs": { + "admin": "Jobs -> Admin", + "available-list": "Jobs -> Available List", + "checklist-view": "Jobs -> Checklist View", + "close": "Jobs -> Close", + "create": "Jobs -> Create", + "deliver": "Jobs -> Deliver", + "detail": "Jobs -> Detail", + "intake": "Jobs -> Intake", + "list-active": "Jobs -> List Active", + "list-all": "Jobs -> List All", + "list-ready": "Jobs -> List Ready", + "partsqueue": "Jobs -> Parts Queue", + "void": "Jobs -> Void" + }, + "owners": { + "detail": "Owners -> Detail", + "list": "Owners -> List" + }, + "payments": { + "enter": "Payments -> Enter", + "list": "Payments -> List" + }, + "phonebook": { + "edit": "Phonebook -> Edit", + "view": "Phonebook -> View" + }, + "production": { + "board": "Production -> Board", + "list": "Production -> List" + }, + "schedule": { + "view": "Schedule -> View" + }, + "scoreboard": { + "view": "Scoreboard -> View" + }, + "shiftclock": { + "view": "Shift Clock -> View" + }, + "shop": { + "config": "Shop -> Config", + "dashboard": "Shop -> Dashboard", + "rbac": "Shop -> RBAC", + "reportcenter": "Shop -> Report Center", + "templates": "Shop -> Templates", + "vendors": "Shop -> Vendors" + }, + "temporarydocs": { + "view": "Temporary Docs -> View" + }, + "timetickets": { + "edit": "Time Tickets -> Edit", + "editcommitted": "Time Tickets -> Edit Committed", + "enter": "Time Tickets -> Enter", + "list": "Time Tickets -> List", + "shiftedit": "Time Tickets -> Shift Edit" + }, + "ttapprovals": { + "approve": "Time Ticket Approval -> Approve", + "view": "Time Ticket Approval -> View" + }, + "users": { + "editaccess": "Users -> Edit access" + } + }, + "responsibilitycenter": "Responsibility Center", + "responsibilitycenter_accountdesc": "Account Description", + "responsibilitycenter_accountitem": "Item", + "responsibilitycenter_accountname": "Account Name", + "responsibilitycenter_accountnumber": "Account Number", + "responsibilitycenter_rate": "Rate", + "responsibilitycenter_tax_rate": "Tax {{typeNum}} Tier {{typeNumIterator}} Rate", + "responsibilitycenter_tax_sur": "Tax {{typeNum}} Tier {{typeNumIterator}} Surcharge", + "responsibilitycenter_tax_thres": "Tax {{typeNum}} Tier {{typeNumIterator}} Threshold", + "responsibilitycenter_tax_tier": "Tax {{typeNum}} Tier {{typeNumIterator}}", + "responsibilitycenter_tax_type": "Tax {{typeNum}} Type", + "responsibilitycenters": { + "ap": "Accounts Payable", + "ar": "Accounts Receivable", + "ats": "ATS", + "federal_tax": "Federal Tax", + "federal_tax_itc": "Federal Tax Credit", + "gst_override": "GST Override Account #", + "invoiceexemptcode": "QuickBooks US - Invoice Tax Exempt Code", + "itemexemptcode": "QuickBooks US - Line Item Tax Exempt Code", + "la1": "LA1", + "la2": "LA2", + "la3": "LA3", + "la4": "LA4", + "laa": "Aluminum", + "lab": "Body", + "lad": "Diagnostic", + "lae": "Electrical", + "laf": "Frame", + "lag": "Glass", + "lam": "Mechanical", + "lar": "Refinish", + "las": "Structural", + "lau": "User Defined", + "local_tax": "Local Tax", + "mapa": "Paint Materials", + "mash": "Shop Materials", + "paa": "Aftermarket", + "pac": "Chrome", + "pag": "Glass", + "pal": "LKQ", + "pam": "Remanufactured", + "pan": "OEM", + "pao": "Other", + "pap": "OEM Partial", + "par": "Recored", + "pas": "Sublet", + "pasl": "Sublet (L)", + "refund": "Refund", + "sales_tax_codes": { + "code": "Code", + "description": "Description", + "federal": "Federal Tax Applies", + "local": "Local Tax Applies", + "state": "State Tax Applies" + }, + "state_tax": "State Tax", + "tow": "Towing" + }, + "schedule_end_time": "Schedule Ending Time", + "schedule_start_time": "Schedule Starting Time", + "shopname": "Shop Name", + "speedprint": { + "id": "Id", + "label": "Label", + "templates": "Templates" + }, + "ss_configuration": { + "dailyhrslimit": "Daily Incoming Hours Limit" + }, + "ssbuckets": { + "color": "Job Color", + "gte": "Greater Than/Equal to (hrs)", + "id": "ID", + "label": "Label", + "lt": "Less than (hrs)", + "target": "Target (count)" + }, + "state": "Province/State", + "state_tax_id": "State Tax ID", + "status": "Status Label", + "statuses": { + "active_statuses": "Active Statuses (Filtering for Active Jobs throughout system)", + "additional_board_statuses": "Additional Status to Display on Production Board", + "color": "Color", + "default_arrived": "Default Arrived Status (Transition to Production)", + "default_bo": "Default Backordered Status", + "default_canceled": "Default Canceled Status", + "default_completed": "Default Completed Status", + "default_delivered": "Default Delivered Status (Transition to Post-Production)", + "default_exported": "Default Exported Status", + "default_imported": "Default Imported Status", + "default_invoiced": "Default Invoiced Status", + "default_ordered": "Default Ordered Status", + "default_quote": "Default Quote Status", + "default_received": "Default Received Status", + "default_returned": "Default Returned", + "default_scheduled": "Default Scheduled Status", + "default_void": "Default Void", + "open_statuses": "Open Statuses", + "post_production_statuses": "Post-Production Statuses", + "pre_production_statuses": "Pre-Production Statuses", + "production_colors": "Production Status Colors", + "production_statuses": "Production Statuses", + "ready_statuses": "Ready Statuses" + }, + "target_touchtime": "Target Touch Time", + "timezone": "Timezone", + "tt_allow_post_to_invoiced": "Allow Time Tickets to be posted to Invoiced & Exported Jobs", + "tt_enforce_hours_for_tech_console": "Restrict Claimable hours from Tech Console", + "use_fippa": "Conceal Customer Information on Generated Documents?", + "use_paint_scale_data": "Use Paint Scale Data for Job Costing?", + "uselocalmediaserver": "Use Local Media Server?", + "website": "Website", + "zip_post": "Zip/Postal Code" + }, + "labels": { + "2tiername": "Name => RO", + "2tiersetup": "2 Tier Setup", + "2tiersource": "Source => RO", + "accountingsetup": "Accounting Setup", + "accountingtiers": "Number of Tiers to Use for Export", + "alljobstatuses": "All Job Statuses", + "allopenjobstatuses": "All Open Job Statuses", + "apptcolors": "Appointment Colors", + "businessinformation": "Business Information", + "checklists": "Checklists", + "csiq": "CSI Questions", + "customtemplates": "Custom Templates", + "defaultcostsmapping": "Default Costs Mapping", + "defaultprofitsmapping": "Default Profits Mapping", + "deliverchecklist": "Delivery Checklist", + "dms": { + "cdk": { + "controllist": "Control Number List", + "payers": "Payers" + }, + "cdk_dealerid": "CDK Dealer ID", + "costsmapping": "Costs Mapping", + "dms_allocations": "DMS Allocations", + "pbs_serialnumber": "PBS Serial Number", + "profitsmapping": "Profits Mapping", + "title": "DMS" + }, + "emaillater": "Email Later", + "employee_teams": "Employee Teams", + "employees": "Employees", + "estimators": "Estimators", + "filehandlers": "Adjusters", + "imexpay": "ImEX Pay", + "insurancecos": "Insurance Companies", + "intakechecklist": "Intake Checklist", + "intellipay_cash_discount": "Please ensure that cash discounting has been enabled on your merchant account. Reach out to IntelliPay Support if you need assistance. ", + "jobstatuses": "Job Statuses", + "laborrates": "Labor Rates", + "licensing": "Licensing", + "md_parts_scan": "Parts Scan Rules", + "md_ro_guard": "RO Guard", + "md_tasks_presets": "Tasks Presets", + "md_to_emails": "Preset To Emails", + "md_to_emails_emails": "Emails", + "messagingpresets": "Messaging Presets", + "notemplatesavailable": "No templates available to add.", + "notespresets": "Notes Presets", + "orderstatuses": "Order Statuses", + "partslocations": "Parts Locations", + "partsscan": "Critical Parts Scanning", + "printlater": "Print Later", + "qbo": "Use QuickBooks Online?", + "qbo_departmentid": "QBO Department ID", + "qbo_usa": "QBO USA Compatibility", + "rbac": "Role Based Access Control", + "responsibilitycenters": { + "costs": "Cost Centers", + "profits": "Profit Centers", + "sales_tax_codes": "Sales Tax Codes", + "tax_accounts": "Tax Accounts", + "title": "Responsibility Centers", + "ttl_adjustment": "Subtotal Adjustment Account", + "ttl_tax_adjustment": "Tax Adjustment Account" + }, + "roguard": { + "title": "RO Guard" + }, + "romepay": "Rome Pay", + "scheduling": "SMART Scheduling", + "scoreboardsetup": "Scoreboard Setup", + "shopinfo": "Shop Information", + "speedprint": "Speed Print Configuration", + "ssbuckets": "Job Size Definitions", + "systemsettings": "System Settings", + "task-presets": "Task Presets", + "workingdays": "Working Days" + }, + "successes": { + "areyousure": "Are you sure you want to continue?", + "defaultviewcreated": "Default view created successfully.", + "save": "Shop configuration saved successfully. ", + "unsavedchanges": "Unsaved changes will be lost. Are you sure you want to continue?" + }, + "validation": { + "centermustexist": "The chosen responsibility center does not exist.", + "larsplit": "Refinish hour split must add up to 1.", + "useremailmustexist": "This email is not a valid user." + } + }, + "checklist": { + "actions": { + "printall": "Print All Documents" + }, + "errors": { + "complete": "Error during Job checklist completion. {{error}}", + "nochecklist": "No checklist has been configured for your shop. " + }, + "labels": { + "addtoproduction": "Add Job to Production?", + "allow_text_message": "Permission to Text?", + "checklist": "Checklist", + "printpack": "Job Intake Print Pack", + "removefromproduction": "Remove Job from Production?" + }, + "successes": { + "completed": "Job checklist completed." + } + }, + "contracts": { + "actions": { + "changerate": "Change Contract Rates", + "convertoro": "Convert to RO", + "decodelicense": "Decode License", + "find": "Find Contract", + "printcontract": "Print Contract", + "senddltoform": "Insert Driver's License Information" + }, + "errors": { + "fetchingjobinfo": "Error fetching Job Info. {{error}}.", + "returning": "Error returning Courtesy Car. {{error}}", + "saving": "Error saving Contract. {{error}}", + "selectjobandcar": "Please ensure both a car and job are selected." + }, + "fields": { + "actax": "A/C Tax", + "actualreturn": "Actual Return Date", + "agreementnumber": "Agreement Number", + "cc_cardholder": "Cardholder Name", + "cc_expiry": "Credit Card Expiry Date", + "cc_num": "Credit Card Number", + "cleanupcharge": "Clean Up Charge", + "coverage": "Coverage", + "dailyfreekm": "Daily Free Mileage", + "dailyrate": "Daily Rate", + "damage": "Existing Damage", + "damagewaiver": "Damage Waiver", + "driver": "Driver", + "driver_addr1": "Driver Address 1", + "driver_addr2": "Driver Address 2", + "driver_city": "Driver City", + "driver_dlexpiry": "Driver's License Expiration Date", + "driver_dlnumber": "Driver's License Number", + "driver_dlst": "Driver's License Province/State", + "driver_dob": "Driver's DOB", + "driver_fn": "Driver's First Name", + "driver_ln": "Driver's Last Name", + "driver_ph1": "Driver's Phone", + "driver_state": "Driver's Province/State ", + "driver_zip": "Driver's Postal/ZIP Code", + "excesskmrate": "Excess Mileage", + "federaltax": "Federal Taxes", + "fuelin": "Fuel In", + "fuelout": "Fuel Out", + "kmend": "Mileage End", + "kmstart": "Mileage Start", + "length": "Length", + "localtax": "Local Taxes", + "refuelcharge": "Refuel Charge (per liter/gallon)", + "scheduledreturn": "Scheduled Return", + "start": "Contract Start", + "statetax": "Provincial/State Taxes", + "status": "Status" + }, + "labels": { + "agreement": "Agreement {{agreement_num}} - {{status}}", + "availablecars": "Available Cars", + "cardueforservice": "The courtesy car is due for servicing.", + "convertform": { + "applycleanupcharge": "Apply cleanup charge?", + "refuelqty": "Refuel qty.?" + }, + "correctdataonform": "Please review the information above. If any of it is not correct, you can fix it later.", + "dateinpast": "Date is in the past.", + "dlexpirebeforereturn": "The driver's license expires before the car is expected to return. ", + "driverinformation": "Driver's Information", + "findcontract": "Find Contract", + "findermodal": "Contract Finder", + "insuranceexpired": "The courtesy car insurance expires before the car is expected to return.", + "noteconvertedfrom": "R.O. created from converted Courtesy Car Contract {{agreementnumber}}.", + "populatefromjob": "Populate from Job", + "rates": "Contract Rates", + "time": "Time", + "vehicle": "Vehicle", + "waitingforscan": "Please scan driver's license barcode..." + }, + "status": { + "new": "New Contract", + "out": "Out", + "returned": "Returned" + }, + "successes": { + "saved": "Contract saved successfully. " + } + }, + "courtesycars": { + "actions": { + "new": "New Courtesy Car", + "return": "Return Car" + }, + "errors": { + "saving": "Error saving Courtesy Car. {{error}}" + }, + "fields": { + "color": "Color", + "dailycost": "Daily Cost to Rent", + "damage": "Damage", + "fleetnumber": "Fleet Number", + "fuel": "Fuel Level", + "insuranceexpires": "Insurance Expires On", + "leaseenddate": "Lease Ends On", + "make": "Make", + "mileage": "Mileage", + "model": "Model", + "nextservicedate": "Next Service Date", + "nextservicekm": "Next Service KMs", + "notes": "Notes", + "plate": "Plate Number", + "purchasedate": "Purchase Date", + "readiness": "Readiness", + "registrationexpires": "Registration Expires On", + "serviceenddate": "Usage End Date", + "servicestartdate": "Usage Start Date", + "status": "Status", + "vin": "VIN", + "year": "Year" + }, + "labels": { + "courtesycar": "Courtesy Car", + "fuel": { + "12": "1/2", + "14": "1/4", + "18": "1/8", + "34": "3/4", + "38": "3/8", + "58": "5/8", + "78": "7/8", + "empty": "Empty", + "full": "Full" + }, + "outwith": "Out With", + "return": "Return Courtesy Car", + "status": "Status", + "uniquefleet": "Enter a unique fleet number.", + "usage": "Usage", + "vehicle": "Vehicle Description" + }, + "readiness": { + "notready": "Not Ready", + "ready": "Ready" + }, + "status": { + "in": "Available", + "inservice": "Service/Maintenance", + "leasereturn": "Lease Returned", + "out": "Rented", + "sold": "Sold", + "unavailable": "Unavailable" + }, + "successes": { + "saved": "Courtesy Car saved successfully." + } + }, + "csi": { + "actions": { + "activate": "Activate" + }, + "errors": { + "creating": "Error creating survey {{message}}", + "notconfigured": "You do not have any current CSI Question Sets configured.", + "notfoundsubtitle": "We were unable to find a survey using the link you provided. Please ensure the URL is correct or reach out to your shop for more help.", + "notfoundtitle": "No survey found.", + "surveycompletesubtitle": "", + "surveycompletetitle": "" + }, + "fields": { + "completedon": "Completed On", + "created_at": "Created At", + "surveyid": "", + "validuntil": "" + }, + "labels": { + "copyright": "", + "greeting": "", + "intro": "", + "nologgedinuser": "Please log out of {{app}}", + "nologgedinuser_sub": "Users of {{app}} cannot complete CSI surveys while logged in. Please log out and try again.", + "noneselected": "No response selected.", + "title": "Customer Satisfaction Survey" + }, + "successes": { + "created": "CSI created successfully. ", + "submitted": "Your responses have been submitted successfully.", + "submittedsub": "Your input is highly appreciated." + } + }, + "dashboard": { + "actions": { + "addcomponent": "Add Component" + }, + "errors": { + "refreshrequired": "You must refresh the dashboard data to see this component.", + "updatinglayout": "Error saving updated layout {{message}}" + }, + "labels": { + "bodyhrs": "Body Hrs", + "dollarsinproduction": "Dollars in Production", + "phone": "Phone", + "prodhrs": "Production Hrs", + "refhrs": "Refinish Hrs" + }, + "titles": { + "joblifecycle": "Job Life Cycles", + "labhours": "Total Body Hours", + "larhours": "Total Refinish Hours", + "monthlyemployeeefficiency": "Monthly Employee Efficiency", + "monthlyjobcosting": "Monthly Job Costing ", + "monthlylaborsales": "Monthly Labor Sales", + "monthlypartssales": "Monthly Parts Sales", + "monthlyrevenuegraph": "Monthly Revenue Graph", + "prodhrssummary": "Production Hours Summary", + "productiondollars": "Total Dollars in Production", + "productionhours": "Total Hours in Production", + "projectedmonthlysales": "Projected Monthly Sales", + "scheduledindate": "Sheduled In Today: {{date}}", + "scheduledintoday": "Sheduled In Today", + "scheduledoutdate": "Sheduled Out Today: {{date}}", + "scheduledouttoday": "Sheduled Out Today", + "tasks": "Tasks" + } + }, + "dms": { + "errors": { + "alreadyexported": "This job has already been sent to the DMS. If you need to resend it, please use admin permissions to mark the job for re-export." + }, + "labels": { + "refreshallocations": "Refresh to see DMS Allocataions." + } + }, + "documents": { + "actions": { + "delete": "Delete Selected Documents", + "download": "Download Selected Images", + "reassign": "Reassign to another Job", + "selectallimages": "Select All Images", + "selectallotherdocuments": "Select All Other Documents" + }, + "errors": { + "deletes3": "Error deleting document from storage. ", + "deleting": "Error deleting documents {{error}}", + "deleting_cloudinary": "Error deleting document from storage. {{message}}", + "getpresignurl": "Error obtaining presigned URL for document. {{message}}", + "insert": "Unable to upload file. {{message}}", + "nodocuments": "There are no documents.", + "updating": "Error updating document. {{error}}" + }, + "labels": { + "confirmdelete": "Are you sure you want to delete these documents. This CANNOT be undone.", + "doctype": "Document Type", + "dragtoupload": "Click or drag files to this area to upload", + "newjobid": "Assign to Job", + "openinexplorer": "Open in Explorer", + "optimizedimage": "The below image is optimized. Click on the picture below to open in a new window and view it full size, or open it in explorer.", + "reassign_limitexceeded": "Reassigning all selected documents will exceed the job storage limit for your shop. ", + "reassign_limitexceeded_title": "Unable to reassign document(s)", + "storageexceeded": "You've exceeded your storage limit for this job. Please remove documents, or increase your storage plan.", + "storageexceeded_title": "Storage Limit Exceeded", + "upload": "Upload", + "upload_limitexceeded": "Uploading all selected documents will exceed the job storage limit for your shop. ", + "upload_limitexceeded_title": "Unable to upload document(s)", + "uploading": "Uploading...", + "usage": "of Job storage used. ({{used}} / {{total}})" + }, + "successes": { + "delete": "Document(s) deleted successfully.", + "edituploaded": "Edited document uploaded successfully. Please close this window and refresh the documents list.", + "insert": "Uploaded document successfully. ", + "updated": "Document updated successfully. " + } + }, + "emails": { + "errors": { + "notsent": "Email not sent. Error encountered while sending {{message}}" + }, + "fields": { + "cc": "CC", + "from": "From", + "subject": "Subject", + "to": "To" + }, + "labels": { + "attachments": "Attachments", + "documents": "Documents", + "emailpreview": "Email Preview", + "generatingemail": "Generating email...", + "pdfcopywillbeattached": "A PDF copy of this email will be attached when it is sent.", + "preview": "Email Preview" + }, + "successes": { + "sent": "Email sent successfully." + } + }, + "employee_teams": { + "actions": { + "new": "New Team", + "newmember": "New Team Member" + }, + "fields": { + "active": "Active", + "employeeid": "Employee", + "max_load": "Max Load", + "name": "Team Name", + "percentage": "Percent" + } + }, + "employees": { + "actions": { + "addvacation": "Add Vacation", + "new": "New Employee", + "newrate": "New Rate" + }, + "errors": { + "delete": "Error encountered while deleting employee. {{message}}", + "save": "Error encountered saving employee. {{message}}", + "validation": "Please check all fields.", + "validationtitle": "Unable to save employee." + }, + "fields": { + "active": "Active?", + "base_rate": "Base Rate", + "cost_center": "Cost Center", + "employee_number": "Employee Number", + "external_id": "External Employee ID", + "first_name": "First Name", + "flat_rate": "Flat Rate (Disabled is Straight Time)", + "hire_date": "Hire Date", + "last_name": "Last Name", + "pin": "Tech Console PIN", + "rate": "Rate", + "termination_date": "Termination Date", + "user_email": "User Email", + "vacation": { + "end": "Vacation End", + "length": "Vacation Length", + "start": "Vacation Start" + } + }, + "labels": { + "actions": "Actions", + "active": "Active", + "endmustbeafterstart": "End date must be after start date.", + "flat_rate": "Flat Rate", + "inactive": "Inactive", + "name": "Name", + "rate_type": "Rate Type", + "status": "Status", + "straight_time": "Straight Time" + }, + "successes": { + "delete": "Employee deleted successfully.", + "save": "Employee saved successfully.", + "vacationadded": "Employee vacation added." + }, + "validation": { + "unique_employee_number": "You must enter a unique employee number." + } + }, + "eula": { + "buttons": { + "accept": "Accept EULA" + }, + "content": { + "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." + }, + "errors": { + "acceptance": { + "description": "Something went wrong while accepting the EULA. Please try again.", + "message": "Eula Acceptance Error" + } + }, + "labels": { + "accepted_terms": "I accept the terms and conditions of this agreement.", + "address": "Address", + "business_name": "Legal Business Name", + "date_accepted": "Date Accepted", + "first_name": "First Name", + "last_name": "Last Name", + "phone_number": "Phone Number" + }, + "messages": { + "accepted_terms": "Please accept the terms and conditions of this agreement.", + "business_name": "Please enter your legal business name.", + "date_accepted": "Please enter Today's Date.", + "first_name": "Please enter your first name.", + "last_name": "Please enter your last name.", + "phone_number": "Please enter your phone number." + }, + "titles": { + "modal": "Terms and Conditions", + "upper_card": "Acknowledgement" + } + }, + "exportlogs": { + "fields": { + "createdat": "Created At" + }, + "labels": { + "attempts": "Export Attempts", + "priorsuccesfulexport": "This record has previously been exported successfully. Please make sure it has already been deleted in the target system." + } + }, + "general": { + "actions": { + "add": "Add", + "autoupdate": "{{app}} will automatically update in {{time}} seconds. Please save all changes.", + "calculate": "Calculate", + "cancel": "Cancel", + "clear": "Clear", + "close": "Close", + "copied": "Copied!", + "copylink": "Copy Link", + "create": "Create", + "defaults": "Defaults", + "delay": "Delay Update (5 mins)", + "delete": "Delete", + "deleteall": "Delete All", + "deselectall": "Deselect All", + "download": "Download", + "edit": "Edit", + "login": "Login", + "next": "Next", + "previous": "Previous", + "print": "Print", + "refresh": "Refresh", + "remove": "Remove", + "remove_alert": "Are you sure you want to dismiss the alert?", + "reset": "Reset your changes.", + "resetpassword": "Reset Password", + "save": "Save", + "saveandnew": "Save and New", + "saveas": "Save As", + "selectall": "Select All", + "send": "Send", + "sendbysms": "Send by SMS", + "senderrortosupport": "Send Error to Support", + "submit": "Submit", + "tryagain": "Try Again", + "view": "View", + "viewreleasenotes": "See What's Changed" + }, + "errors": { + "fcm": "You must allow notification permissions to have real time messaging. Click to try again.", + "notfound": "No record was found.", + "sizelimit": "The selected items exceed the size limit." + }, + "itemtypes": { + "contract": "CC Contract", + "courtesycar": "Courtesy Car", + "job": "Job", + "owner": "Owner", + "vehicle": "Vehicle" + }, + "labels": { + "actions": "Actions", + "areyousure": "Are you sure?", + "barcode": "Barcode", + "cancel": "Are you sure you want to cancel? Your changes will not be saved.", + "clear": "Clear", + "confirmpassword": "Confirm Password", + "created_at": "Created At", + "date": "Select Date", + "datetime": "Select Date & Time", + "email": "Email", + "errors": "Errors", + "excel": "Excel", + "exceptiontitle": "An error has occurred.", + "friday": "Friday", + "globalsearch": "Global Search", + "help": "Help", + "hours": "hrs", + "in": "In", + "instanceconflictext": "Your {{app}} account can only be used on one device at any given time. Refresh your session to take control.", + "instanceconflictitle": "Your account is being used elsewhere.", + "item": "Item", + "label": "Label", + "loading": "Loading...", + "loadingapp": "Loading {{app}}", + "loadingshop": "Loading shop data...", + "loggingin": "Authorizing...", + "markedexported": "Manually marked as exported.", + "media": "Media", + "message": "Message", + "monday": "Monday", + "na": "N/A", + "newpassword": "New Password", + "no": "No", + "nointernet": "It looks like you're not connected to the internet.", + "nointernet_sub": "Please check your connection and try again. ", + "none": "None", + "out": "Out", + "password": "Password", + "passwordresetsuccess": "A password reset link has been sent to you.", + "passwordresetsuccess_sub": "You should receive this email in the next few minutes. Please check your email including any junk or spam folders. ", + "passwordresetvalidatesuccess": "Password successfully reset. ", + "passwordresetvalidatesuccess_sub": "You may now sign in again using your new password. ", + "passwordsdonotmatch": "The passwords you have entered do not match.", + "print": "Print", + "refresh": "Refresh", + "reports": "Reports", + "required": "Required", + "saturday": "Saturday", + "search": "Search...", + "searchresults": "Results for {{search}}", + "selectdate": "Select date...", + "sendagain": "Send Again", + "sendby": "Send By", + "signin": "Sign In", + "sms": "SMS", + "status": "Status", + "sub_status": { + "expired": "The subscription for this shop has expired. Please contact technical support to reactivate the subscription. " + }, + "successful": "Successful", + "sunday": "Sunday", + "text": "Text", + "thursday": "Thursday", + "time": "Select Time", + "total": "Total", + "totals": "Totals", + "tuesday": "Tuesday", + "tvmode": "TV Mode", + "unknown": "Unknown", + "unsavedchanges": "Unsaved changes.", + "username": "Username", + "view": "View", + "wednesday": "Wednesday", + "yes": "Yes" + }, + "languages": { + "english": "English", + "french": "French", + "spanish": "Spanish" + }, + "messages": { + "exception": "{{app}} has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.", + "newversionmessage": "Click refresh below to update to the latest available version of {{app}}. Please make sure all other tabs and windows are closed.", + "newversiontitle": "New version of {{app}} Available", + "noacctfilepath": "There is no accounting file path set. You will not be able to export any items.", + "nofeatureaccess": "You do not have access to this feature of {{app}}. Please contact support to request a license for this feature.", + "noshop": "You do not have access to any shops. Please reach out to your shop manager or technical support. ", + "notfoundsub": "Please make sure that you have access to the data or that the link is correct.", + "notfoundtitle": "We couldn't find what you're looking for...", + "partnernotrunning": "{{app}} has detected that the partner is not running. Please ensure it is running to enable full functionality.", + "rbacunauth": "You are not authorized to view this content. Please reach out to your shop manager to change your access level.", + "unsavedchanges": "You have unsaved changes.", + "unsavedchangespopup": "You have unsaved changes. Are you sure you want to leave?" + }, + "validation": { + "dateRangeExceeded": "The date range has been exceeded.", + "invalidemail": "Please enter a valid email.", + "invalidphone": "Please enter a valid phone number.", + "required": "{{label}} is required." + } + }, + "help": { + "actions": { + "connect": "Connect" + }, + "labels": { + "codeplacholder": "6 digit PIN code", + "rescuedesc": "Enter the 6 digit code provided by {{app}} Support below and click connect.", + "rescuetitle": "Rescue Me!" + } + }, + "intake": { + "labels": { + "printpack": "Intake Print Pack" + } + }, + "inventory": { + "actions": { + "addtoinventory": "Add to Inventory", + "addtoro": "Add to RO", + "consumefrominventory": "Consume from Inventory?", + "edit": "Edit Inventory LIne", + "new": "New Inventory Line" + }, + "errors": { + "inserting": "Error inserting inventory item. {{error}}" + }, + "fields": { + "comment": "Comment", + "manualinvoicenumber": "Invoice Number", + "manualvendor": "Vendor" + }, + "labels": { + "consumedbyjob": "Consumed by Job", + "deleteconfirm": "Are you sure you want to delete this from inventory? The associated bill will not be modified or deleted. ", + "frombillinvoicenumber": "Original Bill Invoice Number", + "fromvendor": "Original Bill Vendor", + "inventory": "Inventory", + "showall": "Show All Inventory", + "showavailable": "Show Only Available Inventory" + }, + "successes": { + "deleted": "Inventory lined deleted.", + "inserted": "Added line to inventory.", + "updated": "Inventory line updated." + } + }, + "job_lifecycle": { + "columns": { + "average_human_readable": "Average Human Readable", + "average_value": "Average Value", + "duration": "Duration", + "end": "End", + "human_readable": "Human Readable", + "percentage": "Percentage", + "relative_end": "Relative End", + "relative_start": "Relative Start", + "start": "Start", + "status": "Status", + "status_count": "In Status", + "value": "Value" + }, + "content": { + "calculated_based_on": "Calculated based on", + "current_status_accumulated_time": "Current Status Accumulated Time", + "data_unavailable": " There is currently no Lifecycle data for this Job.", + "jobs_in_since": "Jobs in since", + "legend_title": "Legend", + "loading": "Loading Job Timelines....", + "not_available": "N/A", + "previous_status_accumulated_time": "Previous Status Accumulated Time", + "title": "Job Lifecycle Component", + "title_durations": "Historical Status Durations", + "title_loading": "Loading", + "title_transitions": "Transitions" + }, + "errors": { + "fetch": "Error getting Job Lifecycle Data" + }, + "titles": { + "dashboard": "Job Lifecycle", + "top_durations": "Top Durations" + } + }, + "job_payments": { + "buttons": { + "create_short_link": "Generate Short Link", + "goback": "Go Back", + "proceedtopayment": "Proceed to Payment", + "refundpayment": "Refund Payment" + }, + "notifications": { + "error": { + "description": "Please try again. Make sure the refund amount does not exceeds the payment amount.", + "openingip": "Error connecting to IntelliPay service.", + "title": "Error placing refund" + } + }, + "titles": { + "amount": "Amount", + "dateOfPayment": "Date of Payment", + "descriptions": "Payment Details", + "hint": "Hint", + "payer": "Payer", + "payername": "Payer Name", + "paymentid": "Payment Reference ID", + "paymentnum": "Payment Number", + "paymenttype": "Payment Type", + "refundamount": "Refund Amount", + "transactionid": "Transaction ID" + } + }, + "joblines": { + "actions": { + "assign_team": "Assign Team", + "converttolabor": "Convert amount to Labor.", + "dispatchparts": "Dispatch Parts ({{count}})", + "new": "New Line" + }, + "errors": { + "creating": "Error encountered while creating job line. {{message}}", + "updating": "Error encountered updating job line. {{message}}" + }, + "fields": { + "act_price": "Retail Price", + "act_price_before_ppc": "Original Part Price", + "adjustment": "Adjustment", + "ah_detail_line": "Mark as Detail Labor Line (Autohouse Only)", + "amount": "Amount", + "assigned_team": "Team", + "assigned_team_name": "Team {{name}}", + "create_ppc": "Create PPC?", + "db_price": "List Price", + "lbr_types": { + "LA1": "LA1", + "LA2": "LA2", + "LA3": "LA3", + "LA4": "LA4", + "LAA": "Aluminum", + "LAB": "Body", + "LAD": "Diagnostic", + "LAE": "Electrical", + "LAF": "Frame", + "LAG": "Glass", + "LAM": "Mechanical", + "LAR": "Refinish", + "LAS": "Structural", + "LAU": "User Defined" + }, + "line_desc": "Line Desc.", + "line_ind": "S#", + "line_no": "Line #", + "location": "Location", + "mod_lb_hrs": "Hrs", + "mod_lbr_ty": "Labor Type", + "notes": "Notes", + "oem_partno": "OEM Part #", "alt_partno": "Alt Part #", - "op_code_desc": "Op Code Description", - "part_qty": "Qty.", - "part_type": "Part Type", - "part_types": { - "CCC": "CC Cleaning", - "CCD": "CC Damage Waiver", - "CCDR": "CC Daily Rate", - "CCF": "CC Refuel", - "CCM": "CC Mileage", - "PAA": "Aftermarket", - "PAC": "Rechromed", - "PAE": "Existing", - "PAG": "Glass", - "PAL": "LKQ", - "PAM": "Remanufactured", - "PAN": "New/OEM", - "PAO": "Other", - "PAP": "OEM Partial", - "PAR": "Recored", - "PAS": "Sublet", - "PASL": "Sublet (L)" - }, - "profitcenter_labor": "Profit Center: Labor", - "profitcenter_part": "Profit Center: Part", - "prt_dsmk_m": "Line Discount/Markup $", - "prt_dsmk_p": "Line Discount/Markup %", - "status": "Status", - "tax_part": "Tax Part", - "total": "Total", - "unq_seq": "Seq #" - }, - "labels": { - "adjustmenttobeadded": "Adjustment to be added: {{adjustment}}", - "billref": "Latest Bill", - "convertedtolabor": "This line has been converted to labor. Ensure you adjust the profit center for the amount accordingly.", - "edit": "Edit Line", - "ioucreated": "IOU", - "new": "New Line", - "nostatus": "No Status", - "presets": "Jobline Presets" - }, - "successes": { - "created": "Job line created successfully.", - "saved": "Job line saved.", - "updated": "Job line updated successfully." - }, - "validations": { - "ahdetailonlyonuserdefinedtypes": "Detail line indicator can only be set for LA1, LA2, LA3, LA4, and LAU labor types.", - "hrsrequirediflbrtyp": "Labor hours are required if a labor type is selected. Clear the labor type if there are no labor hours.", - "requiredifparttype": "Required if a part type has been specified.", - "zeropriceexistingpart": "This line cannot have any price since it uses an existing part." - } - }, - "jobs": { - "actions": { - "addDocuments": "Add Job Documents", - "addNote": "Add Note", - "addtopartsqueue": "Add to Parts Queue", - "addtoproduction": "Add to Production", - "addtoscoreboard": "Add to Scoreboard", - "allocate": "Allocate", - "autoallocate": "Auto Allocate", - "changefilehandler": "Change Adjuster", - "changelaborrate": "Change Labor Rate", - "changestatus": "Change Status", - "changestimator": "Change Estimator", - "convert": "Convert", - "createiou": "Create IOU", - "deliver": "Deliver", - "dms": { - "addpayer": "Add Payer", - "createnewcustomer": "Create New Customer", - "findmakemodelcode": "Find Make/Model Code", - "getmakes": "Get Makes", - "labels": { - "refreshallocations": "Refresh this component to see the DMS allocations." - }, - "post": "Post", - "refetchmakesmodels": "Refetch Make and Model Codes", - "usegeneric": "Use Generic Customer", - "useselected": "Use Selected Customer" - }, - "dmsautoallocate": "DMS Auto Allocate", - "export": "Export", - "exportcustdata": "Export Customer Data", - "exportselected": "Export Selected", - "filterpartsonly": "Filter Parts Only", - "generatecsi": "Generate CSI & Copy Link", - "gotojob": "Go to Job", - "intake": "Intake", - "manualnew": "Create New Job Manually", - "mark": "Mark", - "markasexported": "Mark as Exported", - "markpstexempt": "Mark Job PST Exempt", - "markpstexemptconfirm": "Are you sure you want to do this? To undo this, you must manually update all PST rates.", - "postbills": "Post Bills", - "printCenter": "Print Center", - "recalculate": "Recalculate", - "reconcile": "Reconcile", - "removefromproduction": "Remove from Production", - "schedule": "Schedule", - "sendcsi": "Send CSI", - "sendpartspricechange": "Send Parts Price Change", - "sendtodms": "Send to DMS", - "sync": "Sync", - "taxprofileoverride": "Override Tax Profile with Shop Configuration", - "taxprofileoverride_confirm": "Are you sure you want to override the tax profile information? This cannot be undone without re-importing the job. ", - "uninvoice": "Uninvoice", - "unvoid": "Unvoid Job", - "viewchecklist": "View Checklists", - "viewdetail": "View Details" - }, - "errors": { - "addingtoproduction": "Error adding to production. {{error}}", - "cannotintake": "Intake cannot be completed for this Job. It has either already been completed or the job is already here.", - "closing": "Error closing Job. {{error}}", - "creating": "Error encountered while creating job. {{error}}", - "deleted": "Error deleting Job. {{error}}", - "exporting": "Error exporting Job. {{error}}", - "exporting-partner": "Unable to connect to partner application. Please ensure it is running and logged in.", - "invoicing": "Error invoicing Job. {{error}}", - "noaccess": "This Job does not exist or you do not have access to it.", - "nodamage": "No damage points on estimate.", - "nodates": "No dates specified for this Job.", - "nofinancial": "No financial data has been calculated yet for this job. Please save it again.", - "nojobselected": "No Job is selected.", - "noowner": "No owner associated.", - "novehicle": "No vehicle associated.", - "partspricechange": "Error sending parts price change. {{error}}.", - "saving": "Error encountered while saving record.", - "scanimport": "Error importing Job. {{message}}", - "totalscalc": "Error while calculating new Job totals.", - "updating": "Error while updating Job(s). {{error}}", - "validation": "Please ensure all fields are entered correctly.", - "validationtitle": "Validation Error", - "voiding": "Error voiding Job. {{error}}" - }, - "fields": { - "active_tasks": "Active Tasks", - "actual_completion": "Actual Completion", - "actual_delivery": "Actual Delivery", - "actual_in": "Actual In", - "adjustment_bottom_line": "Adjustments", - "adjustmenthours": "Adjustment Hours", - "alt_transport": "Alt. Trans.", - "area_of_damage_impact": { - "10": "Left Front Side", - "11": "Left Front Corner", - "12": "Front", - "13": "Rollover", - "14": "Unknown", - "15": "Total Loss", - "16": "Non-collision", - "25": "Hood", - "26": "Deck-lid", - "27": "Roof", - "28": "Undercarriage", - "34": "All Over", - "01": "Right Front Corner", - "02": "Right Front Side", - "03": "Right Side", - "04": "Right Rear Side", - "05": "Right Rear Corner", - "06": "Rear", - "07": "Left Rear Corner", - "08": "Left Rear Side", - "09": "Left Side" - }, - "auto_add_ats": "Automatically Add/Update ATS", - "ca_bc_pvrt": "PVRT", - "ca_customer_gst": "Customer Portion of GST", - "ca_gst_registrant": "GST Registrant", - "category": "Category", - "ccc": "CC Cleaning", - "ccd": "CC Damage Waiver", - "ccdr": "CC Daily Rate", - "ccf": "CC Refuel", - "ccm": "CC Mileage", - "cieca_id": "CIECA ID", - "cieca_pfl": { - "lbr_adjp": "Labor Adjustment", - "lbr_tax_in": "Tax Labor Indicator", - "lbr_taxp": "Labor Tax Rate", - "lbr_tx_in1": "Tax 1 Indicator", - "lbr_tx_in2": "Tax 2 Indicator", - "lbr_tx_in3": "Tax 3 Indicator", - "lbr_tx_in4": "Tax 4 Indicator", - "lbr_tx_in5": "Tax 5 Indicator" - }, - "cieca_pfo": { - "stor_t_in1": "Storage Tax 1 Indicator", - "stor_t_in2": "Storage Tax 2 Indicator", - "stor_t_in3": "Storage Tax 3 Indicator", - "stor_t_in4": "Storage Tax 4 Indicator", - "stor_t_in5": "Storage Tax 5 Indicator", - "tow_t_in1": "Tow Tax 1 Indicator", - "tow_t_in2": "Tow Tax 2 Indicator", - "tow_t_in3": "Tow Tax 3 Indicator", - "tow_t_in4": "Tow Tax 4 Indicator", - "tow_t_in5": "Tow Tax 5 Indicator" - }, - "claim_total": "Claim Total", - "class": "Class", - "clm_no": "Claim #", - "clm_total": "Claim Total", - "comment": "Comment", - "customerowing": "Customer Owing", - "date_estimated": "Date Estimated", - "date_exported": "Exported", - "date_invoiced": "Invoiced", - "date_last_contacted": "Last Contacted Date", - "date_lost_sale": "Lost Sale", - "date_next_contact": "Next Contact Date", - "date_open": "Open", - "date_rentalresp": "Shop Rental Responsibility Start", - "date_repairstarted": "Repairs Started", - "date_scheduled": "Scheduled", - "date_towin": "Towed In", - "date_void": "Void", - "ded_amt": "Deductible", - "ded_note": "Deductible Note", - "ded_status": "Deductible Status", - "depreciation_taxes": "Betterment/Depreciation/Taxes", - "dms": { - "address": "Customer Address", - "amount": "Amount", - "center": "Center", - "control_type": { - "account_number": "Account Number" - }, - "cost": "Cost", - "cost_dms_acctnumber": "Cost DMS Acct #", - "dms_make": "DMS Make", - "dms_model": "DMS Model", - "dms_model_override": "Override DMS Make/Model", - "dms_unsold": "New, Unsold Vehicle", - "dms_wip_acctnumber": "Cost WIP DMS Acct #", - "id": "DMS ID", - "inservicedate": "In Service Date", - "journal": "Journal #", - "lines": "Posting Lines", - "name1": "Customer Name", - "payer": { - "amount": "Amount", - "control_type": "Control Type", - "controlnumber": "Control Number", - "dms_acctnumber": "DMS Account #", - "name": "Payer Name" - }, - "sale": "Sale", - "sale_dms_acctnumber": "Sale DMS Acct #", - "story": "Story", - "vinowner": "VIN Owner" - }, - "dms_allocation": "DMS Allocation", - "driveable": "Driveable", - "employee_body": "Body", - "employee_csr": "Customer Service Rep.", - "employee_csr_writer": "Writer", - "employee_prep": "Prep", - "employee_refinish": "Refinish", - "est_addr1": "Estimator Address", - "est_co_nm": "Estimator Company", - "est_ct_fn": "Estimator First Name", - "est_ct_ln": "Estimator Last Name", - "est_ea": "Estimator Email", - "est_ph1": "Estimator Phone #", - "federal_tax_payable": "Federal Tax Payable", - "federal_tax_rate": "Federal Tax Rate", - "ins_addr1": "Insurance Co. Address", - "ins_city": "Insurance Co. City", - "ins_co_id": "Insurance Co. ID", - "ins_co_nm": "Insurance Company Name", - "ins_co_nm_short": "Ins. Co.", - "ins_ct_fn": "Adjuster First Name", - "ins_ct_ln": "Adjuster Last Name", - "ins_ea": "Adjuster Email", - "ins_ph1": "Adjuster Phone #", - "intake": { - "label": "Label", - "max": "Maximum", - "min": "Minimum", - "name": "Name", - "required": "Required?", - "type": "Type" - }, - "invoice_final_note": "Note to Display on Final Invoice", - "kmin": "Mileage In", - "kmout": "Mileage Out", - "la1": "LA1", - "la2": "LA2", - "la3": "LA3", - "la4": "LA4", - "laa": "Aluminum ", - "lab": "Body", - "labor_rate_desc": "Labor Rate Name", - "lad": "Diagnostic", - "lae": "Electrical", - "laf": "Frame", - "lag": "Glass", - "lam": "Mechanical", - "lar": "Refinish", - "las": "Structural", - "lau": "User Defined", - "local_tax_rate": "Local Tax Rate", - "loss_date": "Loss Date", - "loss_desc": "Loss Description", - "loss_of_use": "Loss of Use", - "lost_sale_reason": "Lost Sale Reason", - "ma2s": "2 Stage Paint", - "ma3s": "3 Stage Pain", - "mabl": "MABL?", - "macs": "MACS?", - "mahw": "Hazardous Waste", - "mapa": "Paint Materials", - "mash": "Shop Materials", - "matd": "Tire Disposal", - "materials": { - "MAPA": "Paint Materials", - "MASH": "Shop Materials", - "cal_maxdlr": "Threshhold", - "cal_opcode": "OP Codes", - "mat_adjp": "Material Adjustment", - "mat_taxp": "Material Tax Rate", - "mat_tx_in1": "Tax 1 Indicator", - "mat_tx_in2": "Tax 2 Indicator", - "mat_tx_in3": "Tax 3 Indicator", - "mat_tx_in4": "Tax 4 Indicator", - "mat_tx_in5": "Tax 5 Indicator", - "materials": "Profile - Materials", - "tax_ind": "Tax Indicator" - }, - "other_amount_payable": "Other Amount Payable", - "owner": "Owner", - "owner_owing": "Cust. Owes", - "ownr_ea": "Email", - "ownr_ph1": "Phone 1", - "ownr_ph2": "Phone 2", - "paa": "Aftermarket", - "pac": "Rechromed", - "pae": "Existing", - "pag": "Glass", - "pal": "LKQ", - "pam": "Remanufactured", - "pan": "OEM/New", - "pao": "Other", - "pap": "OEM Partial", - "par": "Re-cored", - "parts_tax_rates": { - "prt_discp": "Discount %", - "prt_mktyp": "Markup Type", - "prt_mkupp": "Markup %", - "prt_tax_in": "Tax Indicator", - "prt_tax_rt": "Part Tax Rate", - "prt_tx_in1": "Tax 1 Indicator", - "prt_tx_in2": "Tax 2 Indicator", - "prt_tx_in3": "Tax 3 Indicator", - "prt_tx_in4": "Tax 4 Indicator", - "prt_tx_in5": "Tax 5 Indicator", - "prt_tx_ty1": "Parts Tax Type 1", - "prt_type": "Part Type" - }, - "partsstatus": "Parts Status", - "pas": "Sublet", - "pay_date": "Pay Date", - "phoneshort": "PH", - "po_number": "PO Number", - "policy_no": "Policy #", - "ponumber": "PO Number", - "production_vars": { - "note": "Production Note" - }, - "qb_multiple_payers": { - "amount": "Amount", - "name": "Name" - }, - "queued_for_parts": "Queued for Parts", - "rate_ats": "ATS Rate", - "rate_la1": "LA1", - "rate_la2": "LA2", - "rate_la3": "LA3", - "rate_la4": "LA4", - "rate_laa": "Aluminum", - "rate_lab": "Body", - "rate_lad": "Diagnostic", - "rate_lae": "Electrical", - "rate_laf": "Frame", - "rate_lag": "Glass", - "rate_lam": "Mechanical", - "rate_lar": "Refinish", - "rate_las": "Structural", - "rate_lau": "User Defined", - "rate_ma2s": "2 Stage Paint", - "rate_ma3s": "3 Stage Paint", - "rate_mabl": "MABL??", - "rate_macs": "MACS??", - "rate_mahw": "Hazardous Waste", - "rate_mapa": "Paint Materials", - "rate_mash": "Shop Material", - "rate_matd": "Tire Disposal", - "referral_source_extra": "Other Referral Source", - "referral_source_other": "", - "referralsource": "Referral Source", - "regie_number": "Registration #", - "repairtotal": "Repair Total", - "ro_number": "RO #", - "scheduled_completion": "Scheduled Completion", - "scheduled_delivery": "Scheduled Delivery", - "scheduled_in": "Scheduled In", - "selling_dealer": "Selling Dealer", - "selling_dealer_contact": "Selling Dealer Contact", - "servicecar": "Service Car", - "servicing_dealer": "Servicing Dealer", - "servicing_dealer_contact": "Servicing Dealer Contact", - "special_coverage_policy": "Special Coverage Policy", - "specialcoveragepolicy": "Special Coverage Policy", - "state_tax_rate": "State Tax Rate", - "status": "Job Status", - "storage_payable": "Storage", - "tax_lbr_rt": "Labor Tax Rate", - "tax_levies_rt": "Levies Tax Rate", - "tax_paint_mat_rt": "Paint Material Tax Rate", - "tax_registration_number": "Tax Registration Number", - "tax_shop_mat_rt": "Shop Material Tax Rate", - "tax_str_rt": "Storage Tax Rate", - "tax_sub_rt": "Sublet Tax Rate", - "tax_tow_rt": "Towing Tax Rate", - "tlos_ind": "Total Loss Indicator", - "towin": "Tow In", - "towing_payable": "Towing Payable", - "unitnumber": "Unit #", - "updated_at": "Updated At", - "uploaded_by": "Uploaded By", - "vehicle": "Vehicle" - }, - "forms": { - "admindates": "Administrative Dates", - "appraiserinfo": "Estimator Info", - "claiminfo": "Claim Information", - "estdates": "Estimate Dates", - "laborrates": "Labor Rates", - "lossinfo": "Loss Information", - "other": "Other", - "repairdates": "Repair Dates", - "scheddates": "Schedule Dates" - }, - "labels": { - "accountsreceivable": "Accounts Receivable", - "act_price_ppc": "New Part Price", - "actual_completion_inferred": "$t(jobs.fields.actual_completion) inferred using $t(jobs.fields.scheduled_completion).", - "actual_delivery_inferred": "$t(jobs.fields.actual_delivery) inferred using $t(jobs.fields.scheduled_delivery).", - "actual_in_inferred": "$t(jobs.fields.actual_in) inferred using $t(jobs.fields.scheduled_in).", - "additionalpayeroverallocation": "You have allocated more than the sale of the Job to additional payers.", - "additionaltotal": "Additional Total", - "adjustmentrate": "Adjustment Rate", - "adjustments": "Adjustments", - "adminwarning": "Use the functionality on this page at your own risk. You are responsible for any and all changes to your data.", - "allocations": "Allocations", - "alreadyaddedtoscoreboard": "Job has already been added to scoreboard. Saving will update the previous entry.", - "alreadyclosed": "This Job has already been closed.", - "appointmentconfirmation": "Send confirmation to customer?", - "associationwarning": "Any changes to associations will require updating the data from the new parent record to the Job.", - "audit": "Audit Trail", - "available": "Available", - "availablejobs": "Available Jobs", - "ca_bc_pvrt": { - "days": "Days", - "rate": "PVRT Rate" - }, - "ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ", - "calc_repair_days": "Calculated Repair Days", - "calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).", - "calc_scheuled_completion": "Calculate Scheduled Completion", - "cards": { - "customer": "Customer Information", - "damage": "Area of Damage", - "dates": "Dates", - "documents": "Recent Documents", - "estimator": "Estimator", - "filehandler": "Adjuster", - "insurance": "Insurance Details", - "more": "More", - "notes": "Notes", - "parts": "Parts", - "totals": "Totals", - "vehicle": "Vehicle" - }, - "changeclass": "Changing the Job's class can have fundamental impacts to already exported accounting items. Are you sure you want to do this?", - "checklistcompletedby": "Checklist completed by {{by}} at {{at}}", - "checklistdocuments": "Checklist Documents", - "checklists": "Checklists", - "cieca_pfl": "Profile - Labor", - "cieca_pfo": "Profile - Other", - "cieca_pft": "Profile - Taxes", - "closeconfirm": "Are you sure you want to close this job? This cannot be easily undone.", - "closejob": "Close Job {{ro_number}}", - "closingperiod": "This Invoice Date is outside of the Closing Period.", - "contracts": "CC Contracts", - "convertedtolabor": "Labor Line Adjustments", - "cost": "Cost", - "cost_Additional": "Cost - Additional", - "cost_labor": "Cost - Labor", - "cost_parts": "Cost - Parts", - "cost_sublet": "Cost - Sublet", - "costs": "Costs", - "create": { - "jobinfo": "Job Info", - "newowner": "Create a new Owner instead. ", - "newvehicle": "Create a new Vehicle Instead", - "novehicle": "No vehicle (only for ROs to track parts/labor only work).", - "ownerinfo": "Owner Info", - "vehicleinfo": "Vehicle Info" - }, - "createiouwarning": "Are you sure you want to create an IOU for these lines? A new RO will be created based on those lines for this customer.", - "creating_new_job": "Creating new Job...", - "deductible": { - "stands": "Stands", - "waived": "Waived" - }, - "deleteconfirm": "Are you sure you want to delete this Job? This cannot be undone. ", - "deletedelivery": "Delete Delivery Checklist", - "deleteintake": "Delete Intake Checklist", - "deliverchecklist": "Deliver Checklist", - "difference": "Difference", - "diskscan": "Scan Disk for Estimates", - "dms": { - "apexported": "AP export completed. See logs for details.", - "damageto": "Damage to $t(jobs.fields.area_of_damage_impact.{{area_of_damage}}).", - "defaultstory": "B/S RO: {{ro_number}}. Owner: {{ownr_nm}}. Insurance Co: {{ins_co_nm}}. Claim/PO #: {{clm_po}}", - "disablebillwip": "Cost and WIP for bills has been ignored per shop configuration.", - "invoicedatefuture": "Invoice date must be today or in the future for CDK posting.", - "kmoutnotgreaterthankmin": "Mileage out must be greater than mileage in.", - "logs": "Logs", - "notallocated": "Not Allocated", - "postingform": "Posting Form", - "totalallocated": "Total Amount Allocated" - }, - "documents": "Documents", - "documents-images": "Images", - "documents-other": "Other Documents", - "duplicateconfirm": "Are you sure you want to duplicate this Job? Some elements of this Job will not be duplicated.", - "emailaudit": "Email Audit Trail", - "employeeassignments": "Employee Assignments", - "estimatelines": "Estimate Lines", - "estimator": "Estimator", - "existing_jobs": "Existing Jobs", - "federal_tax_amt": "Federal Taxes", - "gpdollars": "$ G.P.", - "gppercent": "% G.P.", - "hrs_claimed": "Hours Flagged", - "hrs_total": "Hours Total", - "importnote": "The Job was initially imported.", - "inproduction": "In Production", - "intakechecklist": "Intake Checklist", - "iou": "IOU", - "job": "Job Details", - "jobcosting": "Job Costing", - "jobtotals": "Job Totals", - "labor_hrs": "B/P/T Hrs", - "labor_rates_subtotal": "Labor Rates Subtotal", - "laborallocations": "Labor Allocations", - "labortotals": "Labor Totals", - "lines": "Estimate Lines", - "local_tax_amt": "Local Taxes", - "mapa": "Paint Materials", - "markforreexport": "Mark for Re-export", - "mash": "Shop Materials", - "masterbypass": "Master Bypass Password", - "materials": { - "mapa": "" - }, - "missingprofileinfo": "This job has missing tax profile info. To ensure correct totals calculations, re-import the job.", - "multipayers": "Additional Payers", - "net_repairs": "Net Repairs", - "notes": "Notes", - "othertotal": "Other Totals", - "outstanding_ar": "A balance is outstanding on this RO. Payments can still be entered when the job is closed. ", - "outstanding_credit_memos": "Outstanding credit memos have not been entered against this job. Credit Memos may still be posted once the job is closed.", - "outstanding_ppd": "There are outstanding PPDs that may not have been synced back to the estimate.", - "outstanding_reconciliation_discrep": "At least one discrepancy is not $0. This may indicate that this job is not properly reconciled and should not be closed.", - "outstanding_sublets": "There are sublet lines on the job which have not been marked as completed. ", - "outstandinghours": "There are outstanding hours on the job that have not been paid or have been overpaid.", - "override_header": "Override estimate header on import?", - "ownerassociation": "Owner Association", - "parts": "Parts", - "parts_lines": "Parts Lines", - "parts_received": "Parts Rec.", - "parts_tax_rates": "Parts Tax rates", - "partsfilter": "Parts Only", - "partssubletstotal": "Parts & Sublets Total", - "partstotal": "Parts Total (ex. Taxes)", - "performance": "Performance", - "pimraryamountpayable": "Total Primary Payable", - "plitooltips": { - "billtotal": "The total amount of all bill lines that have been posted against this RO (not including credits, taxes, or labor adjustments).", - "calculatedcreditsnotreceived": "The calculated credits not received is derived by subtracting the amount of credit memos entered from the retail total of returns created. This does not take into account whether the credit was marked as received. You can find more information here.", - "creditmemos": "The total retail amount of all returns created. This amount does not reflect credit memos that have been posted.", - "creditsnotreceived": "This total reflects the total retail of parts returns lines that have not been explicitly marked as returned when posting a credit memo. You can learn more about this here here. ", - "discrep1": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • Too many bills/bill lines that have been posted against this RO. Check to make sure every bill posted on this RO is correctly posted and assigned.
  • \n
  • You do not have the latest supplement imported, or, a supplement must be submitted and then imported.
  • \n
  • You have posted a bill line to labor.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", - "discrep2": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • Used an incorrect rate when deducting from labor.
  • \n
  • An outstanding imbalance higher in the reconciliation process.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", - "discrep3": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • A parts order return has not been created.
  • \n
  • An outstanding imbalance higher in the reconciliation process.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", - "laboradj": "The sum of all bill lines that deducted from labor hours, rather than part prices.", - "partstotal": "This is the total of all parts and sublet amounts on the vehicle (some of these may require an in-house invoice).
\nItems such as shop and paint materials, labor online lines, etc. are not included in this total.", - "totalreturns": "The total retail amount of returns created for this job." - }, - "ppc": "This line contains a part price change.", - "ppdnotexported": "PPDs not Exported", - "profileadjustments": "Profile Disc./Mkup", - "profitbypassrequired": "Minimum gross profit requirements have not been met.", - "profits": "Job Profits", - "prt_dsmk_total": "Line Item Adjustment", - "rates": "Rates", - "rates_subtotal": "All Rates Subtotal", - "reconciliation": { - "billlinestotal": "Bill Lines Total", - "byassoc": "By Line Association", - "byprice": "By Price", - "clear": "Clear All", - "discrepancy": "Discrepancy", - "joblinestotal": "Job Lines Total", - "multipleactprices": "${{act_price}} is the price for multiple job lines.", - "multiplebilllines": "{{line_desc}} has 2 or more bill lines associated to it.", - "multiplebillsforactprice": "Found more than 1 bill matching ${{act_price}} retail price.", - "removedpartsstrikethrough": "Strike through lines represent parts that have been removed from the estimate. They are included for completeness of reconciliation." - }, - "reconciliationheader": "Parts & Sublet Reconciliation", - "relatedros": "Related ROs", - "remove_from_ar": "Remove from AR", - "returntotals": "Return Totals", - "ro_guard": { - "enforce_ar": "AR collection enforced.", - "enforce_bills": "Bill discrepancy enforced.", - "enforce_cm": "Credit memo entry enforced.", - "enforce_labor": "Labor allocations enforced.", - "enforce_ppd": "PPD sync enforced.", - "enforce_profit": "Profit marginsenforced.", - "enforce_sublet": "Sublet completion enforced.", - "enforce_validation": "Master Bypass Required: {{message}}", - "enforced": "This check has been enforced by your shop manager. Enter the master bypass password to close the Job." - }, - "roguard": "RO Guard", - "roguardwarnings": "RO Guard Warnings", - "rosaletotal": "RO Parts Total", - "sale_additional": "Sales - Additional", - "sale_labor": "Sales - Labor", - "sale_parts": "Sales - Parts", - "sale_sublet": "Sales - Sublet", - "sales": "Sales", - "savebeforeconversion": "You have unsaved changes on the Job. Please save them before converting it. ", - "scheduledinchange": "The scheduled in is based off the latest appointment. To change this date, please schedule or reschedule the Job. ", - "specialcoveragepolicy": "Special Coverage Policy Applies", - "state_tax_amt": "Provincial/State Taxes", - "subletsnotcompleted": "Outstanding Sublets", - "subletstotal": "Sublets Total", - "subtotal": "Subtotal", - "supplementnote": "The Job had a supplement imported.", - "suspended": "SUSPENDED", - "suspense": "Suspense", - "tasks": "Tasks", - "threshhold": "Max Threshold: ${{amount}}", - "total_cost": "Total Cost", - "total_cust_payable": "Total Customer Amount Payable", - "total_cust_payable_cash_discount": "$t(jobs.labels.total_cust_payable) (Cash Discounted)", - "total_repairs": "Total Repairs", - "total_repairs_cash_discount": "Total Repairs (Cash Discounted)", - "total_sales": "Total Sales", - "total_sales_tax": "Total Sales Tax", - "totals": "Totals", - "unvoidnote": "This Job was unvoided.", - "update_scheduled_completion": "Update Scheduled Completion?", - "vehicle_info": "Vehicle", - "vehicleassociation": "Vehicle Association", - "viewallocations": "View Allocations", - "voidjob": "Are you sure you want to void this Job? This cannot be easily undone. ", - "voidnote": "This Job was voided." - }, - "successes": { - "addedtoproduction": "Job added to production board.", - "all_deleted": "{{count}} Jobs deleted successfully.", - "closed": "Job closed successfully.", - "converted": "Job converted successfully.", - "created": "Job created successfully. Click to view.", - "creatednoclick": "Job created successfully. ", - "delete": "Job deleted successfully.", - "deleted": "Job deleted successfully.", - "duplicated": "Job duplicated successfully. ", - "exported": "Job(s) exported successfully. ", - "invoiced": "Job closed and invoiced successfully.", - "ioucreated": "IOU created successfully. Click to see.", - "partsqueue": "Job added to parts queue.", - "save": "Job saved successfully.", - "savetitle": "Record saved successfully.", - "supplemented": "Job supplemented successfully. ", - "updated": "Job(s) updated successfully.", - "voided": "Job voided successfully." - } - }, - "landing": { - "bigfeature": { - "subtitle": "Rome Online is built using world class technology by experts in the collision repair industry. This translates to software that is tailor made for the unique challenges faced by repair facilities with no compromises. ", - "title": "Bringing the latest technology to the automotive repair industry. " - }, - "footer": { - "company": { - "about": "About Us", - "contact": "Contact", - "disclaimers": "Disclaimers", - "name": "Company", - "privacypolicy": "Privacy Policy" - }, - "io": { - "help": "Help", - "name": "Rome Online", - "status": "System Status" - }, - "slogan": "Rome Technologies. is a technology leader in the collision repair industry. We specialize in creating collision repair management systems and bodyshop management systems that lower cycle times and promote efficiency." - }, - "hero": { - "button": "Learn More", - "title": "Shop management reimagined." - }, - "labels": { - "features": "Features", - "managemyshop": "Sign In", - "pricing": "Pricing" - }, - "pricing": { - "basic": { - "name": "Basic", - "sub": "Best suited for shops looking to increase their volume." - }, - "essentials": { - "name": "Essentials", - "sub": "Best suited for small and low volume shops." - }, - "pricingtitle": "Features", - "pro": { - "name": "Pro", - "sub": "Empower your shop with the tools to operate at peak capacity." - }, - "title": "Features", - "unlimited": { - "name": "Unlimited", - "sub": "Everything you need and more for the high volume shop." - } - } - }, - "menus": { - "currentuser": { - "languageselector": "Language", - "profile": "Profile" - }, - "header": { - "accounting": "Accounting", - "accounting-payables": "Payables", - "accounting-payments": "Payments", - "accounting-receivables": "Receivables", - "activejobs": "Active Jobs", - "all_tasks": "All Tasks", - "alljobs": "All Jobs", - "allpayments": "All Payments", - "availablejobs": "Available Jobs", - "bills": "Bills", - "courtesycars": "Courtesy Cars", - "courtesycars-all": "All Courtesy Cars", - "courtesycars-contracts": "Contracts", - "courtesycars-newcontract": "New Contract", - "create_task": "Create Task", - "customers": "Customers", - "dashboard": "Dashboard", - "enterbills": "Enter Bills", - "entercardpayment": "New Card Charge", - "enterpayment": "Enter Payments", - "entertimeticket": "Enter Time Tickets", - "export": "Export", - "export-logs": "Export Logs", - "help": "Help", - "home": "Home", - "inventory": "Inventory", - "jobs": "Jobs", - "my_tasks": "My Tasks", - "newjob": "Create New Job", - "owners": "Owners", - "parts-queue": "Parts Queue", - "phonebook": "Phonebook", - "productionboard": "Production Board - Visual", - "productionlist": "Production Board - List", - "readyjobs": "Ready Jobs", - "recent": "Recent Items", - "reportcenter": "Report Center", - "rescueme": "Rescue me!", - "schedule": "Schedule", - "scoreboard": "Scoreboard", - "search": { - "bills": "Bills", - "jobs": "Jobs", - "owners": "Owners", - "payments": "Payments", - "phonebook": "Phonebook", - "vehicles": "Vehicles" - }, - "shiftclock": "Shift Clock", - "shop": "My Shop", - "shop_config": "Configuration", - "shop_csi": "CSI", - "shop_templates": "Templates", - "shop_vendors": "Vendors", - "tasks": "Tasks", - "temporarydocs": "Temporary Documents", - "timetickets": "Time Tickets", - "ttapprovals": "Time Ticket Approvals", - "vehicles": "Vehicles" - }, - "jobsactions": { - "admin": "Admin", - "cancelallappointments": "Cancel all appointments", - "closejob": "Close Job", - "deletejob": "Delete Job", - "duplicate": "Duplicate this Job", - "duplicatenolines": "Duplicate this Job without Repair Data", - "newcccontract": "Create Courtesy Car Contract", - "void": "Void Job" - }, - "jobsdetail": { - "claimdetail": "Claim Details", - "dates": "Dates", - "financials": "Financial Information", - "general": "General", - "insurance": "Insurance Information", - "labor": "Labor", - "lifecycle": "Lifecycle", - "parts": "Parts", - "partssublet": "Parts & Bills", - "rates": "Rates", - "repairdata": "Repair Data", - "totals": "Totals" - }, - "profilesidebar": { - "profile": "My Profile", - "shops": "My Shops" - }, - "tech": { - "assignedjobs": "Assigned Jobs", - "claimtask": "Flag Hours", - "dispatchedparts": "Dispatched Parts", - "home": "Home", - "jobclockin": "Job Clock In", - "jobclockout": "Job Clock Out", - "joblookup": "Job Lookup", - "login": "Login", - "logout": "Logout", - "productionboard": "Production Visual", - "productionlist": "Production List", - "shiftclockin": "Shift Clock" - } - }, - "messaging": { - "actions": { - "link": "Link to Job", - "new": "New Conversation" - }, - "errors": { - "invalidphone": "The phone number is invalid. Unable to open conversation. ", - "noattachedjobs": "No Jobs have been associated to this conversation. ", - "updatinglabel": "Error updating label. {{error}}" - }, - "labels": { - "addlabel": "Add a label to this conversation.", - "archive": "Archive", - "maxtenimages": "You can only select up to a maximum of 10 images at a time.", - "messaging": "Messaging", - "noallowtxt": "This customer has not indicated their permission to be messaged.", - "nojobs": "Not associated to any Job.", - "nopush": "Polling Mode Enabled", - "phonenumber": "Phone #", - "presets": "Presets", - "recentonly": "Only your most recent 50 conversations will be shown here. If you are looking for an older conversation, find the related contact and click their phone number to view the conversation.", - "selectmedia": "Select Media", - "sentby": "Sent by {{by}} at {{time}}", - "typeamessage": "Send a message...", - "unarchive": "Unarchive" - }, - "render": { - "conversation_list": "Conversation List" - } - }, - "notes": { - "actions": { - "actions": "Actions", - "deletenote": "Delete Note", - "edit": "Edit Note", - "new": "New Note", - "savetojobnotes": "Save to Job Notes" - }, - "errors": { - "inserting": "Error inserting note. {{error}}" - }, - "fields": { - "createdby": "Created By", - "critical": "Critical", - "private": "Private", - "text": "Contents", - "type": "Type", - "types": { - "customer": "Customer", - "general": "General", - "office": "Office", - "paint": "Paint", - "parts": "Parts", - "shop": "Shop", - "supplement": "Supplement" - }, - "updatedat": "Updated At" - }, - "labels": { - "addtorelatedro": "Add to Related ROs", - "newnoteplaceholder": "Add a note...", - "notetoadd": "Note to Add", - "systemnotes": "System Notes", - "usernotes": "User Notes" - }, - "successes": { - "create": "Note created successfully.", - "deleted": "Note deleted successfully.", - "updated": "Note updated successfully." - } - }, - "owner": { - "labels": { - "noownerinfo": "No owner information." - } - }, - "owners": { - "actions": { - "update": "Update Selected Records" - }, - "errors": { - "deleting": "Error deleting owner. {{error}}.", - "noaccess": "The record does not exist or you do not have access to it. ", - "saving": "Error saving owner. {{error}}.", - "selectexistingornew": "Select an existing owner record or create a new one. " - }, - "fields": { - "accountingid": "Accounting ID", - "address": "Address", - "allow_text_message": "Permission to Text?", - "name": "Name", - "note": "Owner Note", - "ownr_addr1": "Address", - "ownr_addr2": "Address 2", - "ownr_city": "City", - "ownr_co_nm": "Owner Co. Name", - "ownr_ctry": "Country", - "ownr_ea": "Email", - "ownr_fn": "First Name", - "ownr_ln": "Last Name", - "ownr_ph1": "Phone 1", - "ownr_ph2": "Phone 2", - "ownr_st": "Province/State", - "ownr_title": "Title", - "ownr_zip": "Zip/Postal Code", - "preferred_contact": "Preferred Contact Method", - "tax_number": "Tax Number" - }, - "forms": { - "address": "Address", - "contact": "Contact Information", - "name": "Owner Details" - }, - "labels": { - "create_new": "Create a new owner record.", - "deleteconfirm": "Are you sure you want to delete this owner? This cannot be undone.", - "existing_owners": "Existing Owners", - "fromclaim": "Current Claim", - "fromowner": "Historical Owner Record", - "relatedjobs": "Related Jobs", - "updateowner": "Update Owner" - }, - "successes": { - "delete": "Owner deleted successfully.", - "save": "Owner saved successfully." - } - }, - "parts": { - "actions": { - "order": "Order Parts", - "orderinhouse": "Order as In House" - } - }, - "parts_dispatch": { - "actions": { - "accept": "Accept" - }, - "errors": { - "accepting": "Error accepting parts dispatch. {{error}}", - "creating": "Error dispatching parts. {{error}}" - }, - "fields": { - "number": "Number", - "percent_accepted": "% Accepted" - }, - "labels": { - "notyetdispatched": "This part has not been dispatched.", - "parts_dispatch": "Parts Dispatch" - } - }, - "parts_dispatch_lines": { - "fields": { - "accepted_at": "Accepted At" - } - }, - "parts_orders": { - "actions": { - "backordered": "Mark Backordered", - "receive": "Receive", - "receivebill": "Receive Bill" - }, - "errors": { - "associatedbills": "This parts order cannot", - "backordering": "Error backordering part {{message}}.", - "creating": "Error encountered when creating parts order. ", - "oec": "Error creating EMS files for parts order. {{error}}", - "saving": "Error saving parts order. {{error}}.", - "updating": "Error updating parts order/parts order line. {{error}}." - }, - "fields": { - "act_price": "Price", - "backordered_eta": "B.O. ETA", - "backordered_on": "B.O. On", - "cm_received": "CM Received?", - "comments": "Comments", - "cost": "Cost", - "db_price": "List Price", - "deliver_by": "Deliver By", - "job_line_id": "Job Line Id", - "line_desc": "Line Description", - "line_remarks": "Remarks", - "lineremarks": "Line Remarks", - "oem_partno": "Part #", - "order_date": "Order Date", - "order_number": "Order Number", - "orderedby": "Ordered By", - "part_type": "Type", - "quantity": "Qty.", - "return": "Return", - "status": "Status" - }, - "labels": { - "allpartsto": "All Parts Location", - "confirmdelete": "Are you sure you want to delete this item? It cannot be recovered. Job line statuses will not be updated and may require manual review. ", - "custompercent": "Custom %", - "discount": "Discount {{percent}}", - "email": "Send by Email", - "inthisorder": "Parts in this Order", - "is_quote": "Parts Quote?", - "mark_as_received": "Mark as Received?", - "newpartsorder": "New Parts Order", - "notyetordered": "This part has not yet been ordered.", - "oec": "Order via EMS", - "order_type": "Order Type", - "orderhistory": "Order History", - "parts_order": "Parts Order", - "parts_orders": "Parts Orders", - "print": "Show Printed Form", - "receive": "Receive Parts Order", - "removefrompartsqueue": "Unqueue from Parts Queue?", - "returnpartsorder": "Return Parts Order", - "sublet_order": "Sublet Order" - }, - "successes": { - "created": "Parts order created successfully. ", - "line_updated": "Parts return line updated.", - "received": "Parts order received.", - "return_created": "Parts return created successfully." - } - }, - "payments": { - "actions": { - "generatepaymentlink": "Generate Payment Link" - }, - "errors": { - "exporting": "Error exporting payment(s). {{error}}", - "exporting-partner": "Error exporting to partner. Please check the partner interaction log for more errors.", - "inserting": "Error inserting payment. {{error}}" - }, - "fields": { - "amount": "Amount", - "created_at": "Created At", - "date": "Payment Date", - "exportedat": "Exported At", - "memo": "Memo", - "payer": "Payer", - "paymentnum": "Payment Number", - "stripeid": "Stripe ID", - "transactionid": "Transaction ID", - "type": "Type" - }, - "labels": { - "balance": "Balance", - "ca_bc_etf_table": "ICBC EFT Table Converter", - "customer": "Customer", - "edit": "Edit Payment", - "electronicpayment": "Use Electronic Payment Processing?", - "external": "External", - "findermodal": "ICBC Payment Finder", - "insurance": "Insurance", - "markexported": "Mark Exported", - "markforreexport": "Mark for Re-export", - "new": "New Payment", - "signup": "Please contact support to sign up for electronic payments.", - "smspaymentreminder": "This is {{shopname}} reminding you about your balance of {{amount}}. To pay, click the following link {{payment_link}}.", - "title": "Payments", - "totalpayments": "Total Payments" - }, - "successes": { - "exported": "Payment(s) exported successfully.", - "markexported": "Payment(s) marked exported.", - "markreexported": "Payment marked for re-export successfully", - "payment": "Payment created successfully. ", - "paymentupdate": "Payment updated successfully. ", - "stripe": "Credit card transaction charged successfully." - } - }, - "phonebook": { - "actions": { - "new": "New Phonebook Entry" - }, - "errors": { - "adding": "Error adding phonebook entry. {{error}}", - "saving": "Error saving phonebook entry. {{error}}" - }, - "fields": { - "address1": "Street 1", - "address2": "Street 2", - "category": "Category", - "city": "City", - "company": "Company", - "country": "Country", - "email": "Email", - "fax": "Fax", - "firstname": "First Name", - "lastname": "Last Name", - "phone1": "Phone 1", - "phone2": "Phone 2", - "state": "Province/State" - }, - "labels": { - "noneselected": "No phone book entry selected. ", - "onenamerequired": "At least one name related field is required.", - "vendorcategory": "Vendor" - }, - "successes": { - "added": "Phonebook entry added successfully. ", - "deleted": "Phonebook entry deleted successfully. ", - "saved": "Phonebook entry saved successfully. " - } - }, - "printcenter": { - "appointments": { - "appointment_confirmation": "Appointment Confirmation" - }, - "bills": { - "inhouse_invoice": "In House Invoice" - }, - "courtesycarcontract": { - "courtesy_car_contract": "Courtesy Car Contract", - "courtesy_car_impound": "Impound Charges", - "courtesy_car_inventory": "Courtesy Car Inventory", - "courtesy_car_terms": "Courtesy Car Terms" - }, - "errors": { - "nocontexttype": "No context type set." - }, - "jobs": { - "3rdpartyfields": { - "addr1": "Address 1", - "addr2": "Address 2", - "addr3": "Address 3", - "attn": "Attention", - "city": "City", - "custgst": "Customer Portion of GST", - "ded_amt": "Deductible", - "depreciation": "Depreciation", - "other": "Other", - "ponumber": "PO Number", - "refnumber": "Reference Number", - "sendtype": "Send by", - "state": "Province/State", - "zip": "Postal Code/Zip" - }, - "3rdpartypayer": "Invoice to Third Party Payer", - "ab_proof_of_loss": "AB - Proof of Loss", - "appointment_confirmation": "Appointment Confirmation", - "appointment_reminder": "Appointment Reminder", - "casl_authorization": "CASL Authorization", - "committed_timetickets_ro": "Committed Time Tickets", - "coversheet_landscape": "Coversheet (Landscape)", - "coversheet_portrait": "Coversheet Portrait", - "csi_invitation": "CSI Invitation", - "csi_invitation_action": "CSI Invite", - "diagnostic_authorization": "Diagnostic Authorization", - "dms_posting_sheet": "DMS Posting Sheet", - "envelope_return_address": "#10 Envelope Return Address Label", - "estimate": "Estimate Only", - "estimate_detail": "Estimate Details", - "estimate_followup": "Estimate Followup", - "express_repair_checklist": "Express Repair Checklist", - "filing_coversheet_landscape": "Filing Coversheet (Landscape)", - "filing_coversheet_portrait": "Filing Coversheet (Portrait)", - "final_invoice": "Final Invoice", - "fippa_authorization": "FIPPA Authorization", - "folder_label_multiple": "Folder Label - Multi", - "glass_express_checklist": "Glass Express Checklist", - "guarantee": "Repair Guarantee", - "individual_job_note": "RO Job Note", - "invoice_customer_payable": "Invoice (Customer Payable)", - "invoice_total_payable": "Invoice (Total Payable)", - "iou_form": "IOU Form", - "job_costing_ro": "Job Costing", - "job_lifecycle_ro": "Job Lifecycle", - "job_notes": "Job Notes", - "job_tasks": "Job Tasks", - "key_tag": "Key Tag", - "labels": { - "count": "Count", - "labels": "Labels", - "position": "Starting Position" - }, - "lag_time_ro": "Lag Time", - "mechanical_authorization": "Mechanical Authorization", - "mpi_animal_checklist": "MPI - Animal Checklist", - "mpi_eglass_auth": "MPI - eGlass Auth", - "mpi_final_acct_sheet": "MPI - Final Accounting Sheet (Direct Repair)", - "mpi_final_repair_acct_sheet": "MPI - Final Accounting Sheet", - "paint_grid": "Paint Grid", - "parts_dispatch": "Parts Dispatch", - "parts_invoice_label_single": "Parts Label Single", - "parts_label_multiple": "Parts Label - Multi", - "parts_label_single": "Parts Label - Single", - "parts_list": "Parts List", - "parts_order": "Parts Order Confirmation", - "parts_order_confirmation": "", - "parts_order_history": "Parts Order History", - "parts_return_slip": "Parts Return Slip", - "payment_receipt": "Payment Receipt", - "payment_request": "Payment Request", - "payments_by_job": "Job Payments", - "purchases_by_ro_detail": "Purchases - Detail", - "purchases_by_ro_summary": "Purchases - Summary", - "qc_sheet": "Quality Control Sheet", - "rental_reservation": "Rental Reservation", - "ro_totals": "RO Totals", - "ro_with_description": "RO Summary with Descriptions", - "sgi_certificate_of_repairs": "SGI - Certificate of Repairs", - "sgi_windshield_auth": "SGI - Windshield Authorization", - "stolen_recovery_checklist": "Stolen Recovery Checklist", - "sublet_order": "Sublet Order", - "supplement_request": "Supplement Request", - "thank_you_ro": "Thank You Letter", - "thirdpartypayer": "Third Party Payer", - "timetickets_ro": "Time Tickets", - "vehicle_check_in": "Vehicle Intake", - "vehicle_delivery_check": "Vehicle Delivery Checklist", - "window_tag": "Window Tag", - "window_tag_sublet": "Window Tag - Sublet", - "work_authorization": "Work Authorization", - "worksheet_by_line_number": "Worksheet by Line Number", - "worksheet_sorted_by_operation": "Worksheet by Operation", - "worksheet_sorted_by_operation_no_hours": "Worksheet by Operation (No Hours)", - "worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type", - "worksheet_sorted_by_operation_type": "Worksheet by Operation Type", - "worksheet_sorted_by_team": "Worksheet by Team" - }, - "labels": { - "groups": { - "authorization": "Authorization", - "financial": "Financial", - "post": "Post-Production", - "pre": "Pre-Production", - "ro": "Repair Order", - "worksheet": "Worksheets" - }, - "misc": "Miscellaneous Documents", - "repairorder": "Repair Order Related", - "reportcentermodal": "Report Center", - "speedprint": "Speed Print", - "title": "Print Center" - }, - "payments": { - "ca_bc_etf_table": "ICBC EFT Table", - "exported_payroll": "Payroll Table" - }, - "special": { - "attendance_detail_csv": "Attendance Table" - }, - "subjects": { - "jobs": { - "individual_job_note": "Job Note RO: {{ro_number}}", - "parts_dispatch": "Parts Dispatch RO: {{ro_number}}", - "parts_order": "Parts Order PO: {{ro_number}} - {{name}}", - "parts_return_slip": "Parts Return PO: {{ro_number}} - {{name}}", - "sublet_order": "Sublet Order PO: {{ro_number}} - {{name}}" - } - }, - "vendors": { - "purchases_by_vendor_detailed": "Purchases by Vendor - Detailed", - "purchases_by_vendor_summary": "Purchases by Vendor - Summary" - } - }, - "production": { - "actions": { - "addcolumns": "Add Columns", - "bodypriority-clear": "Clear Body Priority", - "bodypriority-set": "Set Body Priority", - "detailpriority-clear": "Clear Detail Priority", - "detailpriority-set": "Set Detail Priority", - "paintpriority-clear": "Clear Paint Priority", - "paintpriority-set": "Set Paint Priority", - "remove": "Remove from Production", - "removecolumn": "Remove Column", - "saveconfig": "Save Configuration", - "suspend": "Suspend", - "unsuspend": "Unsuspend" - }, - "constants": { - "main_profile": "Default" - }, - "errors": { - "boardupdate": "Error encountered updating Job. {{message}}", - "name_exists": "A Profile with this name already exists. Please choose a different name.", - "name_required": "Profile name is required.", - "removing": "Error removing from production board. {{error}}", - "settings": "Error saving board settings: {{error}}" - }, - "labels": { - "actual_in": "Actual In", - "addnewprofile": "Add New Profile", - "alert": "Alert", - "alertoff": "Remove alert from Job", - "alerton": "Add alert to Job", - "alerts": "Alerts", - "ats": "Alternative Transportation", - "bodyhours": "B", - "bodypriority": "B/P", - "bodyshop": { - "labels": { - "qbo_departmentid": "QBO Department ID", - "qbo_usa": "QBO USA" - } - }, - "card_size": "Card Size", - "cardcolor": "Colored Cards", - "cardsettings": "Card Settings", - "clm_no": "Claim Number", - "comment": "Comment", - "compact": "Compact Cards", - "detailpriority": "D/P", - "employeeassignments": "Employee Assignments", - "employeesearch": "Employee Search", - "estimator": "Estimator", - "horizontal": "Horizontal", - "ins_co_nm": "Insurance Company Name", - "jobdetail": "Job Details", - "kiosk_mode": "Kiosk Mode", - "laborhrs": "Labor Hours", - "legend": "Legend:", - "model_info": "Vehicle Info", - "note": "Production Note", - "off": "Off", - "on": "On", - "orientation": "Board Orientation", - "ownr_nm": "Customer Name", - "paintpriority": "P/P", - "partsstatus": "Parts Status", - "production_note": "Production Note", - "refinishhours": "R", - "scheduled_completion": "Scheduled Completion", - "selectview": "Select a View", - "stickyheader": "Sticky Header (BETA)", - "sublets": "Sublets", - "subtotal": "Subtotal", - "tall": "Tall", - "tasks": "Tasks", - "totalhours": "Total Hrs ", - "touchtime": "T/T", - "vertical": "Vertical", - "viewname": "View Name", - "wide": "Wide" - }, - "options": { - "horizontal": "Horizontal", - "large": "Large", - "medium": "Medium", - "small": "Small", - "vertical": "Vertical" - }, - "settings": { - "board_settings": "Board Settings", - "filters": { - "md_estimators": "Estimators", - "md_ins_cos": "Insurance Companies" - }, - "filters_title": "Filters", - "information": "Information", - "layout": "Layout", - "statistics": { - "jobs_in_production": "Jobs in Production", - "tasks_in_production": "Tasks in Production", - "tasks_in_view": "Tasks in View", - "tasks_on_board": "Tasks on Board", - "total_amount_in_production": "Dollars in Production", - "total_amount_in_view": "Dollars in View", - "total_amount_on_board": "Dollars on Board", - "total_hours_in_production": "Hours in Production", - "total_hours_in_view": "Hours in View", - "total_hours_on_board": "Hours on Board", - "total_jobs_in_view": "Jobs in View", - "total_jobs_on_board": "Jobs on Board", - "total_lab_in_production": "Body Hours in Production", - "total_lab_in_view": "Body Hours in View", - "total_lab_on_board": "Body Hours on Board", - "total_lar_in_production": "Refinish Hours in Production", - "total_lar_in_view": "Refinish Hours in View", - "total_lar_on_board": "Refinish Hours on Board" - }, - "statistics_title": "Statistics" - }, - "statistics": { - "currency_symbol": "$", - "hours": "Hours", - "jobs": "Jobs", - "jobs_in_production": "Jobs in Production", - "tasks": "Tasks", - "tasks_in_production": "Tasks in Production", - "tasks_in_view": "Tasks in View", - "tasks_on_board": "Tasks on Board", - "total_amount_in_production": "Dollars in Production", - "total_amount_in_view": "Dollars in View", - "total_amount_on_board": "Dollars on Board", - "total_hours_in_production": "Hours in Production", - "total_hours_in_view": "Hours in View", - "total_hours_on_board": "Hours on Board", - "total_jobs_in_view": "Jobs in View", - "total_jobs_on_board": "Jobs on Board", - "total_lab_in_production": "Body Hours in Production", - "total_lab_in_view": "Body Hours in View", - "total_lab_on_board": "Body Hours on Board", - "total_lar_in_production": "Refinish Hours in Production", - "total_lar_in_view": "Refinish Hours in View", - "total_lar_on_board": "Refinish Hours on Board" - }, - "successes": { - "removed": "Job removed from production." - } - }, - "profile": { - "errors": { - "state": "Error reading page state. Please refresh." - }, - "labels": { - "activeshop": "Active Shop" - }, - "successes": { - "updated": "Profile updated successfully." - } - }, - "reportcenter": { - "actions": { - "generate": "Generate" - }, - "labels": { - "advanced_filters": "Advanced Filters and Sorters", - "advanced_filters_false": "False", - "advanced_filters_filter_field": "Field", - "advanced_filters_filter_operator": "Operator", - "advanced_filters_filter_value": "Value", - "advanced_filters_filters": "Filters", - "advanced_filters_hide": "Hide", - "advanced_filters_show": "Show", - "advanced_filters_sorter_direction": "Direction", - "advanced_filters_sorter_field": "Field", - "advanced_filters_sorters": "Sorters", - "advanced_filters_true": "True", - "dates": "Dates", - "employee": "Employee", - "filterson": "Filters on {{object}}: {{field}}", - "generateasemail": "Generate as Email?", - "groups": { - "customers": "Customers", - "jobs": "Jobs & Costing", - "payroll": "Payroll", - "purchases": "Purchases", - "sales": "Sales" - }, - "key": "Report", - "objects": { - "appointments": "Appointments", - "bills": "Bills", - "csi": "CSI", - "exportlogs": "Export Logs", - "jobs": "Jobs", - "parts_orders": "Parts Orders", - "payments": "Payments", - "scoreboard": "Scoreboard", - "tasks": "Tasks", - "timetickets": "Timetickets" - }, - "vendor": "Vendor" - }, - "templates": { - "adp_payroll_flat": "ADP Payroll - Flat Rate", - "adp_payroll_straight": "ADP Payroll - Straight Time", - "anticipated_revenue": "Anticipated Revenue", - "ar_aging": "AR Aging", - "attendance_detail": "Attendance (All Employees)", - "attendance_employee": "Employee Attendance", - "attendance_summary": "Attendance Summary (All Employees)", - "committed_timetickets": "Committed Time Tickets", - "committed_timetickets_employee": "Committed Employee Time Tickets", - "committed_timetickets_summary": "Committed Time Tickets Summary", - "credits_not_received_date": "Credits not Received by Date", - "credits_not_received_date_vendorid": "Credits not Received by Vendor", - "csi": "CSI Responses", - "customer_list": "Customer List", - "cycle_time_analysis": "Cycle Time Analysis", - "estimates_written_converted": "Estimates Written/Converted", - "estimator_detail": "Jobs by Estimator (Detail)", - "estimator_summary": "Jobs by Estimator (Summary)", - "export_payables": "Export Log - Payables", - "export_payments": "Export Log - Payments", - "export_receivables": "Export Log - Receivables", - "exported_gsr_by_ro": "Exported Gross Sales - Excel", - "exported_gsr_by_ro_labor": "Exported Gross Sales (Labor) - Excel", - "gsr_by_atp": "", - "gsr_by_ats": "Gross Sales by ATS", - "gsr_by_category": "Gross Sales by Category", - "gsr_by_csr": "Gross Sales by CSR", - "gsr_by_delivery_date": "Gross Sales by Delivery Date", - "gsr_by_estimator": "Gross Sales by Estimator", - "gsr_by_exported_date": "Exported Gross Sales", - "gsr_by_ins_co": "Gross Sales by Insurance Company", - "gsr_by_make": "Gross Sales by Vehicle Make", - "gsr_by_referral": "Gross Sales by Referral Source", - "gsr_by_ro": "Gross Sales by RO", - "gsr_labor_only": "Gross Sales - Labor Only", - "hours_sold_detail_closed": "Hours Sold Detail - Closed", - "hours_sold_detail_closed_csr": "Hours Sold Detail - Closed by CSR", - "hours_sold_detail_closed_estimator": "Hours Sold Detail - Closed by Estimator", - "hours_sold_detail_closed_ins_co": "Hours Sold Detail - Closed by Source", - "hours_sold_detail_closed_status": "Hours Sold Detail - Closed by Status", - "hours_sold_detail_open": "Hours Sold Detail - Open", - "hours_sold_detail_open_csr": "Hours Sold Detail - Open by CSR", - "hours_sold_detail_open_estimator": "Hours Sold Detail - Open by Estimator", - "hours_sold_detail_open_ins_co": "Hours Sold Detail - Open by Source", - "hours_sold_detail_open_status": "Hours Sold Detail - Open by Status", - "hours_sold_summary_closed": "Hours Sold Summary - Closed", - "hours_sold_summary_closed_csr": "Hours Sold Summary - Closed by CSR", - "hours_sold_summary_closed_estimator": "Hours Sold Summary - Closed by Estimator", - "hours_sold_summary_closed_ins_co": "Hours Sold Summary - Closed by Source", - "hours_sold_summary_closed_status": "Hours Sold Summary - Closed by Status", - "hours_sold_summary_open": "Hours Sold Summary - Open", - "hours_sold_summary_open_csr": "Hours Sold Summary - Open CSR", - "hours_sold_summary_open_estimator": "Hours Sold Summary - Open Estimator", - "hours_sold_summary_open_ins_co": "Hours Sold Summary - Open by Source", - "hours_sold_summary_open_status": "Hours Sold Summary - Open by Status", - "job_costing_ro_csr": "Job Costing by CSR", - "job_costing_ro_date_detail": "Job Costing by RO - Detail", - "job_costing_ro_date_summary": "Job Costing by RO - Summary", - "job_costing_ro_estimator": "Job Costing by Estimator", - "job_costing_ro_ins_co": "Job Costing by RO Source", - "job_lifecycle_date_detail": "Job Lifecycle by Date - Detail", - "job_lifecycle_date_summary": "Job Lifecycle by Date - Summary", - "jobs_completed_not_invoiced": "Jobs Completed not Invoiced", - "jobs_invoiced_not_exported": "Jobs Invoiced not Exported", - "jobs_reconcile": "Parts/Sublet/Labor Reconciliation", - "jobs_scheduled_completion": "Jobs Scheduled Completion", - "lag_time": "Lag Time", - "load_level": "Load Level", - "lost_sales": "Lost Sales", - "open_orders": "Open Orders by Date", - "open_orders_csr": "Open Orders by CSR", - "open_orders_estimator": "Open Orders by Estimator", - "open_orders_excel": "Open Orders - Excel", - "open_orders_ins_co": "Open Orders by Insurance Company", - "open_orders_referral": "Open Orders by Referral Source", - "open_orders_specific_csr": "Open Orders filtered by CSR", - "open_orders_status": "Open Orders by Status", - "parts_backorder": "IOU Parts List", - "parts_not_recieved": "Parts Not Received", - "parts_not_recieved_vendor": "Parts Not Received by Vendor", - "parts_received_not_scheduled": "Parts Received for Jobs Not Scheduled", - "payments_by_date": "Payments by Date", - "payments_by_date_payment": "Payments by Date and Payment Type", - "payments_by_date_type": "Payments by Date and Customer Type", - "production_by_category": "Production by Category", - "production_by_category_one": "Production filtered by Category", - "production_by_csr": "Production by CSR", - "production_by_last_name": "Production by Last Name", - "production_by_repair_status": "Production by Status", - "production_by_repair_status_one": "Production filtered by Status", - "production_by_ro": "Production by RO", - "production_by_target_date": "Production by Target Date", - "production_by_technician": "Production by Technician", - "production_by_technician_one": "Production filtered by Technician", - "production_not_production_status": "Production not in Production Status", - "production_over_time": "Production Level over Time", - "psr_by_make": "Percent of Sales by Vehicle Make", - "purchase_return_ratio_excel": "Purchase & Return Ratio - Excel", - "purchase_return_ratio_grouped_by_vendor_detail": "Purchase & Return Ratio by Vendor (Detail)", - "purchase_return_ratio_grouped_by_vendor_summary": "Purchase & Return Ratio by Vendor (Summary)", - "purchases_by_cost_center_detail": "Purchases by Cost Center (Detail)", - "purchases_by_cost_center_summary": "Purchases by Cost Center (Summary)", - "purchases_by_date_range_detail": "Purchases by Date - Detail", - "purchases_by_date_range_summary": "Purchases by Date - Summary", - "purchases_by_ro_detail_date": "Purchases by RO - Detail", - "purchases_by_ro_summary_date": "Purchases by RO - Summary", - "purchases_by_vendor_detailed_date_range": "Purchases By Vendor - Detailed", - "purchases_by_vendor_summary_date_range": "Purchases by Vendor - Summary", - "purchases_grouped_by_vendor_detailed": "Purchases Grouped by Vendor - Detailed", - "purchases_grouped_by_vendor_summary": "Purchases Grouped by Vendor - Summary", - "returns_grouped_by_vendor_detailed": "Returns Grouped by Vendor - Detailed", - "returns_grouped_by_vendor_summary": "Returns Grouped by Vendor - Summary", - "schedule": "Appointment Schedule", - "scheduled_parts_list": "Parts for Jobs Scheduled In", - "scoreboard_detail": "Scoreboard Detail", - "scoreboard_summary": "Scoreboard Summary", - "supplement_ratio_ins_co": "Supplement Ratio by Source", - "tasks_date": "Tasks by Date", - "tasks_date_employee": "Employee Tasks by Date", - "thank_you_date": "Thank You Letters", - "timetickets": "Time Tickets", - "timetickets_employee": "Employee Time Tickets", - "timetickets_summary": "Time Tickets Summary", - "total_loss_jobs": "Jobs Marked as Total Loss", - "unclaimed_hrs": "Unflagged Hours", - "void_ros": "Void ROs", - "work_in_progress_committed_labour": "Work in Progress - Committed Labor", - "work_in_progress_jobs": "Work in Progress - Jobs", - "work_in_progress_labour": "Work in Progress - Labor", - "work_in_progress_payables": "Work in Progress - Payables" - } - }, - "schedule": { - "labels": { - "atssummary": "ATS Summary", - "employeevacation": "Employee Vacations", - "estimators": "Filter by Writer/Customer Rep.", - "ins_co_nm_filter": "Filter by Insurance Company", - "intake": "Intake Events", - "manual": "Manual Events", - "manualevent": "Add Manual Event" - } - }, - "scoreboard": { - "actions": { - "edit": "Edit" - }, - "errors": { - "adding": "Error adding Job to Scoreboard. {{message}}", - "removing": "Error removing Job from Scoreboard. {{message}}", - "updating": "Error updating Scoreboard. {{message}}" - }, - "fields": { - "bodyhrs": "Body Hours", - "date": "Date", - "painthrs": "Paint Hours" - }, - "labels": { - "allemployeetimetickets": "All Employee Time Tickets", - "asoftodaytarget": "As of Today", - "body": "Body", - "bodyabbrev": "B", - "bodycharttitle": "Body Targets vs Actual", - "calendarperiod": "Periods based on calendar weeks/months.", - "combinedcharttitle": "Combined Targets vs Actual", - "dailyactual": "Actual (D)", - "dailytarget": "Daily", - "efficiencyoverperiod": "Efficiency over Selected Dates", - "entries": "Scoreboard Entries", - "jobs": "Jobs", - "jobscompletednotinvoiced": "Completed Not Invoiced", - "lastmonth": "Last Month", - "lastweek": "Last Week", - "monthlytarget": "Monthly", - "priorweek": "Prior Week", - "productivestatistics": "Productive Hours Statistics", - "productivetimeticketsoverdate": "Productive Hours over Selected Dates", - "refinish": "Refinish", - "refinishabbrev": "R", - "refinishcharttitle": "Refinish Targets vs Actual", - "targets": "Targets", - "thismonth": "This Month", - "thisweek": "This Week", - "timetickets": "Time Tickets", - "timeticketsemployee": "Time Tickets by Employee", - "todateactual": "Actual (MTD)", - "total": "Total", - "totalhrs": "Total Hours", - "totaloverperiod": "Total over Selected Dates", - "weeklyactual": "Actual (W)", - "weeklytarget": "Weekly", - "workingdays": "Working Days / Month" - }, - "successes": { - "added": "Job added to scoreboard.", - "removed": "Job removed from scoreboard.", - "updated": "Scoreboard updated." - } - }, - "tasks": { - "actions": { - "edit": "Edit Task", - "new": "New Task" - }, - "buttons": { - "allTasks": "All", - "complete": "Toggle Complete", - "create": "Create Task", - "delete": "Toggle Delete", - "edit": "Edit", - "myTasks": "Mine", - "refresh": "Refresh" - }, - "date_presets": { - "completion": "Completion", - "day": "Day", - "days": "Days", - "delivery": "Delivery", - "next_week": "Next Week", - "one_month": "One Month", - "three_months": "Three Months", - "three_weeks": "Three Weeks", - "today": "Today", - "tomorrow": "Tomorrow", - "two_weeks": "Two Weeks" - }, - "failures": { - "completed": "Failed to toggle Task completion.", - "created": "Failed to create Task.", - "deleted": "Failed to toggle Task deletion.", - "updated": "Failed to update Task." - }, - "fields": { - "actions": "Actions", - "assigned_to": "Assigned To", - "bill": "Bill", - "billid": "Bill", - "completed": "Completed", - "created_at": "Created At", - "created_by": "Created By", - "description": "Description", - "due_date": "Due Date", - "job": { - "ro_number": "RO #" - }, - "jobid": "Job", - "jobline": "Job Line", - "joblineid": "Job Line", - "parts_order": "Parts Order", - "partsorderid": "Parts Order", - "priorities": { - "high": "High", - "low": "Low", - "medium": "Medium" - }, - "priority": "Priority", - "related_items": "Related Items", - "remind_at": "Remind At", - "title": "Title" - }, - "placeholders": { - "assigned_to": "Select an Employee", - "billid": "Select a Bill", - "description": "Enter a description", - "jobid": "Select a Job", - "joblineid": "Select a Job Line", - "partsorderid": "Select a Parts Order" - }, - "successes": { - "completed": "Toggled Task completion successfully.", - "created": "Task created successfully.", - "deleted": "Toggled Task deletion successfully.", - "updated": "Task updated successfully." - }, - "titles": { - "all_tasks": "All Tasks", - "completed": "Completed Tasks", - "deleted": "Deleted Tasks", - "job_tasks": "Job Tasks", - "mine": "My Tasks", - "my_tasks": "My Tasks" - }, - "validation": { - "due_at_error_message": "The due date must be in the future!", - "remind_at_error_message": "The reminder date and time must be at least 30 minutes in the future!" - } - }, - "tech": { - "fields": { - "employeeid": "Employee ID", - "pin": "PIN" - }, - "labels": { - "loggedin": "Logged in as {{name}}", - "notloggedin": "Not logged in." - } - }, - "templates": { - "errors": { - "updating": "Error updating template {{error}}." - }, - "successes": { - "updated": "Template updated successfully." - } - }, - "timetickets": { - "actions": { - "claimtasks": "Flag Hours", - "clockin": "Clock In", - "clockout": "Clock Out", - "commit": "Commit Tickets ({{count}})", - "commitone": "Commit", - "enter": "Enter New Time Ticket", - "payall": "Pay All", - "printemployee": "Print Time Tickets", - "uncommit": "Uncommit" - }, - "errors": { - "clockingin": "Error while clocking in. {{message}}", - "clockingout": "Error while clocking out. {{message}}", - "creating": "Error creating time ticket. {{message}}", - "deleting": "Error deleting time ticket. {{message}}", - "noemployeeforuser": "Unable to use Shift Clock", - "noemployeeforuser_sub": "An employee record has not been created for this user. Please create one before using the shift clock. ", - "payall": "Error flagging hours. {{error}}", - "shiftalreadyclockedon": "You are already clocked onto a shift. Unable to create shift entry." - }, - "fields": { - "actualhrs": "Actual Hours", - "ciecacode": "CIECA Code", - "clockhours": "Clock Hours", - "clockoff": "Clock Off", - "clockon": "Clocked In", - "committed": "Committed", - "committed_at": "Committed At", - "cost_center": "Cost Center", - "created_by": "Created By", - "date": "Ticket Date", - "efficiency": "Efficiency", - "employee": "Employee", - "employee_team": "Employee Team", - "flat_rate": "Flat Rate?", - "memo": "Memo", - "productivehrs": "Productive Hours", - "ro_number": "Job to Post Against", - "task_name": "Task" - }, - "labels": { - "alreadyclockedon": "You are already clocked in to the following Job(s):", - "ambreak": "AM Break", - "amshift": "AM Shift", - "claimtaskpreview": "Flagged Hours Preview", - "clockhours": "Shift Clock Hours Summary", - "clockintojob": "Clock In to Job", - "deleteconfirm": "Are you sure you want to delete this time ticket? This cannot be undone.", - "edit": "Edit Time Ticket", - "efficiency": "Efficiency", - "flat_rate": "Flat Rate", - "jobhours": "Job Related Time Tickets Summary", - "lunch": "Lunch", - "new": "New Time Ticket", - "payrollclaimedtasks": "These time tickets will be automatically entered to the system as a part of claiming this task. These numbers are calculated using the jobs assigned lines. If lines are unassigned, they will be excluded from created tickets.", - "pmbreak": "PM Break", - "pmshift": "PM Shift", - "shift": "Shift", - "shiftalreadyclockedon": "Active Shift Time Tickets", - "straight_time": "Straight Time", - "task": "Task", - "timetickets": "Time Tickets", - "unassigned": "Unassigned", - "zeroactualnegativeprod": "Actual hours must be 0 if entering negative productive hours." - }, - "successes": { - "clockedin": "Clocked in successfully.", - "clockedout": "Clocked out successfully.", - "committed": "Time Tickets Committed Successfully", - "created": "Time ticket entered successfully.", - "deleted": "Time ticket deleted successfully.", - "payall": "All hours paid out successfully." - }, - "validation": { - "clockoffmustbeafterclockon": "Clock off time must be the same or after clock in time.", - "clockoffwithoutclockon": "Clock off time cannot be set without a clock in time.", - "hoursenteredmorethanavailable": "The number of hours entered is more than what is available for this cost center.", - "unassignedlines": "There are currently {{unassignedHours}} hours of repair lines that are unassigned. These hours are not including in the above calculations and must be paid manually." - } - }, - "titles": { - "accounting-payables": "Payables | {{app}}", - "accounting-payments": "Payments | {{app}}", - "accounting-receivables": "Receivables | {{app}}", - "all_tasks": "All Tasks", - "app": "", - "bc": { - "accounting-payables": "Payables", - "accounting-payments": "Payments", - "accounting-receivables": "Receivables", - "all_tasks": "All Tasks", - "availablejobs": "Available Jobs", - "bills-list": "Bills", - "contracts": "Contracts", - "contracts-create": "New Contract", - "contracts-detail": "Contract #{{number}}", - "courtesycars": "Courtesy Cars", - "courtesycars-detail": "Courtesy Car {{number}}", - "courtesycars-new": "New Courtesy Car", - "dashboard": "Dashboard", - "dms": "DMS Export", - "export-logs": "Export Logs", - "inventory": "Inventory", - "jobs": "Jobs", - "jobs-active": "Active Jobs", - "jobs-admin": "Admin", - "jobs-all": "All Jobs", - "jobs-checklist": "Checklist", - "jobs-close": "Close Job", - "jobs-deliver": "Deliver Job", - "jobs-detail": "Job {{number}}", - "jobs-intake": "Intake", - "jobs-new": "Create a New Job", - "jobs-ready": "Ready Jobs", - "my_tasks": "My Tasks", - "owner-detail": "{{name}}", - "owners": "Owners", - "parts-queue": "Parts Queue", - "payments-all": "All Payments", - "phonebook": "Phonebook", - "productionboard": "Production Board - Visual", - "productionlist": "Production Board - List", - "profile": "My Profile", - "schedule": "Schedule", - "scoreboard": "Scoreboard", - "shop": "Manage my Shop ({{shopname}})", - "shop-csi": "CSI Responses", - "shop-templates": "Shop Templates", - "shop-vendors": "Vendors", - "tasks": "Tasks", - "temporarydocs": "Temporary Documents", - "timetickets": "Time Tickets", - "ttapprovals": "Time Ticket Approvals", - "vehicle-details": "Vehicle: {{vehicle}}", - "vehicles": "Vehicles" - }, - "bills-list": "Bills | {{app}}", - "contracts": "Courtesy Car Contracts | {{app}}", - "contracts-create": "New Contract | {{app}}", - "contracts-detail": "Contract {{id}} | {{app}}", - "courtesycars": "Courtesy Cars | {{app}}", - "courtesycars-create": "New Courtesy Car | {{app}}", - "courtesycars-detail": "Courtesy Car {{id}} | {{app}}", - "dashboard": "Dashboard | {{app}}", - "dms": "DMS Export | {{app}}", - "export-logs": "Export Logs | {{app}}", - "imexonline": "ImEX Online", - "inventory": "Inventory | {{app}}", - "jobs": "Active Jobs | {{app}}", - "jobs-admin": "Job {{ro_number}} - Admin | {{app}}", - "jobs-all": "All Jobs | {{app}}", - "jobs-checklist": "Job Checklist | {{app}}", - "jobs-close": "Close Job {{number}} | {{app}}", - "jobs-create": "Create a New Job | {{app}}", - "jobs-deliver": "Deliver Job | {{app}}", - "jobs-intake": "Intake | {{app}}", - "jobsavailable": "Available Jobs | {{app}}", - "jobsdetail": "Job {{ro_number}} | {{app}}", - "jobsdocuments": "Job Documents {{ro_number}} | {{app}}", - "manageroot": "Home | {{app}}", - "my_tasks": "My Tasks", - "owners": "All Owners | {{app}}", - "owners-detail": "{{name}} | {{app}}", - "parts-queue": "Parts Queue | {{app}}", - "payments-all": "Payments | {{app}}", - "phonebook": "Phonebook | {{app}}", - "productionboard": "Production Board - Visual | {{app}}", - "productionlist": "Production Board - List | {{app}}", - "profile": "My Profile | {{app}}", - "promanager": "ProManager", - "readyjobs": "Ready Jobs | {{app}}", - "resetpassword": "Reset Password", - "resetpasswordvalidate": "Enter New Password", - "romeonline": "Rome Online", - "schedule": "Schedule | {{app}}", - "scoreboard": "Scoreboard | {{app}}", - "shop": "My Shop | {{app}}", - "shop-csi": "CSI Responses | {{app}}", - "shop-templates": "Shop Templates | {{app}}", - "shop_vendors": "Vendors | {{app}}", - "tasks": "Tasks", - "techconsole": "Technician Console | {{app}}", - "techjobclock": "Technician Job Clock | {{app}}", - "techjoblookup": "Technician Job Lookup | {{app}}", - "techshiftclock": "Technician Shift Clock | {{app}}", - "temporarydocs": "Temporary Documents | {{app}}", - "timetickets": "Time Tickets | {{app}}", - "ttapprovals": "Time Ticket Approvals | {{app}}", - "vehicledetail": "Vehicle Details {{vehicle}} | {{app}}", - "vehicles": "All Vehicles | {{app}}" - }, - "trello": { - "labels": { - "add_card": "Add Card", - "add_lane": "Add Lane", - "cancel": "Cancel", - "delete_lane": "Delete Lane", - "description": "Description", - "label": "Label", - "lane_actions": "Lane Actions", - "title": "Title" - } - }, - "tt_approvals": { - "actions": { - "approveselected": "Approve Selected" - }, - "labels": { - "approval_queue_in_use": "Time tickets will be added to the approval queue.", - "calculate": "Calculate" - } - }, - "user": { - "actions": { - "changepassword": "Change Password", - "signout": "Sign Out", - "updateprofile": "Update Profile" - }, - "errors": { - "updating": "Error updating user or association {{message}}" - }, - "fields": { - "authlevel": "Authorization Level", - "displayname": "Display Name", - "email": "Email", - "photourl": "Avatar URL" - }, - "labels": { - "actions": "Actions", - "changepassword": "Change Password", - "profileinfo": "Profile Info" - }, - "successess": { - "passwordchanged": "Password changed successfully. " - } - }, - "users": { - "errors": { - "signinerror": { - "auth/user-disabled": "User account disabled. ", - "auth/user-not-found": "A user with this email does not exist.", - "auth/wrong-password": "The email and password combination you provided is incorrect." - } - } - }, - "vehicles": { - "errors": { - "deleting": "Error deleting vehicle. {{error}}.", - "noaccess": "The vehicle does not exist or you do not have access to it.", - "selectexistingornew": "Select an existing vehicle record or create a new one. ", - "validation": "Please ensure all fields are entered correctly.", - "validationtitle": "Validation Error" - }, - "fields": { - "description": "Vehicle Description", - "notes": "Vehicle Notes", - "plate_no": "License Plate", - "plate_st": "Plate Jurisdiction", - "trim_color": "Trim Color", - "v_bstyle": "Body Style", - "v_color": "Color", - "v_cond": "Condition", - "v_engine": "Engine", - "v_make_desc": "Make", - "v_makecode": "Make Code", - "v_mldgcode": "Molding Code", - "v_model_desc": "Model", - "v_model_yr": "Year", - "v_options": "Options", - "v_paint_codes": "Paint Codes {{number}}", - "v_prod_dt": "Production Date", - "v_stage": "Stage", - "v_tone": "Tone", - "v_trimcode": "Trim Code", - "v_type": "Type", - "v_vin": "V.I.N." - }, - "forms": { - "detail": "Vehicle Details", - "misc": "Miscellaneous", - "registration": "Registration" - }, - "labels": { - "deleteconfirm": "Are you sure you want to delete this vehicle? This cannot be undone.", - "fromvehicle": "Historical Vehicle Record", - "novehinfo": "No Vehicle Information", - "relatedjobs": "Related Jobs", - "updatevehicle": "Update Vehicle Information" - }, - "successes": { - "delete": "Vehicle deleted successfully.", - "save": "Vehicle saved successfully." - } - }, - "vendors": { - "actions": { - "addtophonebook": "Add to Phonebook", - "new": "New Vendor", - "newpreferredmake": "New Preferred Make" - }, - "errors": { - "deleting": "Error encountered while deleting vendor. ", - "saving": "Error encountered while saving vendor. " - }, - "fields": { - "active": "Active", - "am": "Aftermarket", - "city": "City", - "cost_center": "Cost Center", - "country": "Country", - "discount": "Discount % (as decimal)", - "display_name": "Display Name", - "dmsid": "DMS ID", - "due_date": "Payment Due Date (# of days)", - "email": "Contact Email", - "favorite": "Favorite?", - "lkq": "LKQ", - "make": "Make", - "name": "Vendor Name", - "oem": "OEM", - "phone": "Phone", - "prompt_discount": "Prompt Discount %", - "state": "Province/State", - "street1": "Street", - "street2": "Address 2", - "taxid": "Tax ID", - "terms": "Payment Terms", - "zip": "Zip/Postal Code" - }, - "labels": { - "noneselected": "No vendor is selected.", - "preferredmakes": "Preferred Makes for Vendor", - "search": "Type a Vendor's Name" - }, - "successes": { - "deleted": "Vendor deleted successfully. ", - "saved": "Vendor saved successfully." - }, - "validation": { - "unique_vendor_name": "You must enter a unique vendor name." - } - } - } + "op_code_desc": "Op Code Description", + "part_qty": "Qty.", + "part_type": "Part Type", + "part_types": { + "CCC": "CC Cleaning", + "CCD": "CC Damage Waiver", + "CCDR": "CC Daily Rate", + "CCF": "CC Refuel", + "CCM": "CC Mileage", + "PAA": "Aftermarket", + "PAC": "Rechromed", + "PAE": "Existing", + "PAG": "Glass", + "PAL": "LKQ", + "PAM": "Remanufactured", + "PAN": "New/OEM", + "PAO": "Other", + "PAP": "OEM Partial", + "PAR": "Recored", + "PAS": "Sublet", + "PASL": "Sublet (L)" + }, + "profitcenter_labor": "Profit Center: Labor", + "profitcenter_part": "Profit Center: Part", + "prt_dsmk_m": "Line Discount/Markup $", + "prt_dsmk_p": "Line Discount/Markup %", + "status": "Status", + "tax_part": "Tax Part", + "total": "Total", + "unq_seq": "Seq #" + }, + "labels": { + "adjustmenttobeadded": "Adjustment to be added: {{adjustment}}", + "billref": "Latest Bill", + "convertedtolabor": "This line has been converted to labor. Ensure you adjust the profit center for the amount accordingly.", + "edit": "Edit Line", + "ioucreated": "IOU", + "new": "New Line", + "nostatus": "No Status", + "presets": "Jobline Presets" + }, + "successes": { + "created": "Job line created successfully.", + "saved": "Job line saved.", + "updated": "Job line updated successfully." + }, + "validations": { + "ahdetailonlyonuserdefinedtypes": "Detail line indicator can only be set for LA1, LA2, LA3, LA4, and LAU labor types.", + "hrsrequirediflbrtyp": "Labor hours are required if a labor type is selected. Clear the labor type if there are no labor hours.", + "requiredifparttype": "Required if a part type has been specified.", + "zeropriceexistingpart": "This line cannot have any price since it uses an existing part." + } + }, + "jobs": { + "actions": { + "addDocuments": "Add Job Documents", + "addNote": "Add Note", + "addtopartsqueue": "Add to Parts Queue", + "addtoproduction": "Add In Production Flag", + "addtoscoreboard": "Add to Scoreboard", + "allocate": "Allocate", + "autoallocate": "Auto Allocate", + "changefilehandler": "Change Adjuster", + "changelaborrate": "Change Labor Rate", + "changestatus": "Change Status", + "changestimator": "Change Estimator", + "convert": "Convert", + "createiou": "Create IOU", + "deliver": "Deliver", + "deliver_quick": "Quick Deliver", + "dms": { + "addpayer": "Add Payer", + "createnewcustomer": "Create New Customer", + "findmakemodelcode": "Find Make/Model Code", + "getmakes": "Get Makes", + "labels": { + "refreshallocations": "Refresh this component to see the DMS allocations." + }, + "post": "Post", + "refetchmakesmodels": "Refetch Make and Model Codes", + "usegeneric": "Use Generic Customer", + "useselected": "Use Selected Customer" + }, + "dmsautoallocate": "DMS Auto Allocate", + "export": "Export", + "exportcustdata": "Export Customer Data", + "exportselected": "Export Selected", + "filterpartsonly": "Filter Parts Only", + "generatecsi": "Generate CSI & Copy Link", + "gotojob": "Go to Job", + "intake": "Intake", + "intake_quick": "Quick Intake", + "manualnew": "Create New Job Manually", + "mark": "Mark", + "markasexported": "Mark as Exported", + "markpstexempt": "Mark Job PST Exempt", + "markpstexemptconfirm": "Are you sure you want to do this? To undo this, you must manually update all PST rates.", + "postbills": "Post Bills", + "printCenter": "Print Center", + "recalculate": "Recalculate", + "reconcile": "Reconcile", + "removefromproduction": "Remove In Production Flag", + "schedule": "Schedule", + "sendcsi": "Send CSI", + "sendpartspricechange": "Send Parts Price Change", + "sendtodms": "Send to DMS", + "sync": "Sync", + "taxprofileoverride": "Override Tax Profile with Shop Configuration", + "taxprofileoverride_confirm": "Are you sure you want to override the tax profile information? This cannot be undone without re-importing the job. ", + "uninvoice": "Uninvoice", + "unvoid": "Unvoid Job", + "viewchecklist": "View Checklists", + "viewdetail": "View Details" + }, + "errors": { + "addingtoproduction": "Error adding to production. {{error}}", + "cannotintake": "Intake cannot be completed for this Job. It has either already been completed or the job is already here.", + "closing": "Error closing Job. {{error}}", + "creating": "Error encountered while creating job. {{error}}", + "deleted": "Error deleting Job. {{error}}", + "exporting": "Error exporting Job. {{error}}", + "exporting-partner": "Unable to connect to partner application. Please ensure it is running and logged in.", + "invoicing": "Error invoicing Job. {{error}}", + "noaccess": "This Job does not exist or you do not have access to it.", + "nodamage": "No damage points on estimate.", + "nodates": "No dates specified for this Job.", + "nofinancial": "No financial data has been calculated yet for this job. Please save it again.", + "nojobselected": "No Job is selected.", + "noowner": "No owner associated.", + "novehicle": "No vehicle associated.", + "partspricechange": "Error sending parts price change. {{error}}.", + "saving": "Error encountered while saving record.", + "scanimport": "Error importing Job. {{message}}", + "totalscalc": "Error while calculating new Job totals.", + "updating": "Error while updating Job(s). {{error}}", + "validation": "Please ensure all fields are entered correctly.", + "validationtitle": "Validation Error", + "voiding": "Error voiding Job. {{error}}" + }, + "fields": { + "active_tasks": "Active Tasks", + "actual_completion": "Actual Completion", + "actual_delivery": "Actual Delivery", + "actual_in": "Actual In", + "adjustment_bottom_line": "Adjustments", + "adjustmenthours": "Adjustment Hours", + "alt_transport": "Alt. Trans.", + "area_of_damage_impact": { + "10": "Left Front Side", + "11": "Left Front Corner", + "12": "Front", + "13": "Rollover", + "14": "Unknown", + "15": "Total Loss", + "16": "Non-collision", + "25": "Hood", + "26": "Deck-lid", + "27": "Roof", + "28": "Undercarriage", + "34": "All Over", + "01": "Right Front Corner", + "02": "Right Front Side", + "03": "Right Side", + "04": "Right Rear Side", + "05": "Right Rear Corner", + "06": "Rear", + "07": "Left Rear Corner", + "08": "Left Rear Side", + "09": "Left Side" + }, + "auto_add_ats": "Automatically Add/Update ATS", + "ca_bc_pvrt": "PVRT", + "ca_customer_gst": "Customer Portion of GST", + "ca_gst_registrant": "GST Registrant", + "category": "Category", + "ccc": "CC Cleaning", + "ccd": "CC Damage Waiver", + "ccdr": "CC Daily Rate", + "ccf": "CC Refuel", + "ccm": "CC Mileage", + "cieca_id": "CIECA ID", + "cieca_pfl": { + "lbr_adjp": "Labor Adjustment", + "lbr_tax_in": "Tax Labor Indicator", + "lbr_taxp": "Labor Tax Rate", + "lbr_tx_in1": "Tax 1 Indicator", + "lbr_tx_in2": "Tax 2 Indicator", + "lbr_tx_in3": "Tax 3 Indicator", + "lbr_tx_in4": "Tax 4 Indicator", + "lbr_tx_in5": "Tax 5 Indicator" + }, + "cieca_pfo": { + "stor_t_in1": "Storage Tax 1 Indicator", + "stor_t_in2": "Storage Tax 2 Indicator", + "stor_t_in3": "Storage Tax 3 Indicator", + "stor_t_in4": "Storage Tax 4 Indicator", + "stor_t_in5": "Storage Tax 5 Indicator", + "tow_t_in1": "Tow Tax 1 Indicator", + "tow_t_in2": "Tow Tax 2 Indicator", + "tow_t_in3": "Tow Tax 3 Indicator", + "tow_t_in4": "Tow Tax 4 Indicator", + "tow_t_in5": "Tow Tax 5 Indicator" + }, + "claim_total": "Claim Total", + "class": "Class", + "clm_no": "Claim #", + "clm_total": "Claim Total", + "comment": "Comment", + "customerowing": "Customer Owing", + "date_estimated": "Date Estimated", + "date_exported": "Exported", + "date_invoiced": "Invoiced", + "date_last_contacted": "Last Contacted Date", + "date_lost_sale": "Lost Sale", + "date_next_contact": "Next Contact Date", + "date_open": "Open", + "date_rentalresp": "Shop Rental Responsibility Start", + "date_repairstarted": "Repairs Started", + "date_scheduled": "Scheduled", + "date_towin": "Towed In", + "date_void": "Void", + "ded_amt": "Deductible", + "ded_note": "Deductible Note", + "ded_status": "Deductible Status", + "depreciation_taxes": "Betterment/Depreciation/Taxes", + "dms": { + "address": "Customer Address", + "amount": "Amount", + "center": "Center", + "control_type": { + "account_number": "Account Number" + }, + "cost": "Cost", + "cost_dms_acctnumber": "Cost DMS Acct #", + "dms_make": "DMS Make", + "dms_model": "DMS Model", + "dms_model_override": "Override DMS Make/Model", + "dms_unsold": "New, Unsold Vehicle", + "dms_wip_acctnumber": "Cost WIP DMS Acct #", + "id": "DMS ID", + "inservicedate": "In Service Date", + "journal": "Journal #", + "lines": "Posting Lines", + "name1": "Customer Name", + "payer": { + "amount": "Amount", + "control_type": "Control Type", + "controlnumber": "Control Number", + "dms_acctnumber": "DMS Account #", + "name": "Payer Name" + }, + "sale": "Sale", + "sale_dms_acctnumber": "Sale DMS Acct #", + "story": "Story", + "vinowner": "VIN Owner" + }, + "dms_allocation": "DMS Allocation", + "driveable": "Driveable", + "employee_body": "Body", + "employee_csr": "Customer Service Rep.", + "employee_csr_writer": "Writer", + "employee_prep": "Prep", + "employee_refinish": "Refinish", + "est_addr1": "Estimator Address", + "est_co_nm": "Estimator Company", + "est_ct_fn": "Estimator First Name", + "est_ct_ln": "Estimator Last Name", + "est_ea": "Estimator Email", + "est_ph1": "Estimator Phone #", + "federal_tax_payable": "Federal Tax Payable", + "federal_tax_rate": "Federal Tax Rate", + "ins_addr1": "Insurance Co. Address", + "ins_city": "Insurance Co. City", + "ins_co_id": "Insurance Co. ID", + "ins_co_nm": "Insurance Company Name", + "ins_co_nm_short": "Ins. Co.", + "ins_ct_fn": "Adjuster First Name", + "ins_ct_ln": "Adjuster Last Name", + "ins_ea": "Adjuster Email", + "ins_ph1": "Adjuster Phone #", + "intake": { + "label": "Label", + "max": "Maximum", + "min": "Minimum", + "name": "Name", + "required": "Required?", + "type": "Type" + }, + "invoice_final_note": "Note to Display on Final Invoice", + "kmin": "Mileage In", + "kmout": "Mileage Out", + "la1": "LA1", + "la2": "LA2", + "la3": "LA3", + "la4": "LA4", + "laa": "Aluminum ", + "lab": "Body", + "labor_rate_desc": "Labor Rate Name", + "lad": "Diagnostic", + "lae": "Electrical", + "laf": "Frame", + "lag": "Glass", + "lam": "Mechanical", + "lar": "Refinish", + "las": "Structural", + "lau": "User Defined", + "local_tax_rate": "Local Tax Rate", + "loss_date": "Loss Date", + "loss_desc": "Loss Description", + "loss_of_use": "Loss of Use", + "lost_sale_reason": "Lost Sale Reason", + "ma2s": "2 Stage Paint", + "ma3s": "3 Stage Pain", + "mabl": "MABL?", + "macs": "MACS?", + "mahw": "Hazardous Waste", + "mapa": "Paint Materials", + "mash": "Shop Materials", + "matd": "Tire Disposal", + "materials": { + "MAPA": "Paint Materials", + "MASH": "Shop Materials", + "cal_maxdlr": "Threshhold", + "cal_opcode": "OP Codes", + "mat_adjp": "Material Adjustment", + "mat_taxp": "Material Tax Rate", + "mat_tx_in1": "Tax 1 Indicator", + "mat_tx_in2": "Tax 2 Indicator", + "mat_tx_in3": "Tax 3 Indicator", + "mat_tx_in4": "Tax 4 Indicator", + "mat_tx_in5": "Tax 5 Indicator", + "materials": "Profile - Materials", + "tax_ind": "Tax Indicator" + }, + "other_amount_payable": "Other Amount Payable", + "owner": "Owner", + "owner_owing": "Cust. Owes", + "ownr_ea": "Email", + "ownr_ph1": "Phone 1", + "ownr_ph2": "Phone 2", + "paa": "Aftermarket", + "pac": "Rechromed", + "pae": "Existing", + "pag": "Glass", + "pal": "LKQ", + "pam": "Remanufactured", + "pan": "OEM/New", + "pao": "Other", + "pap": "OEM Partial", + "par": "Re-cored", + "parts_tax_rates": { + "prt_discp": "Discount %", + "prt_mktyp": "Markup Type", + "prt_mkupp": "Markup %", + "prt_tax_in": "Tax Indicator", + "prt_tax_rt": "Part Tax Rate", + "prt_tx_in1": "Tax 1 Indicator", + "prt_tx_in2": "Tax 2 Indicator", + "prt_tx_in3": "Tax 3 Indicator", + "prt_tx_in4": "Tax 4 Indicator", + "prt_tx_in5": "Tax 5 Indicator", + "prt_tx_ty1": "Parts Tax Type 1", + "prt_type": "Part Type" + }, + "partsstatus": "Parts Status", + "pas": "Sublet", + "pay_date": "Pay Date", + "phoneshort": "PH", + "po_number": "PO Number", + "policy_no": "Policy #", + "ponumber": "PO Number", + "production_vars": { + "note": "Production Note" + }, + "qb_multiple_payers": { + "amount": "Amount", + "name": "Name" + }, + "queued_for_parts": "Queued for Parts", + "rate_ats": "ATS Rate", + "rate_la1": "LA1", + "rate_la2": "LA2", + "rate_la3": "LA3", + "rate_la4": "LA4", + "rate_laa": "Aluminum", + "rate_lab": "Body", + "rate_lad": "Diagnostic", + "rate_lae": "Electrical", + "rate_laf": "Frame", + "rate_lag": "Glass", + "rate_lam": "Mechanical", + "rate_lar": "Refinish", + "rate_las": "Structural", + "rate_lau": "User Defined", + "rate_ma2s": "2 Stage Paint", + "rate_ma3s": "3 Stage Paint", + "rate_mabl": "MABL??", + "rate_macs": "MACS??", + "rate_mahw": "Hazardous Waste", + "rate_mapa": "Paint Materials", + "rate_mash": "Shop Material", + "rate_matd": "Tire Disposal", + "referral_source_extra": "Other Referral Source", + "referral_source_other": "", + "referralsource": "Referral Source", + "regie_number": "Registration #", + "repairtotal": "Repair Total", + "ro_number": "RO #", + "scheduled_completion": "Scheduled Completion", + "scheduled_delivery": "Scheduled Delivery", + "scheduled_in": "Scheduled In", + "selling_dealer": "Selling Dealer", + "selling_dealer_contact": "Selling Dealer Contact", + "servicecar": "Service Car", + "servicing_dealer": "Servicing Dealer", + "servicing_dealer_contact": "Servicing Dealer Contact", + "special_coverage_policy": "Special Coverage Policy", + "specialcoveragepolicy": "Special Coverage Policy", + "state_tax_rate": "State Tax Rate", + "status": "Job Status", + "storage_payable": "Storage", + "tax_lbr_rt": "Labor Tax Rate", + "tax_levies_rt": "Levies Tax Rate", + "tax_paint_mat_rt": "Paint Material Tax Rate", + "tax_registration_number": "Tax Registration Number", + "tax_shop_mat_rt": "Shop Material Tax Rate", + "tax_str_rt": "Storage Tax Rate", + "tax_sub_rt": "Sublet Tax Rate", + "tax_tow_rt": "Towing Tax Rate", + "tlos_ind": "Total Loss Indicator", + "towin": "Tow In", + "towing_payable": "Towing Payable", + "unitnumber": "Unit #", + "updated_at": "Updated At", + "uploaded_by": "Uploaded By", + "vehicle": "Vehicle" + }, + "forms": { + "admindates": "Administrative Dates", + "appraiserinfo": "Estimator Info", + "claiminfo": "Claim Information", + "estdates": "Estimate Dates", + "laborrates": "Labor Rates", + "lossinfo": "Loss Information", + "other": "Other", + "repairdates": "Repair Dates", + "scheddates": "Schedule Dates" + }, + "labels": { + "accountsreceivable": "Accounts Receivable", + "act_price_ppc": "New Part Price", + "actual_completion_inferred": "$t(jobs.fields.actual_completion) inferred using $t(jobs.fields.scheduled_completion).", + "actual_delivery_inferred": "$t(jobs.fields.actual_delivery) inferred using $t(jobs.fields.scheduled_delivery).", + "actual_in_inferred": "$t(jobs.fields.actual_in) inferred using $t(jobs.fields.scheduled_in).", + "additionalpayeroverallocation": "You have allocated more than the sale of the Job to additional payers.", + "additionaltotal": "Additional Total", + "adjustmentrate": "Adjustment Rate", + "adjustments": "Adjustments", + "adminwarning": "Use the functionality on this page at your own risk. You are responsible for any and all changes to your data.", + "allocations": "Allocations", + "alreadyaddedtoscoreboard": "Job has already been added to scoreboard. Saving will update the previous entry.", + "alreadyclosed": "This Job has already been closed.", + "appointmentconfirmation": "Send confirmation to customer?", + "associationwarning": "Any changes to associations will require updating the data from the new parent record to the Job.", + "audit": "Audit Trail", + "available": "Available", + "availablejobs": "Available Jobs", + "ca_bc_pvrt": { + "days": "Days", + "rate": "PVRT Rate" + }, + "ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ", + "calc_repair_days": "Calculated Repair Days", + "calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).", + "calc_scheuled_completion": "Calculate Scheduled Completion", + "cards": { + "customer": "Customer Information", + "damage": "Area of Damage", + "dates": "Dates", + "documents": "Recent Documents", + "estimator": "Estimator", + "filehandler": "Adjuster", + "insurance": "Insurance Details", + "more": "More", + "notes": "Notes", + "parts": "Parts", + "totals": "Totals", + "vehicle": "Vehicle" + }, + "changeclass": "Changing the Job's class can have fundamental impacts to already exported accounting items. Are you sure you want to do this?", + "checklistcompletedby": "Checklist completed by {{by}} at {{at}}", + "checklistdocuments": "Checklist Documents", + "checklists": "Checklists", + "cieca_pfl": "Profile - Labor", + "cieca_pfo": "Profile - Other", + "cieca_pft": "Profile - Taxes", + "closeconfirm": "Are you sure you want to close this job? This cannot be easily undone.", + "closejob": "Close Job {{ro_number}}", + "closingperiod": "This Invoice Date is outside of the Closing Period.", + "contracts": "CC Contracts", + "convertedtolabor": "Labor Line Adjustments", + "cost": "Cost", + "cost_Additional": "Cost - Additional", + "cost_labor": "Cost - Labor", + "cost_parts": "Cost - Parts", + "cost_sublet": "Cost - Sublet", + "costs": "Costs", + "create": { + "jobinfo": "Job Info", + "newowner": "Create a new Owner instead. ", + "newvehicle": "Create a new Vehicle Instead", + "novehicle": "No vehicle (only for ROs to track parts/labor only work).", + "ownerinfo": "Owner Info", + "vehicleinfo": "Vehicle Info" + }, + "createiouwarning": "Are you sure you want to create an IOU for these lines? A new RO will be created based on those lines for this customer.", + "creating_new_job": "Creating new Job...", + "deductible": { + "stands": "Stands", + "waived": "Waived" + }, + "deleteconfirm": "Are you sure you want to delete this Job? This cannot be undone. ", + "deletedelivery": "Delete Delivery Checklist", + "deleteintake": "Delete Intake Checklist", + "deliverchecklist": "Deliver Checklist", + "difference": "Difference", + "diskscan": "Scan Disk for Estimates", + "dms": { + "apexported": "AP export completed. See logs for details.", + "damageto": "Damage to $t(jobs.fields.area_of_damage_impact.{{area_of_damage}}).", + "defaultstory": "B/S RO: {{ro_number}}. Owner: {{ownr_nm}}. Insurance Co: {{ins_co_nm}}. Claim/PO #: {{clm_po}}", + "disablebillwip": "Cost and WIP for bills has been ignored per shop configuration.", + "invoicedatefuture": "Invoice date must be today or in the future for CDK posting.", + "kmoutnotgreaterthankmin": "Mileage out must be greater than mileage in.", + "logs": "Logs", + "notallocated": "Not Allocated", + "postingform": "Posting Form", + "totalallocated": "Total Amount Allocated" + }, + "documents": "Documents", + "documents-images": "Images", + "documents-other": "Other Documents", + "duplicateconfirm": "Are you sure you want to duplicate this Job? Some elements of this Job will not be duplicated.", + "emailaudit": "Email Audit Trail", + "employeeassignments": "Employee Assignments", + "estimatelines": "Estimate Lines", + "estimator": "Estimator", + "existing_jobs": "Existing Jobs", + "federal_tax_amt": "Federal Taxes", + "gpdollars": "$ G.P.", + "gppercent": "% G.P.", + "hrs_claimed": "Hours Flagged", + "hrs_total": "Hours Total", + "importnote": "The Job was initially imported.", + "inproduction": "In Production", + "intakechecklist": "Intake Checklist", + "iou": "IOU", + "job": "Job Details", + "jobcosting": "Job Costing", + "jobtotals": "Job Totals", + "labor_hrs": "B/P/T Hrs", + "labor_rates_subtotal": "Labor Rates Subtotal", + "laborallocations": "Labor Allocations", + "labortotals": "Labor Totals", + "lines": "Estimate Lines", + "local_tax_amt": "Local Taxes", + "mapa": "Paint Materials", + "markforreexport": "Mark for Re-export", + "mash": "Shop Materials", + "masterbypass": "Master Bypass Password", + "materials": { + "mapa": "" + }, + "missingprofileinfo": "This job has missing tax profile info. To ensure correct totals calculations, re-import the job.", + "multipayers": "Additional Payers", + "net_repairs": "Net Repairs", + "notes": "Notes", + "othertotal": "Other Totals", + "outstanding_ar": "A balance is outstanding on this RO. Payments can still be entered when the job is closed. ", + "outstanding_credit_memos": "Outstanding credit memos have not been entered against this job. Credit Memos may still be posted once the job is closed.", + "outstanding_ppd": "There are outstanding PPDs that may not have been synced back to the estimate.", + "outstanding_reconciliation_discrep": "At least one discrepancy is not $0. This may indicate that this job is not properly reconciled and should not be closed.", + "outstanding_sublets": "There are sublet lines on the job which have not been marked as completed. ", + "outstandinghours": "There are outstanding hours on the job that have not been paid or have been overpaid.", + "override_header": "Override estimate header on import?", + "ownerassociation": "Owner Association", + "parts": "Parts", + "parts_lines": "Parts Lines", + "parts_received": "Parts Rec.", + "parts_tax_rates": "Parts Tax rates", + "partsfilter": "Parts Only", + "partssubletstotal": "Parts & Sublets Total", + "partstotal": "Parts Total (ex. Taxes)", + "performance": "Performance", + "pimraryamountpayable": "Total Primary Payable", + "plitooltips": { + "billtotal": "The total amount of all bill lines that have been posted against this RO (not including credits, taxes, or labor adjustments).", + "calculatedcreditsnotreceived": "The calculated credits not received is derived by subtracting the amount of credit memos entered from the retail total of returns created. This does not take into account whether the credit was marked as received. You can find more information here.", + "creditmemos": "The total retail amount of all returns created. This amount does not reflect credit memos that have been posted.", + "creditsnotreceived": "This total reflects the total retail of parts returns lines that have not been explicitly marked as returned when posting a credit memo. You can learn more about this here here. ", + "discrep1": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • Too many bills/bill lines that have been posted against this RO. Check to make sure every bill posted on this RO is correctly posted and assigned.
  • \n
  • You do not have the latest supplement imported, or, a supplement must be submitted and then imported.
  • \n
  • You have posted a bill line to labor.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", + "discrep2": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • Used an incorrect rate when deducting from labor.
  • \n
  • An outstanding imbalance higher in the reconciliation process.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", + "discrep3": "If the discrepancy is not $0, you may have one of the following:

\n\n
    \n
  • A parts order return has not been created.
  • \n
  • An outstanding imbalance higher in the reconciliation process.
  • \n
\n
\nThere may be additional issues not listed above that prevent this Job from reconciling.", + "laboradj": "The sum of all bill lines that deducted from labor hours, rather than part prices.", + "partstotal": "This is the total of all parts and sublet amounts on the vehicle (some of these may require an in-house invoice).
\nItems such as shop and paint materials, labor online lines, etc. are not included in this total.", + "totalreturns": "The total retail amount of returns created for this job." + }, + "ppc": "This line contains a part price change.", + "ppdnotexported": "PPDs not Exported", + "profileadjustments": "Profile Disc./Mkup", + "profitbypassrequired": "Minimum gross profit requirements have not been met.", + "profits": "Job Profits", + "prt_dsmk_total": "Line Item Adjustment", + "rates": "Rates", + "rates_subtotal": "All Rates Subtotal", + "reconciliation": { + "billlinestotal": "Bill Lines Total", + "byassoc": "By Line Association", + "byprice": "By Price", + "clear": "Clear All", + "discrepancy": "Discrepancy", + "joblinestotal": "Job Lines Total", + "multipleactprices": "${{act_price}} is the price for multiple job lines.", + "multiplebilllines": "{{line_desc}} has 2 or more bill lines associated to it.", + "multiplebillsforactprice": "Found more than 1 bill matching ${{act_price}} retail price.", + "removedpartsstrikethrough": "Strike through lines represent parts that have been removed from the estimate. They are included for completeness of reconciliation." + }, + "reconciliationheader": "Parts & Sublet Reconciliation", + "relatedros": "Related ROs", + "remove_from_ar": "Remove from AR", + "returntotals": "Return Totals", + "ro_guard": { + "enforce_ar": "AR collection enforced.", + "enforce_bills": "Bill discrepancy enforced.", + "enforce_cm": "Credit memo entry enforced.", + "enforce_labor": "Labor allocations enforced.", + "enforce_ppd": "PPD sync enforced.", + "enforce_profit": "Profit marginsenforced.", + "enforce_sublet": "Sublet completion enforced.", + "enforce_validation": "Master Bypass Required: {{message}}", + "enforced": "This check has been enforced by your shop manager. Enter the master bypass password to close the Job." + }, + "roguard": "RO Guard", + "roguardwarnings": "RO Guard Warnings", + "rosaletotal": "RO Parts Total", + "sale_additional": "Sales - Additional", + "sale_labor": "Sales - Labor", + "sale_parts": "Sales - Parts", + "sale_sublet": "Sales - Sublet", + "sales": "Sales", + "savebeforeconversion": "You have unsaved changes on the Job. Please save them before converting it. ", + "scheduledinchange": "The scheduled in is based off the latest appointment. To change this date, please schedule or reschedule the Job. ", + "specialcoveragepolicy": "Special Coverage Policy Applies", + "state_tax_amt": "Provincial/State Taxes", + "subletsnotcompleted": "Outstanding Sublets", + "subletstotal": "Sublets Total", + "subtotal": "Subtotal", + "supplementnote": "The Job had a supplement imported.", + "suspended": "SUSPENDED", + "suspense": "Suspense", + "tasks": "Tasks", + "threshhold": "Max Threshold: ${{amount}}", + "total_cost": "Total Cost", + "total_cust_payable": "Total Customer Amount Payable", + "total_cust_payable_cash_discount": "$t(jobs.labels.total_cust_payable) (Cash Discounted)", + "total_repairs": "Total Repairs", + "total_repairs_cash_discount": "Total Repairs (Cash Discounted)", + "total_sales": "Total Sales", + "total_sales_tax": "Total Sales Tax", + "totals": "Totals", + "unvoidnote": "This Job was unvoided.", + "update_scheduled_completion": "Update Scheduled Completion?", + "vehicle_info": "Vehicle", + "vehicleassociation": "Vehicle Association", + "viewallocations": "View Allocations", + "voidjob": "Are you sure you want to void this Job? This cannot be easily undone. ", + "voidnote": "This Job was voided." + }, + "successes": { + "addedtoproduction": "Job added to production board.", + "all_deleted": "{{count}} Jobs deleted successfully.", + "closed": "Job closed successfully.", + "converted": "Job converted successfully.", + "created": "Job created successfully. Click to view.", + "creatednoclick": "Job created successfully. ", + "delete": "Job deleted successfully.", + "deleted": "Job deleted successfully.", + "duplicated": "Job duplicated successfully. ", + "exported": "Job(s) exported successfully. ", + "invoiced": "Job closed and invoiced successfully.", + "ioucreated": "IOU created successfully. Click to see.", + "partsqueue": "Job added to parts queue.", + "save": "Job saved successfully.", + "savetitle": "Record saved successfully.", + "supplemented": "Job supplemented successfully. ", + "updated": "Job(s) updated successfully.", + "voided": "Job voided successfully." + } + }, + "landing": { + "bigfeature": { + "subtitle": "Rome Online is built using world class technology by experts in the collision repair industry. This translates to software that is tailor made for the unique challenges faced by repair facilities with no compromises. ", + "title": "Bringing the latest technology to the automotive repair industry. " + }, + "footer": { + "company": { + "about": "About Us", + "contact": "Contact", + "disclaimers": "Disclaimers", + "name": "Company", + "privacypolicy": "Privacy Policy" + }, + "io": { + "help": "Help", + "name": "Rome Online", + "status": "System Status" + }, + "slogan": "Rome Technologies. is a technology leader in the collision repair industry. We specialize in creating collision repair management systems and bodyshop management systems that lower cycle times and promote efficiency." + }, + "hero": { + "button": "Learn More", + "title": "Shop management reimagined." + }, + "labels": { + "features": "Features", + "managemyshop": "Sign In", + "pricing": "Pricing" + }, + "pricing": { + "basic": { + "name": "Basic", + "sub": "Best suited for shops looking to increase their volume." + }, + "essentials": { + "name": "Essentials", + "sub": "Best suited for small and low volume shops." + }, + "pricingtitle": "Features", + "pro": { + "name": "Pro", + "sub": "Empower your shop with the tools to operate at peak capacity." + }, + "title": "Features", + "unlimited": { + "name": "Unlimited", + "sub": "Everything you need and more for the high volume shop." + } + } + }, + "menus": { + "currentuser": { + "languageselector": "Language", + "profile": "Profile" + }, + "header": { + "accounting": "Accounting", + "accounting-payables": "Payables", + "accounting-payments": "Payments", + "accounting-receivables": "Receivables", + "activejobs": "Active Jobs", + "all_tasks": "All Tasks", + "alljobs": "All Jobs", + "allpayments": "All Payments", + "availablejobs": "Available Jobs", + "bills": "Bills", + "courtesycars": "Courtesy Cars", + "courtesycars-all": "All Courtesy Cars", + "courtesycars-contracts": "Contracts", + "courtesycars-newcontract": "New Contract", + "create_task": "Create Task", + "customers": "Customers", + "dashboard": "Dashboard", + "enterbills": "Enter Bills", + "entercardpayment": "New Card Charge", + "enterpayment": "Enter Payments", + "entertimeticket": "Enter Time Tickets", + "export": "Export", + "export-logs": "Export Logs", + "help": "Help", + "home": "Home", + "inventory": "Inventory", + "jobs": "Jobs", + "my_tasks": "My Tasks", + "newjob": "Create New Job", + "owners": "Owners", + "parts-queue": "Parts Queue", + "phonebook": "Phonebook", + "productionboard": "Production Board - Visual", + "productionlist": "Production Board - List", + "readyjobs": "Ready Jobs", + "recent": "Recent Items", + "reportcenter": "Report Center", + "rescueme": "Rescue me!", + "schedule": "Schedule", + "scoreboard": "Scoreboard", + "search": { + "bills": "Bills", + "jobs": "Jobs", + "owners": "Owners", + "payments": "Payments", + "phonebook": "Phonebook", + "vehicles": "Vehicles" + }, + "shiftclock": "Shift Clock", + "shop": "My Shop", + "shop_config": "Configuration", + "shop_csi": "CSI", + "shop_templates": "Templates", + "shop_vendors": "Vendors", + "tasks": "Tasks", + "temporarydocs": "Temporary Documents", + "timetickets": "Time Tickets", + "ttapprovals": "Time Ticket Approvals", + "vehicles": "Vehicles" + }, + "jobsactions": { + "admin": "Admin", + "cancelallappointments": "Cancel all appointments", + "closejob": "Close Job", + "deletejob": "Delete Job", + "duplicate": "Duplicate this Job", + "duplicatenolines": "Duplicate this Job without Repair Data", + "newcccontract": "Create Courtesy Car Contract", + "void": "Void Job" + }, + "jobsdetail": { + "claimdetail": "Claim Details", + "dates": "Dates", + "financials": "Financial Information", + "general": "General", + "insurance": "Insurance Information", + "labor": "Labor", + "lifecycle": "Lifecycle", + "parts": "Parts", + "partssublet": "Parts & Bills", + "rates": "Rates", + "repairdata": "Repair Data", + "totals": "Totals" + }, + "profilesidebar": { + "profile": "My Profile", + "shops": "My Shops" + }, + "tech": { + "assignedjobs": "Assigned Jobs", + "claimtask": "Flag Hours", + "dispatchedparts": "Dispatched Parts", + "home": "Home", + "jobclockin": "Job Clock In", + "jobclockout": "Job Clock Out", + "joblookup": "Job Lookup", + "login": "Login", + "logout": "Logout", + "productionboard": "Production Visual", + "productionlist": "Production List", + "shiftclockin": "Shift Clock" + } + }, + "messaging": { + "actions": { + "link": "Link to Job", + "new": "New Conversation" + }, + "errors": { + "invalidphone": "The phone number is invalid. Unable to open conversation. ", + "noattachedjobs": "No Jobs have been associated to this conversation. ", + "updatinglabel": "Error updating label. {{error}}" + }, + "labels": { + "addlabel": "Add a label to this conversation.", + "archive": "Archive", + "maxtenimages": "You can only select up to a maximum of 10 images at a time.", + "messaging": "Messaging", + "noallowtxt": "This customer has not indicated their permission to be messaged.", + "nojobs": "Not associated to any Job.", + "nopush": "Polling Mode Enabled", + "phonenumber": "Phone #", + "presets": "Presets", + "recentonly": "Only your most recent 50 conversations will be shown here. If you are looking for an older conversation, find the related contact and click their phone number to view the conversation.", + "selectmedia": "Select Media", + "sentby": "Sent by {{by}} at {{time}}", + "typeamessage": "Send a message...", + "unarchive": "Unarchive" + }, + "render": { + "conversation_list": "Conversation List" + } + }, + "notes": { + "actions": { + "actions": "Actions", + "deletenote": "Delete Note", + "edit": "Edit Note", + "new": "New Note", + "savetojobnotes": "Save to Job Notes" + }, + "errors": { + "inserting": "Error inserting note. {{error}}" + }, + "fields": { + "createdby": "Created By", + "critical": "Critical", + "private": "Private", + "text": "Contents", + "type": "Type", + "types": { + "customer": "Customer", + "general": "General", + "office": "Office", + "paint": "Paint", + "parts": "Parts", + "shop": "Shop", + "supplement": "Supplement" + }, + "updatedat": "Updated At" + }, + "labels": { + "addtorelatedro": "Add to Related ROs", + "newnoteplaceholder": "Add a note...", + "notetoadd": "Note to Add", + "systemnotes": "System Notes", + "usernotes": "User Notes" + }, + "successes": { + "create": "Note created successfully.", + "deleted": "Note deleted successfully.", + "updated": "Note updated successfully." + } + }, + "owner": { + "labels": { + "noownerinfo": "No owner information." + } + }, + "owners": { + "actions": { + "update": "Update Selected Records" + }, + "errors": { + "deleting": "Error deleting owner. {{error}}.", + "noaccess": "The record does not exist or you do not have access to it. ", + "saving": "Error saving owner. {{error}}.", + "selectexistingornew": "Select an existing owner record or create a new one. " + }, + "fields": { + "accountingid": "Accounting ID", + "address": "Address", + "allow_text_message": "Permission to Text?", + "name": "Name", + "note": "Owner Note", + "ownr_addr1": "Address", + "ownr_addr2": "Address 2", + "ownr_city": "City", + "ownr_co_nm": "Owner Co. Name", + "ownr_ctry": "Country", + "ownr_ea": "Email", + "ownr_fn": "First Name", + "ownr_ln": "Last Name", + "ownr_ph1": "Phone 1", + "ownr_ph2": "Phone 2", + "ownr_st": "Province/State", + "ownr_title": "Title", + "ownr_zip": "Zip/Postal Code", + "preferred_contact": "Preferred Contact Method", + "tax_number": "Tax Number" + }, + "forms": { + "address": "Address", + "contact": "Contact Information", + "name": "Owner Details" + }, + "labels": { + "create_new": "Create a new owner record.", + "deleteconfirm": "Are you sure you want to delete this owner? This cannot be undone.", + "existing_owners": "Existing Owners", + "fromclaim": "Current Claim", + "fromowner": "Historical Owner Record", + "relatedjobs": "Related Jobs", + "updateowner": "Update Owner" + }, + "successes": { + "delete": "Owner deleted successfully.", + "save": "Owner saved successfully." + } + }, + "parts": { + "actions": { + "order": "Order Parts", + "orderinhouse": "Order as In House" + } + }, + "parts_dispatch": { + "actions": { + "accept": "Accept" + }, + "errors": { + "accepting": "Error accepting parts dispatch. {{error}}", + "creating": "Error dispatching parts. {{error}}" + }, + "fields": { + "number": "Number", + "percent_accepted": "% Accepted" + }, + "labels": { + "notyetdispatched": "This part has not been dispatched.", + "parts_dispatch": "Parts Dispatch" + } + }, + "parts_dispatch_lines": { + "fields": { + "accepted_at": "Accepted At" + } + }, + "parts_orders": { + "actions": { + "backordered": "Mark Backordered", + "receive": "Receive", + "receivebill": "Receive Bill" + }, + "errors": { + "associatedbills": "This parts order cannot", + "backordering": "Error backordering part {{message}}.", + "creating": "Error encountered when creating parts order. ", + "oec": "Error creating EMS files for parts order. {{error}}", + "saving": "Error saving parts order. {{error}}.", + "updating": "Error updating parts order/parts order line. {{error}}." + }, + "fields": { + "act_price": "Price", + "backordered_eta": "B.O. ETA", + "backordered_on": "B.O. On", + "cm_received": "CM Received?", + "comments": "Comments", + "cost": "Cost", + "db_price": "List Price", + "deliver_by": "Deliver By", + "job_line_id": "Job Line Id", + "line_desc": "Line Description", + "line_remarks": "Remarks", + "lineremarks": "Line Remarks", + "oem_partno": "Part #", + "order_date": "Order Date", + "order_number": "Order Number", + "orderedby": "Ordered By", + "part_type": "Type", + "quantity": "Qty.", + "return": "Return", + "status": "Status" + }, + "labels": { + "allpartsto": "All Parts Location", + "confirmdelete": "Are you sure you want to delete this item? It cannot be recovered. Job line statuses will not be updated and may require manual review. ", + "custompercent": "Custom %", + "discount": "Discount {{percent}}", + "email": "Send by Email", + "inthisorder": "Parts in this Order", + "is_quote": "Parts Quote?", + "mark_as_received": "Mark as Received?", + "newpartsorder": "New Parts Order", + "notyetordered": "This part has not yet been ordered.", + "oec": "Order via EMS", + "order_type": "Order Type", + "orderhistory": "Order History", + "parts_order": "Parts Order", + "parts_orders": "Parts Orders", + "print": "Show Printed Form", + "receive": "Receive Parts Order", + "removefrompartsqueue": "Unqueue from Parts Queue?", + "returnpartsorder": "Return Parts Order", + "sublet_order": "Sublet Order" + }, + "successes": { + "created": "Parts order created successfully. ", + "line_updated": "Parts return line updated.", + "received": "Parts order received.", + "return_created": "Parts return created successfully." + } + }, + "payments": { + "actions": { + "generatepaymentlink": "Generate Payment Link" + }, + "errors": { + "exporting": "Error exporting payment(s). {{error}}", + "exporting-partner": "Error exporting to partner. Please check the partner interaction log for more errors.", + "inserting": "Error inserting payment. {{error}}" + }, + "fields": { + "amount": "Amount", + "created_at": "Created At", + "date": "Payment Date", + "exportedat": "Exported At", + "memo": "Memo", + "payer": "Payer", + "paymentnum": "Payment Number", + "stripeid": "Stripe ID", + "transactionid": "Transaction ID", + "type": "Type" + }, + "labels": { + "balance": "Balance", + "ca_bc_etf_table": "ICBC EFT Table Converter", + "customer": "Customer", + "edit": "Edit Payment", + "electronicpayment": "Use Electronic Payment Processing?", + "external": "External", + "findermodal": "ICBC Payment Finder", + "insurance": "Insurance", + "markexported": "Mark Exported", + "markforreexport": "Mark for Re-export", + "new": "New Payment", + "signup": "Please contact support to sign up for electronic payments.", + "smspaymentreminder": "This is {{shopname}} reminding you about your balance of {{amount}}. To pay, click the following link {{payment_link}}.", + "title": "Payments", + "totalpayments": "Total Payments" + }, + "successes": { + "exported": "Payment(s) exported successfully.", + "markexported": "Payment(s) marked exported.", + "markreexported": "Payment marked for re-export successfully", + "payment": "Payment created successfully. ", + "paymentupdate": "Payment updated successfully. ", + "stripe": "Credit card transaction charged successfully." + } + }, + "phonebook": { + "actions": { + "new": "New Phonebook Entry" + }, + "errors": { + "adding": "Error adding phonebook entry. {{error}}", + "saving": "Error saving phonebook entry. {{error}}" + }, + "fields": { + "address1": "Street 1", + "address2": "Street 2", + "category": "Category", + "city": "City", + "company": "Company", + "country": "Country", + "email": "Email", + "fax": "Fax", + "firstname": "First Name", + "lastname": "Last Name", + "phone1": "Phone 1", + "phone2": "Phone 2", + "state": "Province/State" + }, + "labels": { + "noneselected": "No phone book entry selected. ", + "onenamerequired": "At least one name related field is required.", + "vendorcategory": "Vendor" + }, + "successes": { + "added": "Phonebook entry added successfully. ", + "deleted": "Phonebook entry deleted successfully. ", + "saved": "Phonebook entry saved successfully. " + } + }, + "printcenter": { + "appointments": { + "appointment_confirmation": "Appointment Confirmation" + }, + "bills": { + "inhouse_invoice": "In House Invoice" + }, + "courtesycarcontract": { + "courtesy_car_contract": "Courtesy Car Contract", + "courtesy_car_impound": "Impound Charges", + "courtesy_car_inventory": "Courtesy Car Inventory", + "courtesy_car_terms": "Courtesy Car Terms" + }, + "errors": { + "nocontexttype": "No context type set." + }, + "jobs": { + "3rdpartyfields": { + "addr1": "Address 1", + "addr2": "Address 2", + "addr3": "Address 3", + "attn": "Attention", + "city": "City", + "custgst": "Customer Portion of GST", + "ded_amt": "Deductible", + "depreciation": "Depreciation", + "other": "Other", + "ponumber": "PO Number", + "refnumber": "Reference Number", + "sendtype": "Send by", + "state": "Province/State", + "zip": "Postal Code/Zip" + }, + "3rdpartypayer": "Invoice to Third Party Payer", + "ab_proof_of_loss": "AB - Proof of Loss", + "appointment_confirmation": "Appointment Confirmation", + "appointment_reminder": "Appointment Reminder", + "casl_authorization": "CASL Authorization", + "committed_timetickets_ro": "Committed Time Tickets", + "coversheet_landscape": "Coversheet (Landscape)", + "coversheet_portrait": "Coversheet Portrait", + "csi_invitation": "CSI Invitation", + "csi_invitation_action": "CSI Invite", + "diagnostic_authorization": "Diagnostic Authorization", + "dms_posting_sheet": "DMS Posting Sheet", + "envelope_return_address": "#10 Envelope Return Address Label", + "estimate": "Estimate Only", + "estimate_detail": "Estimate Details", + "estimate_followup": "Estimate Followup", + "express_repair_checklist": "Express Repair Checklist", + "filing_coversheet_landscape": "Filing Coversheet (Landscape)", + "filing_coversheet_portrait": "Filing Coversheet (Portrait)", + "final_invoice": "Final Invoice", + "fippa_authorization": "FIPPA Authorization", + "folder_label_multiple": "Folder Label - Multi", + "glass_express_checklist": "Glass Express Checklist", + "guarantee": "Repair Guarantee", + "individual_job_note": "RO Job Note", + "invoice_customer_payable": "Invoice (Customer Payable)", + "invoice_total_payable": "Invoice (Total Payable)", + "iou_form": "IOU Form", + "job_costing_ro": "Job Costing", + "job_lifecycle_ro": "Job Lifecycle", + "job_notes": "Job Notes", + "job_tasks": "Job Tasks", + "key_tag": "Key Tag", + "labels": { + "count": "Count", + "labels": "Labels", + "position": "Starting Position" + }, + "lag_time_ro": "Lag Time", + "mechanical_authorization": "Mechanical Authorization", + "mpi_animal_checklist": "MPI - Animal Checklist", + "mpi_eglass_auth": "MPI - eGlass Auth", + "mpi_final_acct_sheet": "MPI - Final Accounting Sheet (Direct Repair)", + "mpi_final_repair_acct_sheet": "MPI - Final Accounting Sheet", + "paint_grid": "Paint Grid", + "parts_dispatch": "Parts Dispatch", + "parts_invoice_label_single": "Parts Label Single", + "parts_label_multiple": "Parts Label - Multi", + "parts_label_single": "Parts Label - Single", + "parts_list": "Parts List", + "parts_order": "Parts Order Confirmation", + "parts_order_confirmation": "", + "parts_order_history": "Parts Order History", + "parts_return_slip": "Parts Return Slip", + "payment_receipt": "Payment Receipt", + "payment_request": "Payment Request", + "payments_by_job": "Job Payments", + "purchases_by_ro_detail": "Purchases - Detail", + "purchases_by_ro_summary": "Purchases - Summary", + "qc_sheet": "Quality Control Sheet", + "rental_reservation": "Rental Reservation", + "ro_totals": "RO Totals", + "ro_with_description": "RO Summary with Descriptions", + "sgi_certificate_of_repairs": "SGI - Certificate of Repairs", + "sgi_windshield_auth": "SGI - Windshield Authorization", + "stolen_recovery_checklist": "Stolen Recovery Checklist", + "sublet_order": "Sublet Order", + "supplement_request": "Supplement Request", + "thank_you_ro": "Thank You Letter", + "thirdpartypayer": "Third Party Payer", + "timetickets_ro": "Time Tickets", + "vehicle_check_in": "Vehicle Intake", + "vehicle_delivery_check": "Vehicle Delivery Checklist", + "window_tag": "Window Tag", + "window_tag_sublet": "Window Tag - Sublet", + "work_authorization": "Work Authorization", + "worksheet_by_line_number": "Worksheet by Line Number", + "worksheet_sorted_by_operation": "Worksheet by Operation", + "worksheet_sorted_by_operation_no_hours": "Worksheet by Operation (No Hours)", + "worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type", + "worksheet_sorted_by_operation_type": "Worksheet by Operation Type", + "worksheet_sorted_by_team": "Worksheet by Team" + }, + "labels": { + "groups": { + "authorization": "Authorization", + "financial": "Financial", + "post": "Post-Production", + "pre": "Pre-Production", + "ro": "Repair Order", + "worksheet": "Worksheets" + }, + "misc": "Miscellaneous Documents", + "repairorder": "Repair Order Related", + "reportcentermodal": "Report Center", + "speedprint": "Speed Print", + "title": "Print Center" + }, + "payments": { + "ca_bc_etf_table": "ICBC EFT Table", + "exported_payroll": "Payroll Table" + }, + "special": { + "attendance_detail_csv": "Attendance Table" + }, + "subjects": { + "jobs": { + "individual_job_note": "Job Note RO: {{ro_number}}", + "parts_dispatch": "Parts Dispatch RO: {{ro_number}}", + "parts_order": "Parts Order PO: {{ro_number}} - {{name}}", + "parts_return_slip": "Parts Return PO: {{ro_number}} - {{name}}", + "sublet_order": "Sublet Order PO: {{ro_number}} - {{name}}" + } + }, + "vendors": { + "purchases_by_vendor_detailed": "Purchases by Vendor - Detailed", + "purchases_by_vendor_summary": "Purchases by Vendor - Summary" + } + }, + "production": { + "actions": { + "addcolumns": "Add Columns", + "bodypriority-clear": "Clear Body Priority", + "bodypriority-set": "Set Body Priority", + "detailpriority-clear": "Clear Detail Priority", + "detailpriority-set": "Set Detail Priority", + "paintpriority-clear": "Clear Paint Priority", + "paintpriority-set": "Set Paint Priority", + "remove": "Remove from Production", + "removecolumn": "Remove Column", + "saveconfig": "Save Configuration", + "suspend": "Suspend", + "unsuspend": "Unsuspend" + }, + "constants": { + "main_profile": "Default" + }, + "errors": { + "boardupdate": "Error encountered updating Job. {{message}}", + "name_exists": "A Profile with this name already exists. Please choose a different name.", + "name_required": "Profile name is required.", + "removing": "Error removing from production board. {{error}}", + "settings": "Error saving board settings: {{error}}" + }, + "labels": { + "actual_in": "Actual In", + "addnewprofile": "Add New Profile", + "alert": "Alert", + "alertoff": "Remove alert from Job", + "alerton": "Add alert to Job", + "alerts": "Alerts", + "ats": "Alternative Transportation", + "bodyhours": "B", + "bodypriority": "B/P", + "bodyshop": { + "labels": { + "qbo_departmentid": "QBO Department ID", + "qbo_usa": "QBO USA" + } + }, + "card_size": "Card Size", + "cardcolor": "Colored Cards", + "cardsettings": "Card Settings", + "clm_no": "Claim Number", + "comment": "Comment", + "compact": "Compact Cards", + "detailpriority": "D/P", + "employeeassignments": "Employee Assignments", + "employeesearch": "Employee Search", + "estimator": "Estimator", + "horizontal": "Horizontal", + "ins_co_nm": "Insurance Company Name", + "jobdetail": "Job Details", + "kiosk_mode": "Kiosk Mode", + "laborhrs": "Labor Hours", + "legend": "Legend:", + "model_info": "Vehicle Info", + "note": "Production Note", + "off": "Off", + "on": "On", + "orientation": "Board Orientation", + "ownr_nm": "Customer Name", + "paintpriority": "P/P", + "partsstatus": "Parts Status", + "production_note": "Production Note", + "refinishhours": "R", + "scheduled_completion": "Scheduled Completion", + "selectview": "Select a View", + "stickyheader": "Sticky Header (BETA)", + "sublets": "Sublets", + "subtotal": "Subtotal", + "tall": "Tall", + "tasks": "Tasks", + "totalhours": "Total Hrs ", + "touchtime": "T/T", + "vertical": "Vertical", + "viewname": "View Name", + "wide": "Wide" + }, + "options": { + "horizontal": "Horizontal", + "large": "Large", + "medium": "Medium", + "small": "Small", + "vertical": "Vertical" + }, + "settings": { + "board_settings": "Board Settings", + "filters": { + "md_estimators": "Estimators", + "md_ins_cos": "Insurance Companies" + }, + "filters_title": "Filters", + "information": "Information", + "layout": "Layout", + "statistics": { + "jobs_in_production": "Jobs in Production", + "tasks_in_production": "Tasks in Production", + "tasks_in_view": "Tasks in View", + "tasks_on_board": "Tasks on Board", + "total_amount_in_production": "Dollars in Production", + "total_amount_in_view": "Dollars in View", + "total_amount_on_board": "Dollars on Board", + "total_hours_in_production": "Hours in Production", + "total_hours_in_view": "Hours in View", + "total_hours_on_board": "Hours on Board", + "total_jobs_in_view": "Jobs in View", + "total_jobs_on_board": "Jobs on Board", + "total_lab_in_production": "Body Hours in Production", + "total_lab_in_view": "Body Hours in View", + "total_lab_on_board": "Body Hours on Board", + "total_lar_in_production": "Refinish Hours in Production", + "total_lar_in_view": "Refinish Hours in View", + "total_lar_on_board": "Refinish Hours on Board" + }, + "statistics_title": "Statistics" + }, + "statistics": { + "currency_symbol": "$", + "hours": "Hours", + "jobs": "Jobs", + "jobs_in_production": "Jobs in Production", + "tasks": "Tasks", + "tasks_in_production": "Tasks in Production", + "tasks_in_view": "Tasks in View", + "tasks_on_board": "Tasks on Board", + "total_amount_in_production": "Dollars in Production", + "total_amount_in_view": "Dollars in View", + "total_amount_on_board": "Dollars on Board", + "total_hours_in_production": "Hours in Production", + "total_hours_in_view": "Hours in View", + "total_hours_on_board": "Hours on Board", + "total_jobs_in_view": "Jobs in View", + "total_jobs_on_board": "Jobs on Board", + "total_lab_in_production": "Body Hours in Production", + "total_lab_in_view": "Body Hours in View", + "total_lab_on_board": "Body Hours on Board", + "total_lar_in_production": "Refinish Hours in Production", + "total_lar_in_view": "Refinish Hours in View", + "total_lar_on_board": "Refinish Hours on Board" + }, + "successes": { + "removed": "Job removed from production." + } + }, + "profile": { + "errors": { + "state": "Error reading page state. Please refresh." + }, + "labels": { + "activeshop": "Active Shop" + }, + "successes": { + "updated": "Profile updated successfully." + } + }, + "reportcenter": { + "actions": { + "generate": "Generate" + }, + "labels": { + "advanced_filters": "Advanced Filters and Sorters", + "advanced_filters_false": "False", + "advanced_filters_filter_field": "Field", + "advanced_filters_filter_operator": "Operator", + "advanced_filters_filter_value": "Value", + "advanced_filters_filters": "Filters", + "advanced_filters_hide": "Hide", + "advanced_filters_show": "Show", + "advanced_filters_sorter_direction": "Direction", + "advanced_filters_sorter_field": "Field", + "advanced_filters_sorters": "Sorters", + "advanced_filters_true": "True", + "dates": "Dates", + "employee": "Employee", + "filterson": "Filters on {{object}}: {{field}}", + "generateasemail": "Generate as Email?", + "groups": { + "customers": "Customers", + "jobs": "Jobs & Costing", + "payroll": "Payroll", + "purchases": "Purchases", + "sales": "Sales" + }, + "key": "Report", + "objects": { + "appointments": "Appointments", + "bills": "Bills", + "csi": "CSI", + "exportlogs": "Export Logs", + "jobs": "Jobs", + "parts_orders": "Parts Orders", + "payments": "Payments", + "scoreboard": "Scoreboard", + "tasks": "Tasks", + "timetickets": "Timetickets" + }, + "vendor": "Vendor" + }, + "templates": { + "adp_payroll_flat": "ADP Payroll - Flat Rate", + "adp_payroll_straight": "ADP Payroll - Straight Time", + "anticipated_revenue": "Anticipated Revenue", + "ar_aging": "AR Aging", + "attendance_detail": "Attendance (All Employees)", + "attendance_employee": "Employee Attendance", + "attendance_summary": "Attendance Summary (All Employees)", + "committed_timetickets": "Committed Time Tickets", + "committed_timetickets_employee": "Committed Employee Time Tickets", + "committed_timetickets_summary": "Committed Time Tickets Summary", + "credits_not_received_date": "Credits not Received by Date", + "credits_not_received_date_vendorid": "Credits not Received by Vendor", + "csi": "CSI Responses", + "customer_list": "Customer List", + "cycle_time_analysis": "Cycle Time Analysis", + "estimates_written_converted": "Estimates Written/Converted", + "estimator_detail": "Jobs by Estimator (Detail)", + "estimator_summary": "Jobs by Estimator (Summary)", + "export_payables": "Export Log - Payables", + "export_payments": "Export Log - Payments", + "export_receivables": "Export Log - Receivables", + "exported_gsr_by_ro": "Exported Gross Sales - Excel", + "exported_gsr_by_ro_labor": "Exported Gross Sales (Labor) - Excel", + "gsr_by_atp": "", + "gsr_by_ats": "Gross Sales by ATS", + "gsr_by_category": "Gross Sales by Category", + "gsr_by_csr": "Gross Sales by CSR", + "gsr_by_delivery_date": "Gross Sales by Delivery Date", + "gsr_by_estimator": "Gross Sales by Estimator", + "gsr_by_exported_date": "Exported Gross Sales", + "gsr_by_ins_co": "Gross Sales by Insurance Company", + "gsr_by_make": "Gross Sales by Vehicle Make", + "gsr_by_referral": "Gross Sales by Referral Source", + "gsr_by_ro": "Gross Sales by RO", + "gsr_labor_only": "Gross Sales - Labor Only", + "hours_sold_detail_closed": "Hours Sold Detail - Closed", + "hours_sold_detail_closed_csr": "Hours Sold Detail - Closed by CSR", + "hours_sold_detail_closed_estimator": "Hours Sold Detail - Closed by Estimator", + "hours_sold_detail_closed_ins_co": "Hours Sold Detail - Closed by Source", + "hours_sold_detail_closed_status": "Hours Sold Detail - Closed by Status", + "hours_sold_detail_open": "Hours Sold Detail - Open", + "hours_sold_detail_open_csr": "Hours Sold Detail - Open by CSR", + "hours_sold_detail_open_estimator": "Hours Sold Detail - Open by Estimator", + "hours_sold_detail_open_ins_co": "Hours Sold Detail - Open by Source", + "hours_sold_detail_open_status": "Hours Sold Detail - Open by Status", + "hours_sold_summary_closed": "Hours Sold Summary - Closed", + "hours_sold_summary_closed_csr": "Hours Sold Summary - Closed by CSR", + "hours_sold_summary_closed_estimator": "Hours Sold Summary - Closed by Estimator", + "hours_sold_summary_closed_ins_co": "Hours Sold Summary - Closed by Source", + "hours_sold_summary_closed_status": "Hours Sold Summary - Closed by Status", + "hours_sold_summary_open": "Hours Sold Summary - Open", + "hours_sold_summary_open_csr": "Hours Sold Summary - Open CSR", + "hours_sold_summary_open_estimator": "Hours Sold Summary - Open Estimator", + "hours_sold_summary_open_ins_co": "Hours Sold Summary - Open by Source", + "hours_sold_summary_open_status": "Hours Sold Summary - Open by Status", + "job_costing_ro_csr": "Job Costing by CSR", + "job_costing_ro_date_detail": "Job Costing by RO - Detail", + "job_costing_ro_date_summary": "Job Costing by RO - Summary", + "job_costing_ro_estimator": "Job Costing by Estimator", + "job_costing_ro_ins_co": "Job Costing by RO Source", + "job_lifecycle_date_detail": "Job Lifecycle by Date - Detail", + "job_lifecycle_date_summary": "Job Lifecycle by Date - Summary", + "jobs_completed_not_invoiced": "Jobs Completed not Invoiced", + "jobs_invoiced_not_exported": "Jobs Invoiced not Exported", + "jobs_reconcile": "Parts/Sublet/Labor Reconciliation", + "jobs_scheduled_completion": "Jobs Scheduled Completion", + "lag_time": "Lag Time", + "load_level": "Load Level", + "lost_sales": "Lost Sales", + "open_orders": "Open Orders by Date", + "open_orders_csr": "Open Orders by CSR", + "open_orders_estimator": "Open Orders by Estimator", + "open_orders_excel": "Open Orders - Excel", + "open_orders_ins_co": "Open Orders by Insurance Company", + "open_orders_referral": "Open Orders by Referral Source", + "open_orders_specific_csr": "Open Orders filtered by CSR", + "open_orders_status": "Open Orders by Status", + "parts_backorder": "IOU Parts List", + "parts_not_recieved": "Parts Not Received", + "parts_not_recieved_vendor": "Parts Not Received by Vendor", + "parts_received_not_scheduled": "Parts Received for Jobs Not Scheduled", + "payments_by_date": "Payments by Date", + "payments_by_date_payment": "Payments by Date and Payment Type", + "payments_by_date_type": "Payments by Date and Customer Type", + "production_by_category": "Production by Category", + "production_by_category_one": "Production filtered by Category", + "production_by_csr": "Production by CSR", + "production_by_last_name": "Production by Last Name", + "production_by_repair_status": "Production by Status", + "production_by_repair_status_one": "Production filtered by Status", + "production_by_ro": "Production by RO", + "production_by_target_date": "Production by Target Date", + "production_by_technician": "Production by Technician", + "production_by_technician_one": "Production filtered by Technician", + "production_not_production_status": "Production not in Production Status", + "production_over_time": "Production Level over Time", + "psr_by_make": "Percent of Sales by Vehicle Make", + "purchase_return_ratio_excel": "Purchase & Return Ratio - Excel", + "purchase_return_ratio_grouped_by_vendor_detail": "Purchase & Return Ratio by Vendor (Detail)", + "purchase_return_ratio_grouped_by_vendor_summary": "Purchase & Return Ratio by Vendor (Summary)", + "purchases_by_cost_center_detail": "Purchases by Cost Center (Detail)", + "purchases_by_cost_center_summary": "Purchases by Cost Center (Summary)", + "purchases_by_date_range_detail": "Purchases by Date - Detail", + "purchases_by_date_range_summary": "Purchases by Date - Summary", + "purchases_by_ro_detail_date": "Purchases by RO - Detail", + "purchases_by_ro_summary_date": "Purchases by RO - Summary", + "purchases_by_vendor_detailed_date_range": "Purchases By Vendor - Detailed", + "purchases_by_vendor_summary_date_range": "Purchases by Vendor - Summary", + "purchases_grouped_by_vendor_detailed": "Purchases Grouped by Vendor - Detailed", + "purchases_grouped_by_vendor_summary": "Purchases Grouped by Vendor - Summary", + "returns_grouped_by_vendor_detailed": "Returns Grouped by Vendor - Detailed", + "returns_grouped_by_vendor_summary": "Returns Grouped by Vendor - Summary", + "schedule": "Appointment Schedule", + "scheduled_parts_list": "Parts for Jobs Scheduled In", + "scoreboard_detail": "Scoreboard Detail", + "scoreboard_summary": "Scoreboard Summary", + "supplement_ratio_ins_co": "Supplement Ratio by Source", + "tasks_date": "Tasks by Date", + "tasks_date_employee": "Employee Tasks by Date", + "thank_you_date": "Thank You Letters", + "timetickets": "Time Tickets", + "timetickets_employee": "Employee Time Tickets", + "timetickets_summary": "Time Tickets Summary", + "total_loss_jobs": "Jobs Marked as Total Loss", + "unclaimed_hrs": "Unflagged Hours", + "void_ros": "Void ROs", + "work_in_progress_committed_labour": "Work in Progress - Committed Labor", + "work_in_progress_jobs": "Work in Progress - Jobs", + "work_in_progress_labour": "Work in Progress - Labor", + "work_in_progress_payables": "Work in Progress - Payables" + } + }, + "schedule": { + "labels": { + "atssummary": "ATS Summary", + "employeevacation": "Employee Vacations", + "estimators": "Filter by Writer/Customer Rep.", + "ins_co_nm_filter": "Filter by Insurance Company", + "intake": "Intake Events", + "manual": "Manual Events", + "manualevent": "Add Manual Event" + } + }, + "scoreboard": { + "actions": { + "edit": "Edit" + }, + "errors": { + "adding": "Error adding Job to Scoreboard. {{message}}", + "removing": "Error removing Job from Scoreboard. {{message}}", + "updating": "Error updating Scoreboard. {{message}}" + }, + "fields": { + "bodyhrs": "Body Hours", + "date": "Date", + "painthrs": "Paint Hours" + }, + "labels": { + "allemployeetimetickets": "All Employee Time Tickets", + "asoftodaytarget": "As of Today", + "body": "Body", + "bodyabbrev": "B", + "bodycharttitle": "Body Targets vs Actual", + "calendarperiod": "Periods based on calendar weeks/months.", + "combinedcharttitle": "Combined Targets vs Actual", + "dailyactual": "Actual (D)", + "dailytarget": "Daily", + "efficiencyoverperiod": "Efficiency over Selected Dates", + "entries": "Scoreboard Entries", + "jobs": "Jobs", + "jobscompletednotinvoiced": "Completed Not Invoiced", + "lastmonth": "Last Month", + "lastweek": "Last Week", + "monthlytarget": "Monthly", + "priorweek": "Prior Week", + "productivestatistics": "Productive Hours Statistics", + "productivetimeticketsoverdate": "Productive Hours over Selected Dates", + "refinish": "Refinish", + "refinishabbrev": "R", + "refinishcharttitle": "Refinish Targets vs Actual", + "targets": "Targets", + "thismonth": "This Month", + "thisweek": "This Week", + "timetickets": "Time Tickets", + "timeticketsemployee": "Time Tickets by Employee", + "todateactual": "Actual (MTD)", + "total": "Total", + "totalhrs": "Total Hours", + "totaloverperiod": "Total over Selected Dates", + "weeklyactual": "Actual (W)", + "weeklytarget": "Weekly", + "workingdays": "Working Days / Month" + }, + "successes": { + "added": "Job added to scoreboard.", + "removed": "Job removed from scoreboard.", + "updated": "Scoreboard updated." + } + }, + "tasks": { + "actions": { + "edit": "Edit Task", + "new": "New Task" + }, + "buttons": { + "allTasks": "All", + "complete": "Toggle Complete", + "create": "Create Task", + "delete": "Toggle Delete", + "edit": "Edit", + "myTasks": "Mine", + "refresh": "Refresh" + }, + "date_presets": { + "completion": "Completion", + "day": "Day", + "days": "Days", + "delivery": "Delivery", + "next_week": "Next Week", + "one_month": "One Month", + "three_months": "Three Months", + "three_weeks": "Three Weeks", + "today": "Today", + "tomorrow": "Tomorrow", + "two_weeks": "Two Weeks" + }, + "failures": { + "completed": "Failed to toggle Task completion.", + "created": "Failed to create Task.", + "deleted": "Failed to toggle Task deletion.", + "updated": "Failed to update Task." + }, + "fields": { + "actions": "Actions", + "assigned_to": "Assigned To", + "bill": "Bill", + "billid": "Bill", + "completed": "Completed", + "created_at": "Created At", + "created_by": "Created By", + "description": "Description", + "due_date": "Due Date", + "job": { + "ro_number": "RO #" + }, + "jobid": "Job", + "jobline": "Job Line", + "joblineid": "Job Line", + "parts_order": "Parts Order", + "partsorderid": "Parts Order", + "priorities": { + "high": "High", + "low": "Low", + "medium": "Medium" + }, + "priority": "Priority", + "related_items": "Related Items", + "remind_at": "Remind At", + "title": "Title" + }, + "placeholders": { + "assigned_to": "Select an Employee", + "billid": "Select a Bill", + "description": "Enter a description", + "jobid": "Select a Job", + "joblineid": "Select a Job Line", + "partsorderid": "Select a Parts Order" + }, + "successes": { + "completed": "Toggled Task completion successfully.", + "created": "Task created successfully.", + "deleted": "Toggled Task deletion successfully.", + "updated": "Task updated successfully." + }, + "titles": { + "all_tasks": "All Tasks", + "completed": "Completed Tasks", + "deleted": "Deleted Tasks", + "job_tasks": "Job Tasks", + "mine": "My Tasks", + "my_tasks": "My Tasks" + }, + "validation": { + "due_at_error_message": "The due date must be in the future!", + "remind_at_error_message": "The reminder date and time must be at least 30 minutes in the future!" + } + }, + "tech": { + "fields": { + "employeeid": "Employee ID", + "pin": "PIN" + }, + "labels": { + "loggedin": "Logged in as {{name}}", + "notloggedin": "Not logged in." + } + }, + "templates": { + "errors": { + "updating": "Error updating template {{error}}." + }, + "successes": { + "updated": "Template updated successfully." + } + }, + "timetickets": { + "actions": { + "claimtasks": "Flag Hours", + "clockin": "Clock In", + "clockout": "Clock Out", + "commit": "Commit Tickets ({{count}})", + "commitone": "Commit", + "enter": "Enter New Time Ticket", + "payall": "Pay All", + "printemployee": "Print Time Tickets", + "uncommit": "Uncommit" + }, + "errors": { + "clockingin": "Error while clocking in. {{message}}", + "clockingout": "Error while clocking out. {{message}}", + "creating": "Error creating time ticket. {{message}}", + "deleting": "Error deleting time ticket. {{message}}", + "noemployeeforuser": "Unable to use Shift Clock", + "noemployeeforuser_sub": "An employee record has not been created for this user. Please create one before using the shift clock. ", + "payall": "Error flagging hours. {{error}}", + "shiftalreadyclockedon": "You are already clocked onto a shift. Unable to create shift entry." + }, + "fields": { + "actualhrs": "Actual Hours", + "ciecacode": "CIECA Code", + "clockhours": "Clock Hours", + "clockoff": "Clock Off", + "clockon": "Clocked In", + "committed": "Committed", + "committed_at": "Committed At", + "cost_center": "Cost Center", + "created_by": "Created By", + "date": "Ticket Date", + "efficiency": "Efficiency", + "employee": "Employee", + "employee_team": "Employee Team", + "flat_rate": "Flat Rate?", + "memo": "Memo", + "productivehrs": "Productive Hours", + "ro_number": "Job to Post Against", + "task_name": "Task" + }, + "labels": { + "alreadyclockedon": "You are already clocked in to the following Job(s):", + "ambreak": "AM Break", + "amshift": "AM Shift", + "claimtaskpreview": "Flagged Hours Preview", + "clockhours": "Shift Clock Hours Summary", + "clockintojob": "Clock In to Job", + "deleteconfirm": "Are you sure you want to delete this time ticket? This cannot be undone.", + "edit": "Edit Time Ticket", + "efficiency": "Efficiency", + "flat_rate": "Flat Rate", + "jobhours": "Job Related Time Tickets Summary", + "lunch": "Lunch", + "new": "New Time Ticket", + "payrollclaimedtasks": "These time tickets will be automatically entered to the system as a part of claiming this task. These numbers are calculated using the jobs assigned lines. If lines are unassigned, they will be excluded from created tickets.", + "pmbreak": "PM Break", + "pmshift": "PM Shift", + "shift": "Shift", + "shiftalreadyclockedon": "Active Shift Time Tickets", + "straight_time": "Straight Time", + "task": "Task", + "timetickets": "Time Tickets", + "unassigned": "Unassigned", + "zeroactualnegativeprod": "Actual hours must be 0 if entering negative productive hours." + }, + "successes": { + "clockedin": "Clocked in successfully.", + "clockedout": "Clocked out successfully.", + "committed": "Time Tickets Committed Successfully", + "created": "Time ticket entered successfully.", + "deleted": "Time ticket deleted successfully.", + "payall": "All hours paid out successfully." + }, + "validation": { + "clockoffmustbeafterclockon": "Clock off time must be the same or after clock in time.", + "clockoffwithoutclockon": "Clock off time cannot be set without a clock in time.", + "hoursenteredmorethanavailable": "The number of hours entered is more than what is available for this cost center.", + "unassignedlines": "There are currently {{unassignedHours}} hours of repair lines that are unassigned. These hours are not including in the above calculations and must be paid manually." + } + }, + "titles": { + "accounting-payables": "Payables | {{app}}", + "accounting-payments": "Payments | {{app}}", + "accounting-receivables": "Receivables | {{app}}", + "all_tasks": "All Tasks", + "app": "", + "bc": { + "accounting-payables": "Payables", + "accounting-payments": "Payments", + "accounting-receivables": "Receivables", + "all_tasks": "All Tasks", + "availablejobs": "Available Jobs", + "bills-list": "Bills", + "contracts": "Contracts", + "contracts-create": "New Contract", + "contracts-detail": "Contract #{{number}}", + "courtesycars": "Courtesy Cars", + "courtesycars-detail": "Courtesy Car {{number}}", + "courtesycars-new": "New Courtesy Car", + "dashboard": "Dashboard", + "dms": "DMS Export", + "export-logs": "Export Logs", + "inventory": "Inventory", + "jobs": "Jobs", + "jobs-active": "Active Jobs", + "jobs-admin": "Admin", + "jobs-all": "All Jobs", + "jobs-checklist": "Checklist", + "jobs-close": "Close Job", + "jobs-deliver": "Deliver Job", + "jobs-detail": "Job {{number}}", + "jobs-intake": "Intake", + "jobs-new": "Create a New Job", + "jobs-ready": "Ready Jobs", + "my_tasks": "My Tasks", + "owner-detail": "{{name}}", + "owners": "Owners", + "parts-queue": "Parts Queue", + "payments-all": "All Payments", + "phonebook": "Phonebook", + "productionboard": "Production Board - Visual", + "productionlist": "Production Board - List", + "profile": "My Profile", + "schedule": "Schedule", + "scoreboard": "Scoreboard", + "shop": "Manage my Shop ({{shopname}})", + "shop-csi": "CSI Responses", + "shop-templates": "Shop Templates", + "shop-vendors": "Vendors", + "tasks": "Tasks", + "temporarydocs": "Temporary Documents", + "timetickets": "Time Tickets", + "ttapprovals": "Time Ticket Approvals", + "vehicle-details": "Vehicle: {{vehicle}}", + "vehicles": "Vehicles" + }, + "bills-list": "Bills | {{app}}", + "contracts": "Courtesy Car Contracts | {{app}}", + "contracts-create": "New Contract | {{app}}", + "contracts-detail": "Contract {{id}} | {{app}}", + "courtesycars": "Courtesy Cars | {{app}}", + "courtesycars-create": "New Courtesy Car | {{app}}", + "courtesycars-detail": "Courtesy Car {{id}} | {{app}}", + "dashboard": "Dashboard | {{app}}", + "dms": "DMS Export | {{app}}", + "export-logs": "Export Logs | {{app}}", + "imexonline": "ImEX Online", + "inventory": "Inventory | {{app}}", + "jobs": "Active Jobs | {{app}}", + "jobs-admin": "Job {{ro_number}} - Admin | {{app}}", + "jobs-all": "All Jobs | {{app}}", + "jobs-checklist": "Job Checklist | {{app}}", + "jobs-close": "Close Job {{number}} | {{app}}", + "jobs-create": "Create a New Job | {{app}}", + "jobs-deliver": "Deliver Job | {{app}}", + "jobs-intake": "Intake | {{app}}", + "jobsavailable": "Available Jobs | {{app}}", + "jobsdetail": "Job {{ro_number}} | {{app}}", + "jobsdocuments": "Job Documents {{ro_number}} | {{app}}", + "manageroot": "Home | {{app}}", + "my_tasks": "My Tasks", + "owners": "All Owners | {{app}}", + "owners-detail": "{{name}} | {{app}}", + "parts-queue": "Parts Queue | {{app}}", + "payments-all": "Payments | {{app}}", + "phonebook": "Phonebook | {{app}}", + "productionboard": "Production Board - Visual | {{app}}", + "productionlist": "Production Board - List | {{app}}", + "profile": "My Profile | {{app}}", + "readyjobs": "Ready Jobs | {{app}}", + "resetpassword": "Reset Password", + "resetpasswordvalidate": "Enter New Password", + "romeonline": "Rome Online", + "schedule": "Schedule | {{app}}", + "scoreboard": "Scoreboard | {{app}}", + "shop": "My Shop | {{app}}", + "shop-csi": "CSI Responses | {{app}}", + "shop-templates": "Shop Templates | {{app}}", + "shop_vendors": "Vendors | {{app}}", + "tasks": "Tasks", + "techconsole": "Technician Console | {{app}}", + "techjobclock": "Technician Job Clock | {{app}}", + "techjoblookup": "Technician Job Lookup | {{app}}", + "techshiftclock": "Technician Shift Clock | {{app}}", + "temporarydocs": "Temporary Documents | {{app}}", + "timetickets": "Time Tickets | {{app}}", + "ttapprovals": "Time Ticket Approvals | {{app}}", + "vehicledetail": "Vehicle Details {{vehicle}} | {{app}}", + "vehicles": "All Vehicles | {{app}}" + }, + "trello": { + "labels": { + "add_card": "Add Card", + "add_lane": "Add Lane", + "cancel": "Cancel", + "delete_lane": "Delete Lane", + "description": "Description", + "label": "Label", + "lane_actions": "Lane Actions", + "title": "Title" + } + }, + "tt_approvals": { + "actions": { + "approveselected": "Approve Selected" + }, + "labels": { + "approval_queue_in_use": "Time tickets will be added to the approval queue.", + "calculate": "Calculate" + } + }, + "upsell": { + "cta": { + "learnmore": "Learn More" + }, + "messages": { + "accounting": { + "payables": { + "subtitle": "Effortlessly send your bills and payables to QuickBooks Online or QuickBooks Desktop eliminating the need for duplicate data entry.", + "title": "Eliminate double data entry" + }, + "payments": { + "subtitle": "Effortlessly send your bills and payables to QuickBooks Online or QuickBooks Desktop eliminating the need for duplicate data entry.", + "title": "Eliminate double data entry" + }, + "receivables": { + "subtitle": "Effortlessly send your invoices to QuickBooks Online or QuickBooks Desktop eliminating the need for duplicate data entry.", + "title": "Eliminate double data entry" + } + }, + "audit": { + "general": { + "subtitle": "Know exactly what happened and when through the entire repair process.", + "title": "Comprehensive Audit Trails" + } + }, + "bills": { + "autoreconcile": { + "subtitle": "Let your management system do the tedious work - take advantage of automatic job reconciliation today.", + "title": "Did you account for every invoice?" + }, + "general": { + "subtitle": "Our Bills module allows you to precisely account for every penny on the repair order to ensure you maximize your bottom line.", + "title": "Boost your profits by taking control of costs!" + } + }, + "checklist": { + "general": { + "subtitle": "Standardize your intake and delivery with digitized checklists and SOPs.", + "title": "Done right, the first time." + } + }, + "courtesycars": { + "general": { + "subtitle": "Keep track of vehicles and contracts for your courtesy cars, all seamlessly synchronized with your Jobs.", + "title": "Manage your fleet with ease" + } + }, + "csi": { + "general": { + "subtitle": "With our integrated CSI module, send follow up surveys to your customers to see how well you did.", + "title": "See what your customers have to say" + } + }, + "dashboard": { + "general": { + "subtitle": "Make data based decisions and take control of your business using our real-time dashboard.", + "title": "Realtime Insight & Analytics" + } + }, + "lifecycle": { + "general": { + "subtitle": "Job life cycles tell you exactly how long the job stayed in each stage of the repair process to identify bottle necks and inefficiencies.", + "title": "Are your repair KPIs suffering?" + } + }, + "media": { + "general": { + "subtitle": "Store your vehicle repair documentation, invoices, and related documents digitally to access them anywhere, any time.", + "title": "Go paperless." + }, + "mobile": { + "subtitle": "Use our mobile app to attach images from your device to the job, increasing your efficiency.", + "title": "Accelerate repair documentation with Mobile" + } + }, + "payments": { + "general": { + "subtitle": "Manage outstanding balances and collect payments by credit card from your customers.", + "title": "Integrated Accounts Receivable & Payments" + } + }, + "scoreboard": { + "general": { + "subtitle": "Understand hours produced and sold to facilitate employee incentive programs.", + "title": "Give credit where credit is due" + } + }, + "smartscheduling": { + "datepicker": { + "subtitle": "Smart Scsheduling gives you the best dates for a vehicle to come in based on your current and predicted production load.", + "title": "When's the best time for this job to arrive?" + }, + "general": { + "subtitle": "Know exactly how busy you will be tomorrow, the day after, or next week to know exactly when to schedule your next repair.", + "title": "Forecast your production with Smart Scheduling" + }, + "hrsdelta": { + "subtitle": "Understand changes to your Work in Progress and production load instantly.", + "title": "Cars come and cars go." + } + }, + "techconsole": { + "general": { + "subtitle": "The technician's console allows technicians to see job information, media, documents and keep track of their time.", + "title": "Empower your Technicians" + } + }, + "timetickets": { + "allocations": { + "subtitle": "Ensure your technicians are paid out exactly what they are owed - not a penny less, not a penny more.", + "title": "Technician Payments Done Just Right" + }, + "general": { + "subtitle": "Track your technicians time with precision, giving you insight to repair progress and labor efficiency.", + "title": "Who did what and for how long?" + } + }, + "visualboard": { + "general": { + "subtitle": "The Visual Production Board makes it easier than ever before to manage your work in progress.", + "title": "A whole new kind of production board" + } + } + } + }, + "user": { + "actions": { + "changepassword": "Change Password", + "signout": "Sign Out", + "updateprofile": "Update Profile" + }, + "errors": { + "updating": "Error updating user or association {{message}}" + }, + "fields": { + "authlevel": "Authorization Level", + "displayname": "Display Name", + "email": "Email", + "photourl": "Avatar URL" + }, + "labels": { + "actions": "Actions", + "changepassword": "Change Password", + "profileinfo": "Profile Info" + }, + "successess": { + "passwordchanged": "Password changed successfully. " + } + }, + "users": { + "errors": { + "signinerror": { + "auth/user-disabled": "User account disabled. ", + "auth/user-not-found": "A user with this email does not exist.", + "auth/wrong-password": "The email and password combination you provided is incorrect." + } + } + }, + "vehicles": { + "errors": { + "deleting": "Error deleting vehicle. {{error}}.", + "noaccess": "The vehicle does not exist or you do not have access to it.", + "selectexistingornew": "Select an existing vehicle record or create a new one. ", + "validation": "Please ensure all fields are entered correctly.", + "validationtitle": "Validation Error" + }, + "fields": { + "description": "Vehicle Description", + "notes": "Vehicle Notes", + "plate_no": "License Plate", + "plate_st": "Plate Jurisdiction", + "trim_color": "Trim Color", + "v_bstyle": "Body Style", + "v_color": "Color", + "v_cond": "Condition", + "v_engine": "Engine", + "v_make_desc": "Make", + "v_makecode": "Make Code", + "v_mldgcode": "Molding Code", + "v_model_desc": "Model", + "v_model_yr": "Year", + "v_options": "Options", + "v_paint_codes": "Paint Codes {{number}}", + "v_prod_dt": "Production Date", + "v_stage": "Stage", + "v_tone": "Tone", + "v_trimcode": "Trim Code", + "v_type": "Type", + "v_vin": "V.I.N." + }, + "forms": { + "detail": "Vehicle Details", + "misc": "Miscellaneous", + "registration": "Registration" + }, + "labels": { + "deleteconfirm": "Are you sure you want to delete this vehicle? This cannot be undone.", + "fromvehicle": "Historical Vehicle Record", + "novehinfo": "No Vehicle Information", + "relatedjobs": "Related Jobs", + "updatevehicle": "Update Vehicle Information" + }, + "successes": { + "delete": "Vehicle deleted successfully.", + "save": "Vehicle saved successfully." + } + }, + "vendors": { + "actions": { + "addtophonebook": "Add to Phonebook", + "new": "New Vendor", + "newpreferredmake": "New Preferred Make" + }, + "errors": { + "deleting": "Error encountered while deleting vendor. ", + "saving": "Error encountered while saving vendor. " + }, + "fields": { + "active": "Active", + "am": "Aftermarket", + "city": "City", + "cost_center": "Cost Center", + "country": "Country", + "discount": "Discount % (as decimal)", + "display_name": "Display Name", + "dmsid": "DMS ID", + "due_date": "Payment Due Date (# of days)", + "email": "Contact Email", + "favorite": "Favorite?", + "lkq": "LKQ", + "make": "Make", + "name": "Vendor Name", + "oem": "OEM", + "phone": "Phone", + "prompt_discount": "Prompt Discount %", + "state": "Province/State", + "street1": "Street", + "street2": "Address 2", + "taxid": "Tax ID", + "terms": "Payment Terms", + "zip": "Zip/Postal Code" + }, + "labels": { + "noneselected": "No vendor is selected.", + "preferredmakes": "Preferred Makes for Vendor", + "search": "Type a Vendor's Name" + }, + "successes": { + "deleted": "Vendor deleted successfully. ", + "saved": "Vendor saved successfully." + }, + "validation": { + "unique_vendor_name": "You must enter a unique vendor name." + } + } + } } diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index d0e2b1687..6b7f66387 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1,262 +1,262 @@ { - "translation": { - "allocations": { - "actions": { - "assign": "Asignar" - }, - "errors": { - "deleting": "", - "saving": "", - "validation": "" - }, - "fields": { - "employee": "Asignado a" - }, - "successes": { - "deleted": "", - "save": "" - } - }, - "appointments": { - "actions": { - "block": "", - "calculate": "", - "cancel": "Cancelar", - "intake": "Consumo", - "new": "Nueva cita", - "preview": "", - "reschedule": "Reprogramar", - "sendreminder": "", - "unblock": "", - "viewjob": "Ver trabajo" - }, - "errors": { - "blocking": "", - "canceling": "Error al cancelar la cita. {{message}}", - "saving": "Error al programar la cita. {{message}}" - }, - "fields": { - "alt_transport": "", - "color": "", - "end": "", - "note": "", - "start": "", - "time": "", - "title": "Título" - }, - "labels": { - "arrivedon": "Llegado el:", - "arrivingjobs": "", - "blocked": "", - "cancelledappointment": "Cita cancelada para:", - "completingjobs": "", - "dataconsistency": "", - "expectedjobs": "", - "expectedprodhrs": "", - "history": "", - "inproduction": "", - "manualevent": "", - "noarrivingjobs": "", - "nocompletingjobs": "", - "nodateselected": "No se ha seleccionado ninguna fecha.", - "priorappointments": "Nombramientos previos", - "reminder": "", - "scheduledfor": "Cita programada para:", - "severalerrorsfound": "", - "smartscheduling": "", - "smspaymentreminder": "", - "suggesteddates": "" - }, - "successes": { - "canceled": "Cita cancelada con éxito.", - "created": "Cita programada con éxito.", - "saved": "" - } - }, - "associations": { - "actions": { - "activate": "Activar" - }, - "fields": { - "active": "¿Activo?", - "shopname": "Nombre de tienda" - }, - "labels": { - "actions": "Comportamiento" - } - }, - "audit": { - "fields": { - "cc": "", - "contents": "", - "created": "", - "operation": "", - "status": "", - "subject": "", - "to": "", - "useremail": "", - "values": "" - } - }, - "audit_trail": { - "messages": { - "admin_job_remove_from_ar": "", - "admin_jobmarkexported": "", - "admin_jobmarkforreexport": "", - "admin_jobuninvoice": "", - "admin_jobunvoid": "", - "alerttoggle": "", - "appointmentcancel": "", - "appointmentinsert": "", - "assignedlinehours": "", - "billdeleted": "", - "billposted": "", - "billupdated": "", - "failedpayment": "", - "jobassignmentchange": "", - "jobassignmentremoved": "", - "jobchecklist": "", - "jobclosedwithbypass": "", - "jobconverted": "", - "jobdelivery": "", - "jobexported": "", - "jobfieldchanged": "", - "jobimported": "", - "jobinproductionchange": "", - "jobintake": "", - "jobinvoiced": "", - "jobioucreated": "", - "jobmodifylbradj": "", - "jobnoteadded": "", - "jobnotedeleted": "", - "jobnoteupdated": "", - "jobspartsorder": "", - "jobspartsreturn": "", - "jobstatuschange": "", - "jobsupplement": "", - "jobsuspend": "", - "jobvoid": "", - "tasks_completed": "", - "tasks_created": "", - "tasks_deleted": "", - "tasks_uncompleted": "", - "tasks_undeleted": "", - "tasks_updated": "" - } - }, - "billlines": { - "actions": { - "newline": "" - }, - "fields": { - "actual_cost": "", - "actual_price": "", - "cost_center": "", - "federal_tax_applicable": "", - "jobline": "", - "line_desc": "", - "local_tax_applicable": "", - "location": "", - "quantity": "", - "state_tax_applicable": "" - }, - "labels": { - "deductedfromlbr": "", - "entered": "", - "from": "", - "mod_lbr_adjustment": "", - "other": "", - "reconciled": "", - "unreconciled": "" - }, - "validation": { - "atleastone": "" - } - }, - "bills": { - "actions": { - "deductallhours": "", - "edit": "", - "receive": "", - "return": "" - }, - "errors": { - "creating": "", - "deleting": "", - "existinginventoryline": "", - "exporting": "", - "exporting-partner": "", - "invalidro": "", - "invalidvendor": "", - "validation": "" - }, - "fields": { - "allpartslocation": "", - "date": "", - "exported": "", - "federal_tax_rate": "", - "invoice_number": "", - "is_credit_memo": "", - "is_credit_memo_short": "", - "local_tax_rate": "", - "ro_number": "", - "state_tax_rate": "", - "total": "", - "vendor": "", - "vendorname": "" - }, - "labels": { - "actions": "", - "bill_lines": "", - "bill_total": "", - "billcmtotal": "", - "bills": "", - "calculatedcreditsnotreceived": "", - "creditsnotreceived": "", - "creditsreceived": "", - "dedfromlbr": "", - "deleteconfirm": "", - "discrepancy": "", - "discrepwithcms": "", - "discrepwithlbradj": "", - "editadjwarning": "", - "entered_total": "", - "enteringcreditmemo": "", - "federal_tax": "", - "federal_tax_exempt": "", - "generatepartslabel": "", - "iouexists": "", - "local_tax": "", - "markexported": "", - "markforreexport": "", - "new": "", - "nobilllines": "", - "noneselected": "", - "onlycmforinvoiced": "", - "printlabels": "", - "retailtotal": "", - "returnfrombill": "", - "savewithdiscrepancy": "", - "state_tax": "", - "subtotal": "", - "totalreturns": "" - }, - "successes": { - "created": "", - "deleted": "", - "exported": "", - "markexported": "", - "reexport": "" - }, - "validation": { - "closingperiod": "", - "inventoryquantity": "", - "manualinhouse": "", - "unique_invoice_number": "" - } - }, - "bodyshop": { - "operations": { + "translation": { + "allocations": { + "actions": { + "assign": "Asignar" + }, + "errors": { + "deleting": "", + "saving": "", + "validation": "" + }, + "fields": { + "employee": "Asignado a" + }, + "successes": { + "deleted": "", + "save": "" + } + }, + "appointments": { + "actions": { + "block": "", + "calculate": "", + "cancel": "Cancelar", + "intake": "Consumo", + "new": "Nueva cita", + "preview": "", + "reschedule": "Reprogramar", + "sendreminder": "", + "unblock": "", + "viewjob": "Ver trabajo" + }, + "errors": { + "blocking": "", + "canceling": "Error al cancelar la cita. {{message}}", + "saving": "Error al programar la cita. {{message}}" + }, + "fields": { + "alt_transport": "", + "color": "", + "end": "", + "note": "", + "start": "", + "time": "", + "title": "Título" + }, + "labels": { + "arrivedon": "Llegado el:", + "arrivingjobs": "", + "blocked": "", + "cancelledappointment": "Cita cancelada para:", + "completingjobs": "", + "dataconsistency": "", + "expectedjobs": "", + "expectedprodhrs": "", + "history": "", + "inproduction": "", + "manualevent": "", + "noarrivingjobs": "", + "nocompletingjobs": "", + "nodateselected": "No se ha seleccionado ninguna fecha.", + "priorappointments": "Nombramientos previos", + "reminder": "", + "scheduledfor": "Cita programada para:", + "severalerrorsfound": "", + "smartscheduling": "", + "smspaymentreminder": "", + "suggesteddates": "" + }, + "successes": { + "canceled": "Cita cancelada con éxito.", + "created": "Cita programada con éxito.", + "saved": "" + } + }, + "associations": { + "actions": { + "activate": "Activar" + }, + "fields": { + "active": "¿Activo?", + "shopname": "Nombre de tienda" + }, + "labels": { + "actions": "Comportamiento" + } + }, + "audit": { + "fields": { + "cc": "", + "contents": "", + "created": "", + "operation": "", + "status": "", + "subject": "", + "to": "", + "useremail": "", + "values": "" + } + }, + "audit_trail": { + "messages": { + "admin_job_remove_from_ar": "", + "admin_jobmarkexported": "", + "admin_jobmarkforreexport": "", + "admin_jobuninvoice": "", + "admin_jobunvoid": "", + "alerttoggle": "", + "appointmentcancel": "", + "appointmentinsert": "", + "assignedlinehours": "", + "billdeleted": "", + "billposted": "", + "billupdated": "", + "failedpayment": "", + "jobassignmentchange": "", + "jobassignmentremoved": "", + "jobchecklist": "", + "jobclosedwithbypass": "", + "jobconverted": "", + "jobdelivery": "", + "jobexported": "", + "jobfieldchanged": "", + "jobimported": "", + "jobinproductionchange": "", + "jobintake": "", + "jobinvoiced": "", + "jobioucreated": "", + "jobmodifylbradj": "", + "jobnoteadded": "", + "jobnotedeleted": "", + "jobnoteupdated": "", + "jobspartsorder": "", + "jobspartsreturn": "", + "jobstatuschange": "", + "jobsupplement": "", + "jobsuspend": "", + "jobvoid": "", + "tasks_completed": "", + "tasks_created": "", + "tasks_deleted": "", + "tasks_uncompleted": "", + "tasks_undeleted": "", + "tasks_updated": "" + } + }, + "billlines": { + "actions": { + "newline": "" + }, + "fields": { + "actual_cost": "", + "actual_price": "", + "cost_center": "", + "federal_tax_applicable": "", + "jobline": "", + "line_desc": "", + "local_tax_applicable": "", + "location": "", + "quantity": "", + "state_tax_applicable": "" + }, + "labels": { + "deductedfromlbr": "", + "entered": "", + "from": "", + "mod_lbr_adjustment": "", + "other": "", + "reconciled": "", + "unreconciled": "" + }, + "validation": { + "atleastone": "" + } + }, + "bills": { + "actions": { + "deductallhours": "", + "edit": "", + "receive": "", + "return": "" + }, + "errors": { + "creating": "", + "deleting": "", + "existinginventoryline": "", + "exporting": "", + "exporting-partner": "", + "invalidro": "", + "invalidvendor": "", + "validation": "" + }, + "fields": { + "allpartslocation": "", + "date": "", + "exported": "", + "federal_tax_rate": "", + "invoice_number": "", + "is_credit_memo": "", + "is_credit_memo_short": "", + "local_tax_rate": "", + "ro_number": "", + "state_tax_rate": "", + "total": "", + "vendor": "", + "vendorname": "" + }, + "labels": { + "actions": "", + "bill_lines": "", + "bill_total": "", + "billcmtotal": "", + "bills": "", + "calculatedcreditsnotreceived": "", + "creditsnotreceived": "", + "creditsreceived": "", + "dedfromlbr": "", + "deleteconfirm": "", + "discrepancy": "", + "discrepwithcms": "", + "discrepwithlbradj": "", + "editadjwarning": "", + "entered_total": "", + "enteringcreditmemo": "", + "federal_tax": "", + "federal_tax_exempt": "", + "generatepartslabel": "", + "iouexists": "", + "local_tax": "", + "markexported": "", + "markforreexport": "", + "new": "", + "nobilllines": "", + "noneselected": "", + "onlycmforinvoiced": "", + "printlabels": "", + "retailtotal": "", + "returnfrombill": "", + "savewithdiscrepancy": "", + "state_tax": "", + "subtotal": "", + "totalreturns": "" + }, + "successes": { + "created": "", + "deleted": "", + "exported": "", + "markexported": "", + "reexport": "" + }, + "validation": { + "closingperiod": "", + "inventoryquantity": "", + "manualinhouse": "", + "unique_invoice_number": "" + } + }, + "bodyshop": { + "operations": { "starts_with": "", "contains": "", "ends_with": "", @@ -266,3361 +266,3488 @@ "less_than": "" }, "actions": { - "add_task_preset": "", - "addapptcolor": "", - "addbucket": "", - "addpartslocation": "", - "addpartsrule": "", - "addspeedprint": "", - "addtemplate": "", - "newlaborrate": "", - "newsalestaxcode": "", - "newstatus": "", - "testrender": "" - }, - "errors": { - "creatingdefaultview": "", - "loading": "No se pueden cargar los detalles de la tienda. Por favor llame al soporte técnico.", - "saving": "" - }, - "fields": { - "ReceivableCustomField": "", - "address1": "", - "address2": "", - "appt_alt_transport": "", - "appt_colors": { - "color": "", - "label": "" - }, - "appt_length": "", - "attach_pdf_to_email": "", - "batchid": "", - "bill_allow_post_to_closed": "", - "bill_federal_tax_rate": "", - "bill_local_tax_rate": "", - "bill_state_tax_rate": "", - "city": "", - "closingperiod": "", - "companycode": "", - "country": "", - "dailybodytarget": "", - "dailypainttarget": "", - "default_adjustment_rate": "", - "deliver": { - "require_actual_delivery_date": "", - "templates": "" - }, - "dms": { - "apcontrol": "", - "appostingaccount": "", - "cashierid": "", - "default_journal": "", - "disablebillwip": "", - "disablecontactvehiclecreation": "", - "dms_acctnumber": "", - "dms_control_override": "", - "dms_wip_acctnumber": "", - "generic_customer_number": "", - "itc_federal": "", - "itc_local": "", - "itc_state": "", - "mappingname": "", - "sendmaterialscosting": "", - "srcco": "" - }, - "email": "", - "enforce_class": "", - "enforce_conversion_category": "", - "enforce_conversion_csr": "", - "enforce_referral": "", - "federal_tax_id": "", - "ignoreblockeddays": "", - "inhousevendorid": "", - "insurance_vendor_id": "", - "intake": { - "next_contact_hours": "", - "templates": "" - }, - "intellipay_config": { - "cash_discount_percentage": "", - "enable_cash_discount": "" - }, - "invoice_federal_tax_rate": "", - "invoice_local_tax_rate": "", - "invoice_state_tax_rate": "", - "jc_hourly_rates": { - "mapa": "", - "mash": "" - }, - "last_name_first": "", - "lastnumberworkingdays": "", - "localmediaserverhttp": "", - "localmediaservernetwork": "", - "localmediatoken": "", - "logo_img_footer_margin": "", - "logo_img_header_margin": "", - "logo_img_path": "", - "logo_img_path_height": "", - "logo_img_path_width": "", - "md_categories": "", - "md_ccc_rates": "", - "md_classes": "", - "md_ded_notes": "", - "md_email_cc": "", - "md_from_emails": "", - "md_functionality_toggles": { - "parts_queue_toggle": "" - }, - "md_hour_split": { - "paint": "", - "prep": "" - }, - "md_ins_co": { - "city": "", - "name": "", - "private": "", - "state": "", - "street1": "", - "street2": "", - "zip": "" - }, - "md_jobline_presets": "", - "md_lost_sale_reasons": "", - "md_parts_order_comment": "", - "md_parts_scan": { - "field": "", - "operation": "", + "add_task_preset": "", + "addapptcolor": "", + "addbucket": "", + "addpartslocation": "", + "addpartsrule": "", + "addspeedprint": "", + "addtemplate": "", + "newlaborrate": "", + "newsalestaxcode": "", + "newstatus": "", + "testrender": "" + }, + "errors": { + "creatingdefaultview": "", + "loading": "No se pueden cargar los detalles de la tienda. Por favor llame al soporte técnico.", + "saving": "" + }, + "fields": { + "ReceivableCustomField": "", + "address1": "", + "address2": "", + "appt_alt_transport": "", + "appt_colors": { + "color": "", + "label": "" + }, + "appt_length": "", + "attach_pdf_to_email": "", + "batchid": "", + "bill_allow_post_to_closed": "", + "bill_federal_tax_rate": "", + "bill_local_tax_rate": "", + "bill_state_tax_rate": "", + "city": "", + "closingperiod": "", + "companycode": "", + "country": "", + "dailybodytarget": "", + "dailypainttarget": "", + "default_adjustment_rate": "", + "deliver": { + "require_actual_delivery_date": "", + "templates": "" + }, + "dms": { + "apcontrol": "", + "appostingaccount": "", + "cashierid": "", + "default_journal": "", + "disablebillwip": "", + "disablecontactvehiclecreation": "", + "dms_acctnumber": "", + "dms_control_override": "", + "dms_wip_acctnumber": "", + "generic_customer_number": "", + "itc_federal": "", + "itc_local": "", + "itc_state": "", + "mappingname": "", + "sendmaterialscosting": "", + "srcco": "" + }, + "email": "", + "enforce_class": "", + "enforce_conversion_category": "", + "enforce_conversion_csr": "", + "enforce_referral": "", + "federal_tax_id": "", + "ignoreblockeddays": "", + "inhousevendorid": "", + "insurance_vendor_id": "", + "intake": { + "next_contact_hours": "", + "templates": "" + }, + "intellipay_config": { + "cash_discount_percentage": "", + "enable_cash_discount": "" + }, + "invoice_federal_tax_rate": "", + "invoice_local_tax_rate": "", + "invoice_state_tax_rate": "", + "jc_hourly_rates": { + "mapa": "", + "mash": "" + }, + "last_name_first": "", + "lastnumberworkingdays": "", + "localmediaserverhttp": "", + "localmediaservernetwork": "", + "localmediatoken": "", + "logo_img_footer_margin": "", + "logo_img_header_margin": "", + "logo_img_path": "", + "logo_img_path_height": "", + "logo_img_path_width": "", + "md_categories": "", + "md_ccc_rates": "", + "md_classes": "", + "md_ded_notes": "", + "md_email_cc": "", + "md_from_emails": "", + "md_functionality_toggles": { + "parts_queue_toggle": "" + }, + "md_hour_split": { + "paint": "", + "prep": "" + }, + "md_ins_co": { + "city": "", + "name": "", + "private": "", + "state": "", + "street1": "", + "street2": "", + "zip": "" + }, + "md_jobline_presets": "", + "md_lost_sale_reasons": "", + "md_parts_order_comment": "", + "md_parts_scan": { + "field": "", + "operation": "", "value": "", "caseInsensitive": "" - }, - "md_payment_types": "", - "md_referral_sources": "", - "md_ro_guard": { - "enabled": "", - "enforce_ar": "", - "enforce_bills": "", - "enforce_cm": "", - "enforce_labor": "", - "enforce_ppd": "", - "enforce_profit": "", - "enforce_sublet": "", - "masterbypass": "", - "totalgppercent_minimum": "" - }, - "md_tasks_presets": { - "enable_tasks": "", - "hourstype": "", - "memo": "", - "name": "", - "nextstatus": "", - "percent": "", - "use_approvals": "" - }, - "messaginglabel": "", - "messagingtext": "", - "noteslabel": "", - "notestext": "", - "partslocation": "", - "phone": "", - "prodtargethrs": "", - "rbac": { - "accounting": { - "exportlog": "", - "payables": "", - "payments": "", - "receivables": "" - }, - "bills": { - "delete": "", - "enter": "", - "list": "", - "reexport": "", - "view": "" - }, - "contracts": { - "create": "", - "detail": "", - "list": "" - }, - "courtesycar": { - "create": "", - "detail": "", - "list": "" - }, - "csi": { - "export": "", - "page": "" - }, - "employee_teams": { - "page": "" - }, - "employees": { - "page": "" - }, - "inventory": { - "delete": "", - "list": "" - }, - "jobs": { - "admin": "", - "available-list": "", - "checklist-view": "", - "close": "", - "create": "", - "deliver": "", - "detail": "", - "intake": "", - "list-active": "", - "list-all": "", - "list-ready": "", - "partsqueue": "", - "void": "" - }, - "owners": { - "detail": "", - "list": "" - }, - "payments": { - "enter": "", - "list": "" - }, - "phonebook": { - "edit": "", - "view": "" - }, - "production": { - "board": "", - "list": "" - }, - "schedule": { - "view": "" - }, - "scoreboard": { - "view": "" - }, - "shiftclock": { - "view": "" - }, - "shop": { - "config": "", - "dashboard": "", - "rbac": "", - "reportcenter": "", - "templates": "", - "vendors": "" - }, - "temporarydocs": { - "view": "" - }, - "timetickets": { - "edit": "", - "editcommitted": "", - "enter": "", - "list": "", - "shiftedit": "" - }, - "ttapprovals": { - "approve": "", - "view": "" - }, - "users": { - "editaccess": "" - } - }, - "responsibilitycenter": "", - "responsibilitycenter_accountdesc": "", - "responsibilitycenter_accountitem": "", - "responsibilitycenter_accountname": "", - "responsibilitycenter_accountnumber": "", - "responsibilitycenter_rate": "", - "responsibilitycenter_tax_rate": "", - "responsibilitycenter_tax_sur": "", - "responsibilitycenter_tax_thres": "", - "responsibilitycenter_tax_tier": "", - "responsibilitycenter_tax_type": "", - "responsibilitycenters": { - "ap": "", - "ar": "", - "ats": "", - "federal_tax": "", - "federal_tax_itc": "", - "gst_override": "", - "invoiceexemptcode": "", - "itemexemptcode": "", - "la1": "", - "la2": "", - "la3": "", - "la4": "", - "laa": "", - "lab": "", - "lad": "", - "lae": "", - "laf": "", - "lag": "", - "lam": "", - "lar": "", - "las": "", - "lau": "", - "local_tax": "", - "mapa": "", - "mash": "", - "paa": "", - "pac": "", - "pag": "", - "pal": "", - "pam": "", - "pan": "", - "pao": "", - "pap": "", - "par": "", - "pas": "", - "pasl": "", - "refund": "", - "sales_tax_codes": { - "code": "", - "description": "", - "federal": "", - "local": "", - "state": "" - }, - "state_tax": "", - "tow": "" - }, - "schedule_end_time": "", - "schedule_start_time": "", - "shopname": "", - "speedprint": { - "id": "", - "label": "", - "templates": "" - }, - "ss_configuration": { - "dailyhrslimit": "" - }, - "ssbuckets": { - "color": "", - "gte": "", - "id": "", - "label": "", - "lt": "", - "target": "" - }, - "state": "", - "state_tax_id": "", - "status": "", - "statuses": { - "active_statuses": "", - "additional_board_statuses": "", - "color": "", - "default_arrived": "", - "default_bo": "", - "default_canceled": "", - "default_completed": "", - "default_delivered": "", - "default_exported": "", - "default_imported": "", - "default_invoiced": "", - "default_ordered": "", - "default_quote": "", - "default_received": "", - "default_returned": "", - "default_scheduled": "", - "default_void": "", - "open_statuses": "", - "post_production_statuses": "", - "pre_production_statuses": "", - "production_colors": "", - "production_statuses": "", - "ready_statuses": "" - }, - "target_touchtime": "", - "timezone": "", - "tt_allow_post_to_invoiced": "", - "tt_enforce_hours_for_tech_console": "", - "use_fippa": "", - "use_paint_scale_data": "", - "uselocalmediaserver": "", - "website": "", - "zip_post": "" - }, - "labels": { - "2tiername": "", - "2tiersetup": "", - "2tiersource": "", - "accountingsetup": "", - "accountingtiers": "", - "alljobstatuses": "", - "allopenjobstatuses": "", - "apptcolors": "", - "businessinformation": "", - "checklists": "", - "csiq": "", - "customtemplates": "", - "defaultcostsmapping": "", - "defaultprofitsmapping": "", - "deliverchecklist": "", - "dms": { - "cdk": { - "controllist": "", - "payers": "" - }, - "cdk_dealerid": "", - "costsmapping": "", - "dms_allocations": "", - "pbs_serialnumber": "", - "profitsmapping": "", - "title": "" - }, - "emaillater": "", - "employee_teams": "", - "employees": "", - "estimators": "", - "filehandlers": "", - "imexpay": "", - "insurancecos": "", - "intakechecklist": "", - "intellipay_cash_discount": "", - "jobstatuses": "", - "laborrates": "", - "licensing": "", - "md_parts_scan": "", - "md_ro_guard": "", - "md_tasks_presets": "", - "md_to_emails": "", - "md_to_emails_emails": "", - "messagingpresets": "", - "notemplatesavailable": "", - "notespresets": "", - "orderstatuses": "", - "partslocations": "", - "partsscan": "", - "printlater": "", - "qbo": "", - "qbo_departmentid": "", - "qbo_usa": "", - "rbac": "", - "responsibilitycenters": { - "costs": "", - "profits": "", - "sales_tax_codes": "", - "tax_accounts": "", - "title": "", - "ttl_adjustment": "", - "ttl_tax_adjustment": "" - }, - "roguard": { - "title": "" - }, - "romepay": "", - "scheduling": "", - "scoreboardsetup": "", - "shopinfo": "", - "speedprint": "", - "ssbuckets": "", - "systemsettings": "", - "task-presets": "", - "workingdays": "" - }, - "successes": { - "areyousure": "", - "defaultviewcreated": "", - "save": "", - "unsavedchanges": "" - }, - "validation": { - "centermustexist": "", - "larsplit": "", - "useremailmustexist": "" - } - }, - "checklist": { - "actions": { - "printall": "" - }, - "errors": { - "complete": "", - "nochecklist": "" - }, - "labels": { - "addtoproduction": "", - "allow_text_message": "", - "checklist": "", - "printpack": "", - "removefromproduction": "" - }, - "successes": { - "completed": "" - } - }, - "contracts": { - "actions": { - "changerate": "", - "convertoro": "", - "decodelicense": "", - "find": "", - "printcontract": "", - "senddltoform": "" - }, - "errors": { - "fetchingjobinfo": "", - "returning": "", - "saving": "", - "selectjobandcar": "" - }, - "fields": { - "actax": "", - "actualreturn": "", - "agreementnumber": "", - "cc_cardholder": "", - "cc_expiry": "", - "cc_num": "", - "cleanupcharge": "", - "coverage": "", - "dailyfreekm": "", - "dailyrate": "", - "damage": "", - "damagewaiver": "", - "driver": "", - "driver_addr1": "", - "driver_addr2": "", - "driver_city": "", - "driver_dlexpiry": "", - "driver_dlnumber": "", - "driver_dlst": "", - "driver_dob": "", - "driver_fn": "", - "driver_ln": "", - "driver_ph1": "", - "driver_state": "", - "driver_zip": "", - "excesskmrate": "", - "federaltax": "", - "fuelin": "", - "fuelout": "", - "kmend": "", - "kmstart": "", - "length": "", - "localtax": "", - "refuelcharge": "", - "scheduledreturn": "", - "start": " ", - "statetax": "", - "status": "" - }, - "labels": { - "agreement": "", - "availablecars": "", - "cardueforservice": "", - "convertform": { - "applycleanupcharge": "", - "refuelqty": "" - }, - "correctdataonform": "", - "dateinpast": "", - "dlexpirebeforereturn": "", - "driverinformation": "", - "findcontract": "", - "findermodal": "", - "insuranceexpired": "", - "noteconvertedfrom": "", - "populatefromjob": "", - "rates": "", - "time": "", - "vehicle": "", - "waitingforscan": "" - }, - "status": { - "new": "", - "out": "", - "returned": "" - }, - "successes": { - "saved": "" - } - }, - "courtesycars": { - "actions": { - "new": "", - "return": "" - }, - "errors": { - "saving": "" - }, - "fields": { - "color": "", - "dailycost": "", - "damage": "", - "fleetnumber": "", - "fuel": "", - "insuranceexpires": "", - "leaseenddate": "", - "make": "", - "mileage": "", - "model": "", - "nextservicedate": "", - "nextservicekm": "", - "notes": "", - "plate": "", - "purchasedate": "", - "readiness": "", - "registrationexpires": "", - "serviceenddate": "", - "servicestartdate": "", - "status": "", - "vin": "", - "year": "" - }, - "labels": { - "courtesycar": "", - "fuel": { - "12": "", - "14": "", - "18": "", - "34": "", - "38": "", - "58": "", - "78": "", - "empty": "", - "full": "" - }, - "outwith": "", - "return": "", - "status": "", - "uniquefleet": "", - "usage": "", - "vehicle": "" - }, - "readiness": { - "notready": "", - "ready": "" - }, - "status": { - "in": "", - "inservice": "", - "leasereturn": "", - "out": "", - "sold": "", - "unavailable": "" - }, - "successes": { - "saved": "" - } - }, - "csi": { - "actions": { - "activate": "" - }, - "errors": { - "creating": "", - "notconfigured": "", - "notfoundsubtitle": "", - "notfoundtitle": "", - "surveycompletesubtitle": "", - "surveycompletetitle": "" - }, - "fields": { - "completedon": "", - "created_at": "", - "surveyid": "", - "validuntil": "" - }, - "labels": { - "copyright": "", - "greeting": "", - "intro": "", - "nologgedinuser": "", - "nologgedinuser_sub": "", - "noneselected": "", - "title": "" - }, - "successes": { - "created": "", - "submitted": "", - "submittedsub": "" - } - }, - "dashboard": { - "actions": { - "addcomponent": "" - }, - "errors": { - "refreshrequired": "", - "updatinglayout": "" - }, - "labels": { - "bodyhrs": "", - "dollarsinproduction": "", - "phone": "", - "prodhrs": "", - "refhrs": "" - }, - "titles": { - "joblifecycle": "", - "labhours": "", - "larhours": "", - "monthlyemployeeefficiency": "", - "monthlyjobcosting": "", - "monthlylaborsales": "", - "monthlypartssales": "", - "monthlyrevenuegraph": "", - "prodhrssummary": "", - "productiondollars": "", - "productionhours": "", - "projectedmonthlysales": "", - "scheduledindate": "", - "scheduledintoday": "", - "scheduledoutdate": "", - "scheduledouttoday": "", - "tasks": "" - } - }, - "dms": { - "errors": { - "alreadyexported": "" - }, - "labels": { - "refreshallocations": "" - } - }, - "documents": { - "actions": { - "delete": "", - "download": "", - "reassign": "", - "selectallimages": "", - "selectallotherdocuments": "" - }, - "errors": { - "deletes3": "Error al eliminar el documento del almacenamiento.", - "deleting": "", - "deleting_cloudinary": "", - "getpresignurl": "Error al obtener la URL prescrita para el documento. {{message}}", - "insert": "Incapaz de cargar el archivo. {{message}}", - "nodocuments": "No hay documentos", - "updating": "" - }, - "labels": { - "confirmdelete": "", - "doctype": "", - "newjobid": "", - "openinexplorer": "", - "optimizedimage": "", - "reassign_limitexceeded": "", - "reassign_limitexceeded_title": "", - "storageexceeded": "", - "storageexceeded_title": "", - "upload": "Subir", - "upload_limitexceeded": "", - "upload_limitexceeded_title": "", - "uploading": "", - "usage": "" - }, - "successes": { - "delete": "Documento eliminado con éxito.", - "edituploaded": "", - "insert": "Documento cargado con éxito.", - "updated": "" - } - }, - "emails": { - "errors": { - "notsent": "Correo electrónico no enviado Se encontró un error al enviar {{message}}" - }, - "fields": { - "cc": "", - "from": "", - "subject": "", - "to": "" - }, - "labels": { - "attachments": "", - "documents": "", - "emailpreview": "", - "generatingemail": "", - "pdfcopywillbeattached": "", - "preview": "" - }, - "successes": { - "sent": "Correo electrónico enviado con éxito." - } - }, - "employee_teams": { - "actions": { - "new": "", - "newmember": "" - }, - "fields": { - "active": "", - "employeeid": "", - "max_load": "", - "name": "", - "percentage": "" - } - }, - "employees": { - "actions": { - "addvacation": "", - "new": "Nuevo empleado", - "newrate": "" - }, - "errors": { - "delete": "Se encontró un error al eliminar al empleado. {{message}}", - "save": "Se encontró un error al salvar al empleado. {{message}}", - "validation": "Por favor verifique todos los campos.", - "validationtitle": "No se puede salvar al empleado." - }, - "fields": { - "active": "¿Activo?", - "base_rate": "Tasa básica", - "cost_center": "Centro de costos", - "employee_number": "Numero de empleado", - "external_id": "", - "first_name": "Nombre de pila", - "flat_rate": "Tarifa plana (deshabilitado es tiempo recto)", - "hire_date": "Fecha de contratación", - "last_name": "Apellido", - "pin": "", - "rate": "", - "termination_date": "Fecha de conclusión", - "user_email": "", - "vacation": { - "end": "", - "length": "", - "start": "" - } - }, - "labels": { - "actions": "", - "active": "", - "endmustbeafterstart": "", - "flat_rate": "", - "inactive": "", - "name": "", - "rate_type": "", - "status": "", - "straight_time": "" - }, - "successes": { - "delete": "Empleado eliminado con éxito.", - "save": "Empleado guardado con éxito.", - "vacationadded": "" - }, - "validation": { - "unique_employee_number": "" - } - }, - "eula": { - "buttons": { - "accept": "Accept EULA" - }, - "content": { - "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." - }, - "errors": { - "acceptance": { - "description": "Something went wrong while accepting the EULA. Please try again.", - "message": "Eula Acceptance Error" - } - }, - "labels": { - "accepted_terms": "I accept the terms and conditions of this agreement.", - "address": "Address", - "business_name": "Legal Business Name", - "date_accepted": "Date Accepted", - "first_name": "First Name", - "last_name": "Last Name", - "phone_number": "Phone Number" - }, - "messages": { - "accepted_terms": "Please accept the terms and conditions of this agreement.", - "business_name": "Please enter your legal business name.", - "date_accepted": "Please enter Today's Date.", - "first_name": "Please enter your first name.", - "last_name": "Please enter your last name.", - "phone_number": "Please enter your phone number." - }, - "titles": { - "modal": "Terms and Conditions", - "upper_card": "Acknowledgement" - } - }, - "exportlogs": { - "fields": { - "createdat": "" - }, - "labels": { - "attempts": "", - "priorsuccesfulexport": "" - } - }, - "general": { - "actions": { - "add": "", - "autoupdate": "", - "calculate": "", - "cancel": "", - "clear": "", - "close": "", - "copied": "", - "copylink": "", - "create": "", - "defaults": "defaults", - "delay": "", - "delete": "Borrar", - "deleteall": "", - "deselectall": "", - "download": "", - "edit": "Editar", - "login": "", - "next": "", - "previous": "", - "print": "", - "refresh": "", - "remove": "", - "remove_alert": "", - "reset": " Restablecer a original.", - "resetpassword": "", - "save": "Salvar", - "saveandnew": "", - "saveas": "", - "selectall": "", - "send": "", - "sendbysms": "", - "senderrortosupport": "", - "submit": "", - "tryagain": "", - "view": "", - "viewreleasenotes": "" - }, - "errors": { - "fcm": "", - "notfound": "", - "sizelimit": "" - }, - "itemtypes": { - "contract": "", - "courtesycar": "", - "job": "", - "owner": "", - "vehicle": "" - }, - "labels": { - "actions": "Comportamiento", - "areyousure": "", - "barcode": "código de barras", - "cancel": "", - "clear": "", - "confirmpassword": "", - "created_at": "", - "date": "", - "datetime": "", - "email": "", - "errors": "", - "excel": "", - "exceptiontitle": "", - "friday": "", - "globalsearch": "", - "help": "", - "hours": "", - "in": "en", - "instanceconflictext": "", - "instanceconflictitle": "", - "item": "", - "label": "", - "loading": "Cargando...", - "loadingapp": "Cargando {{app}}", - "loadingshop": "Cargando datos de la tienda ...", - "loggingin": "Iniciando sesión ...", - "markedexported": "", - "media": "", - "message": "", - "monday": "", - "na": "N / A", - "newpassword": "", - "no": "", - "nointernet": "", - "nointernet_sub": "", - "none": "", - "out": "Afuera", - "password": "", - "passwordresetsuccess": "", - "passwordresetsuccess_sub": "", - "passwordresetvalidatesuccess": "", - "passwordresetvalidatesuccess_sub": "", - "passwordsdonotmatch": "", - "print": "", - "refresh": "", - "reports": "", - "required": "", - "saturday": "", - "search": "Buscar...", - "searchresults": "", - "selectdate": "", - "sendagain": "", - "sendby": "", - "signin": "", - "sms": "", - "status": "", - "sub_status": { - "expired": "" - }, - "successful": "", - "sunday": "", - "text": "", - "thursday": "", + }, + "md_payment_types": "", + "md_referral_sources": "", + "md_ro_guard": { + "enabled": "", + "enforce_ar": "", + "enforce_bills": "", + "enforce_cm": "", + "enforce_labor": "", + "enforce_ppd": "", + "enforce_profit": "", + "enforce_sublet": "", + "masterbypass": "", + "totalgppercent_minimum": "" + }, + "md_tasks_presets": { + "enable_tasks": "", + "hourstype": "", + "memo": "", + "name": "", + "nextstatus": "", + "percent": "", + "use_approvals": "" + }, + "messaginglabel": "", + "messagingtext": "", + "noteslabel": "", + "notestext": "", + "partslocation": "", + "phone": "", + "prodtargethrs": "", + "rbac": { + "accounting": { + "exportlog": "", + "payables": "", + "payments": "", + "receivables": "" + }, + "bills": { + "delete": "", + "enter": "", + "list": "", + "reexport": "", + "view": "" + }, + "contracts": { + "create": "", + "detail": "", + "list": "" + }, + "courtesycar": { + "create": "", + "detail": "", + "list": "" + }, + "csi": { + "export": "", + "page": "" + }, + "employee_teams": { + "page": "" + }, + "employees": { + "page": "" + }, + "inventory": { + "delete": "", + "list": "" + }, + "jobs": { + "admin": "", + "available-list": "", + "checklist-view": "", + "close": "", + "create": "", + "deliver": "", + "detail": "", + "intake": "", + "list-active": "", + "list-all": "", + "list-ready": "", + "partsqueue": "", + "void": "" + }, + "owners": { + "detail": "", + "list": "" + }, + "payments": { + "enter": "", + "list": "" + }, + "phonebook": { + "edit": "", + "view": "" + }, + "production": { + "board": "", + "list": "" + }, + "schedule": { + "view": "" + }, + "scoreboard": { + "view": "" + }, + "shiftclock": { + "view": "" + }, + "shop": { + "config": "", + "dashboard": "", + "rbac": "", + "reportcenter": "", + "templates": "", + "vendors": "" + }, + "temporarydocs": { + "view": "" + }, + "timetickets": { + "edit": "", + "editcommitted": "", + "enter": "", + "list": "", + "shiftedit": "" + }, + "ttapprovals": { + "approve": "", + "view": "" + }, + "users": { + "editaccess": "" + } + }, + "responsibilitycenter": "", + "responsibilitycenter_accountdesc": "", + "responsibilitycenter_accountitem": "", + "responsibilitycenter_accountname": "", + "responsibilitycenter_accountnumber": "", + "responsibilitycenter_rate": "", + "responsibilitycenter_tax_rate": "", + "responsibilitycenter_tax_sur": "", + "responsibilitycenter_tax_thres": "", + "responsibilitycenter_tax_tier": "", + "responsibilitycenter_tax_type": "", + "responsibilitycenters": { + "ap": "", + "ar": "", + "ats": "", + "federal_tax": "", + "federal_tax_itc": "", + "gst_override": "", + "invoiceexemptcode": "", + "itemexemptcode": "", + "la1": "", + "la2": "", + "la3": "", + "la4": "", + "laa": "", + "lab": "", + "lad": "", + "lae": "", + "laf": "", + "lag": "", + "lam": "", + "lar": "", + "las": "", + "lau": "", + "local_tax": "", + "mapa": "", + "mash": "", + "paa": "", + "pac": "", + "pag": "", + "pal": "", + "pam": "", + "pan": "", + "pao": "", + "pap": "", + "par": "", + "pas": "", + "pasl": "", + "refund": "", + "sales_tax_codes": { + "code": "", + "description": "", + "federal": "", + "local": "", + "state": "" + }, + "state_tax": "", + "tow": "" + }, + "schedule_end_time": "", + "schedule_start_time": "", + "shopname": "", + "speedprint": { + "id": "", + "label": "", + "templates": "" + }, + "ss_configuration": { + "dailyhrslimit": "" + }, + "ssbuckets": { + "color": "", + "gte": "", + "id": "", + "label": "", + "lt": "", + "target": "" + }, + "state": "", + "state_tax_id": "", + "status": "", + "statuses": { + "active_statuses": "", + "additional_board_statuses": "", + "color": "", + "default_arrived": "", + "default_bo": "", + "default_canceled": "", + "default_completed": "", + "default_delivered": "", + "default_exported": "", + "default_imported": "", + "default_invoiced": "", + "default_ordered": "", + "default_quote": "", + "default_received": "", + "default_returned": "", + "default_scheduled": "", + "default_void": "", + "open_statuses": "", + "post_production_statuses": "", + "pre_production_statuses": "", + "production_colors": "", + "production_statuses": "", + "ready_statuses": "" + }, + "target_touchtime": "", + "timezone": "", + "tt_allow_post_to_invoiced": "", + "tt_enforce_hours_for_tech_console": "", + "use_fippa": "", + "use_paint_scale_data": "", + "uselocalmediaserver": "", + "website": "", + "zip_post": "" + }, + "labels": { + "2tiername": "", + "2tiersetup": "", + "2tiersource": "", + "accountingsetup": "", + "accountingtiers": "", + "alljobstatuses": "", + "allopenjobstatuses": "", + "apptcolors": "", + "businessinformation": "", + "checklists": "", + "csiq": "", + "customtemplates": "", + "defaultcostsmapping": "", + "defaultprofitsmapping": "", + "deliverchecklist": "", + "dms": { + "cdk": { + "controllist": "", + "payers": "" + }, + "cdk_dealerid": "", + "costsmapping": "", + "dms_allocations": "", + "pbs_serialnumber": "", + "profitsmapping": "", + "title": "" + }, + "emaillater": "", + "employee_teams": "", + "employees": "", + "estimators": "", + "filehandlers": "", + "imexpay": "", + "insurancecos": "", + "intakechecklist": "", + "intellipay_cash_discount": "", + "jobstatuses": "", + "laborrates": "", + "licensing": "", + "md_parts_scan": "", + "md_ro_guard": "", + "md_tasks_presets": "", + "md_to_emails": "", + "md_to_emails_emails": "", + "messagingpresets": "", + "notemplatesavailable": "", + "notespresets": "", + "orderstatuses": "", + "partslocations": "", + "partsscan": "", + "printlater": "", + "qbo": "", + "qbo_departmentid": "", + "qbo_usa": "", + "rbac": "", + "responsibilitycenters": { + "costs": "", + "profits": "", + "sales_tax_codes": "", + "tax_accounts": "", + "title": "", + "ttl_adjustment": "", + "ttl_tax_adjustment": "" + }, + "roguard": { + "title": "" + }, + "romepay": "", + "scheduling": "", + "scoreboardsetup": "", + "shopinfo": "", + "speedprint": "", + "ssbuckets": "", + "systemsettings": "", + "task-presets": "", + "workingdays": "" + }, + "successes": { + "areyousure": "", + "defaultviewcreated": "", + "save": "", + "unsavedchanges": "" + }, + "validation": { + "centermustexist": "", + "larsplit": "", + "useremailmustexist": "" + } + }, + "checklist": { + "actions": { + "printall": "" + }, + "errors": { + "complete": "", + "nochecklist": "" + }, + "labels": { + "addtoproduction": "", + "allow_text_message": "", + "checklist": "", + "printpack": "", + "removefromproduction": "" + }, + "successes": { + "completed": "" + } + }, + "contracts": { + "actions": { + "changerate": "", + "convertoro": "", + "decodelicense": "", + "find": "", + "printcontract": "", + "senddltoform": "" + }, + "errors": { + "fetchingjobinfo": "", + "returning": "", + "saving": "", + "selectjobandcar": "" + }, + "fields": { + "actax": "", + "actualreturn": "", + "agreementnumber": "", + "cc_cardholder": "", + "cc_expiry": "", + "cc_num": "", + "cleanupcharge": "", + "coverage": "", + "dailyfreekm": "", + "dailyrate": "", + "damage": "", + "damagewaiver": "", + "driver": "", + "driver_addr1": "", + "driver_addr2": "", + "driver_city": "", + "driver_dlexpiry": "", + "driver_dlnumber": "", + "driver_dlst": "", + "driver_dob": "", + "driver_fn": "", + "driver_ln": "", + "driver_ph1": "", + "driver_state": "", + "driver_zip": "", + "excesskmrate": "", + "federaltax": "", + "fuelin": "", + "fuelout": "", + "kmend": "", + "kmstart": "", + "length": "", + "localtax": "", + "refuelcharge": "", + "scheduledreturn": "", + "start": " ", + "statetax": "", + "status": "" + }, + "labels": { + "agreement": "", + "availablecars": "", + "cardueforservice": "", + "convertform": { + "applycleanupcharge": "", + "refuelqty": "" + }, + "correctdataonform": "", + "dateinpast": "", + "dlexpirebeforereturn": "", + "driverinformation": "", + "findcontract": "", + "findermodal": "", + "insuranceexpired": "", + "noteconvertedfrom": "", + "populatefromjob": "", + "rates": "", "time": "", - "total": "", - "totals": "", - "tuesday": "", - "tvmode": "", - "unknown": "Desconocido", - "unsavedchanges": "", - "username": "", - "view": "", - "wednesday": "", - "yes": "" - }, - "languages": { - "english": "Inglés", - "french": "francés", - "spanish": "español" - }, - "messages": { - "exception": "", - "newversionmessage": "", - "newversiontitle": "", - "noacctfilepath": "", - "nofeatureaccess": "", - "noshop": "", - "notfoundsub": "", - "notfoundtitle": "", - "partnernotrunning": "", - "rbacunauth": "", - "unsavedchanges": "Usted tiene cambios no guardados.", - "unsavedchangespopup": "" - }, - "validation": { - "dateRangeExceeded": "", - "invalidemail": "Por favor introduzca una dirección de correo electrónico válida.", - "invalidphone": "", - "required": "Este campo es requerido." - } - }, - "help": { - "actions": { - "connect": "" - }, - "labels": { - "codeplacholder": "", - "rescuedesc": "", - "rescuetitle": "" - } - }, - "intake": { - "labels": { - "printpack": "" - } - }, - "inventory": { - "actions": { - "addtoinventory": "", - "addtoro": "", - "consumefrominventory": "", - "edit": "", - "new": "" - }, - "errors": { - "inserting": "" - }, - "fields": { - "comment": "", - "manualinvoicenumber": "", - "manualvendor": "" - }, - "labels": { - "consumedbyjob": "", - "deleteconfirm": "", - "frombillinvoicenumber": "", - "fromvendor": "", - "inventory": "", - "showall": "", - "showavailable": "" - }, - "successes": { - "deleted": "", - "inserted": "", - "updated": "" - } - }, - "job_lifecycle": { - "columns": { + "vehicle": "", + "waitingforscan": "" + }, + "status": { + "new": "", + "out": "", + "returned": "" + }, + "successes": { + "saved": "" + } + }, + "courtesycars": { + "actions": { + "new": "", + "return": "" + }, + "errors": { + "saving": "" + }, + "fields": { + "color": "", + "dailycost": "", + "damage": "", + "fleetnumber": "", + "fuel": "", + "insuranceexpires": "", + "leaseenddate": "", + "make": "", + "mileage": "", + "model": "", + "nextservicedate": "", + "nextservicekm": "", + "notes": "", + "plate": "", + "purchasedate": "", + "readiness": "", + "registrationexpires": "", + "serviceenddate": "", + "servicestartdate": "", + "status": "", + "vin": "", + "year": "" + }, + "labels": { + "courtesycar": "", + "fuel": { + "12": "", + "14": "", + "18": "", + "34": "", + "38": "", + "58": "", + "78": "", + "empty": "", + "full": "" + }, + "outwith": "", + "return": "", + "status": "", + "uniquefleet": "", + "usage": "", + "vehicle": "" + }, + "readiness": { + "notready": "", + "ready": "" + }, + "status": { + "in": "", + "inservice": "", + "leasereturn": "", + "out": "", + "sold": "", + "unavailable": "" + }, + "successes": { + "saved": "" + } + }, + "csi": { + "actions": { + "activate": "" + }, + "errors": { + "creating": "", + "notconfigured": "", + "notfoundsubtitle": "", + "notfoundtitle": "", + "surveycompletesubtitle": "", + "surveycompletetitle": "" + }, + "fields": { + "completedon": "", + "created_at": "", + "surveyid": "", + "validuntil": "" + }, + "labels": { + "copyright": "", + "greeting": "", + "intro": "", + "nologgedinuser": "", + "nologgedinuser_sub": "", + "noneselected": "", + "title": "" + }, + "successes": { + "created": "", + "submitted": "", + "submittedsub": "" + } + }, + "dashboard": { + "actions": { + "addcomponent": "" + }, + "errors": { + "refreshrequired": "", + "updatinglayout": "" + }, + "labels": { + "bodyhrs": "", + "dollarsinproduction": "", + "phone": "", + "prodhrs": "", + "refhrs": "" + }, + "titles": { + "joblifecycle": "", + "labhours": "", + "larhours": "", + "monthlyemployeeefficiency": "", + "monthlyjobcosting": "", + "monthlylaborsales": "", + "monthlypartssales": "", + "monthlyrevenuegraph": "", + "prodhrssummary": "", + "productiondollars": "", + "productionhours": "", + "projectedmonthlysales": "", + "scheduledindate": "", + "scheduledintoday": "", + "scheduledoutdate": "", + "scheduledouttoday": "", + "tasks": "" + } + }, + "dms": { + "errors": { + "alreadyexported": "" + }, + "labels": { + "refreshallocations": "" + } + }, + "documents": { + "actions": { + "delete": "", + "download": "", + "reassign": "", + "selectallimages": "", + "selectallotherdocuments": "" + }, + "errors": { + "deletes3": "Error al eliminar el documento del almacenamiento.", + "deleting": "", + "deleting_cloudinary": "", + "getpresignurl": "Error al obtener la URL prescrita para el documento. {{message}}", + "insert": "Incapaz de cargar el archivo. {{message}}", + "nodocuments": "No hay documentos", + "updating": "" + }, + "labels": { + "confirmdelete": "", + "doctype": "", + "dragtoupload": "", + "newjobid": "", + "openinexplorer": "", + "optimizedimage": "", + "reassign_limitexceeded": "", + "reassign_limitexceeded_title": "", + "storageexceeded": "", + "storageexceeded_title": "", + "upload": "Subir", + "upload_limitexceeded": "", + "upload_limitexceeded_title": "", + "uploading": "", + "usage": "" + }, + "successes": { + "delete": "Documento eliminado con éxito.", + "edituploaded": "", + "insert": "Documento cargado con éxito.", + "updated": "" + } + }, + "emails": { + "errors": { + "notsent": "Correo electrónico no enviado Se encontró un error al enviar {{message}}" + }, + "fields": { + "cc": "", + "from": "", + "subject": "", + "to": "" + }, + "labels": { + "attachments": "", + "documents": "", + "emailpreview": "", + "generatingemail": "", + "pdfcopywillbeattached": "", + "preview": "" + }, + "successes": { + "sent": "Correo electrónico enviado con éxito." + } + }, + "employee_teams": { + "actions": { + "new": "", + "newmember": "" + }, + "fields": { + "active": "", + "employeeid": "", + "max_load": "", + "name": "", + "percentage": "" + } + }, + "employees": { + "actions": { + "addvacation": "", + "new": "Nuevo empleado", + "newrate": "" + }, + "errors": { + "delete": "Se encontró un error al eliminar al empleado. {{message}}", + "save": "Se encontró un error al salvar al empleado. {{message}}", + "validation": "Por favor verifique todos los campos.", + "validationtitle": "No se puede salvar al empleado." + }, + "fields": { + "active": "¿Activo?", + "base_rate": "Tasa básica", + "cost_center": "Centro de costos", + "employee_number": "Numero de empleado", + "external_id": "", + "first_name": "Nombre de pila", + "flat_rate": "Tarifa plana (deshabilitado es tiempo recto)", + "hire_date": "Fecha de contratación", + "last_name": "Apellido", + "pin": "", + "rate": "", + "termination_date": "Fecha de conclusión", + "user_email": "", + "vacation": { + "end": "", + "length": "", + "start": "" + } + }, + "labels": { + "actions": "", + "active": "", + "endmustbeafterstart": "", + "flat_rate": "", + "inactive": "", + "name": "", + "rate_type": "", + "status": "", + "straight_time": "" + }, + "successes": { + "delete": "Empleado eliminado con éxito.", + "save": "Empleado guardado con éxito.", + "vacationadded": "" + }, + "validation": { + "unique_employee_number": "" + } + }, + "eula": { + "buttons": { + "accept": "Accept EULA" + }, + "content": { + "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." + }, + "errors": { + "acceptance": { + "description": "Something went wrong while accepting the EULA. Please try again.", + "message": "Eula Acceptance Error" + } + }, + "labels": { + "accepted_terms": "I accept the terms and conditions of this agreement.", + "address": "Address", + "business_name": "Legal Business Name", + "date_accepted": "Date Accepted", + "first_name": "First Name", + "last_name": "Last Name", + "phone_number": "Phone Number" + }, + "messages": { + "accepted_terms": "Please accept the terms and conditions of this agreement.", + "business_name": "Please enter your legal business name.", + "date_accepted": "Please enter Today's Date.", + "first_name": "Please enter your first name.", + "last_name": "Please enter your last name.", + "phone_number": "Please enter your phone number." + }, + "titles": { + "modal": "Terms and Conditions", + "upper_card": "Acknowledgement" + } + }, + "exportlogs": { + "fields": { + "createdat": "" + }, + "labels": { + "attempts": "", + "priorsuccesfulexport": "" + } + }, + "general": { + "actions": { + "add": "", + "autoupdate": "", + "calculate": "", + "cancel": "", + "clear": "", + "close": "", + "copied": "", + "copylink": "", + "create": "", + "defaults": "defaults", + "delay": "", + "delete": "Borrar", + "deleteall": "", + "deselectall": "", + "download": "", + "edit": "Editar", + "login": "", + "next": "", + "previous": "", + "print": "", + "refresh": "", + "remove": "", + "remove_alert": "", + "reset": " Restablecer a original.", + "resetpassword": "", + "save": "Salvar", + "saveandnew": "", + "saveas": "", + "selectall": "", + "send": "", + "sendbysms": "", + "senderrortosupport": "", + "submit": "", + "tryagain": "", + "view": "", + "viewreleasenotes": "" + }, + "errors": { + "fcm": "", + "notfound": "", + "sizelimit": "" + }, + "itemtypes": { + "contract": "", + "courtesycar": "", + "job": "", + "owner": "", + "vehicle": "" + }, + "labels": { + "actions": "Comportamiento", + "areyousure": "", + "barcode": "código de barras", + "cancel": "", + "clear": "", + "confirmpassword": "", + "created_at": "", + "date": "", + "datetime": "", + "email": "", + "errors": "", + "excel": "", + "exceptiontitle": "", + "friday": "", + "globalsearch": "", + "help": "", + "hours": "", + "in": "en", + "instanceconflictext": "", + "instanceconflictitle": "", + "item": "", + "label": "", + "loading": "Cargando...", + "loadingapp": "Cargando {{app}}", + "loadingshop": "Cargando datos de la tienda ...", + "loggingin": "Iniciando sesión ...", + "markedexported": "", + "media": "", + "message": "", + "monday": "", + "na": "N / A", + "newpassword": "", + "no": "", + "nointernet": "", + "nointernet_sub": "", + "none": "", + "out": "Afuera", + "password": "", + "passwordresetsuccess": "", + "passwordresetsuccess_sub": "", + "passwordresetvalidatesuccess": "", + "passwordresetvalidatesuccess_sub": "", + "passwordsdonotmatch": "", + "print": "", + "refresh": "", + "reports": "", + "required": "", + "saturday": "", + "search": "Buscar...", + "searchresults": "", + "selectdate": "", + "sendagain": "", + "sendby": "", + "signin": "", + "sms": "", + "status": "", + "sub_status": { + "expired": "" + }, + "successful": "", + "sunday": "", + "text": "", + "thursday": "", + "time": "", + "total": "", + "totals": "", + "tuesday": "", + "tvmode": "", + "unknown": "Desconocido", + "unsavedchanges": "", + "username": "", + "view": "", + "wednesday": "", + "yes": "" + }, + "languages": { + "english": "Inglés", + "french": "francés", + "spanish": "español" + }, + "messages": { + "exception": "", + "newversionmessage": "", + "newversiontitle": "", + "noacctfilepath": "", + "nofeatureaccess": "", + "noshop": "", + "notfoundsub": "", + "notfoundtitle": "", + "partnernotrunning": "", + "rbacunauth": "", + "unsavedchanges": "Usted tiene cambios no guardados.", + "unsavedchangespopup": "" + }, + "validation": { + "dateRangeExceeded": "", + "invalidemail": "Por favor introduzca una dirección de correo electrónico válida.", + "invalidphone": "", + "required": "Este campo es requerido." + } + }, + "help": { + "actions": { + "connect": "" + }, + "labels": { + "codeplacholder": "", + "rescuedesc": "", + "rescuetitle": "" + } + }, + "intake": { + "labels": { + "printpack": "" + } + }, + "inventory": { + "actions": { + "addtoinventory": "", + "addtoro": "", + "consumefrominventory": "", + "edit": "", + "new": "" + }, + "errors": { + "inserting": "" + }, + "fields": { + "comment": "", + "manualinvoicenumber": "", + "manualvendor": "" + }, + "labels": { + "consumedbyjob": "", + "deleteconfirm": "", + "frombillinvoicenumber": "", + "fromvendor": "", + "inventory": "", + "showall": "", + "showavailable": "" + }, + "successes": { + "deleted": "", + "inserted": "", + "updated": "" + } + }, + "job_lifecycle": { + "columns": { "average_human_readable": "", "average_value": "", - "duration": "", - "end": "", - "human_readable": "", - "percentage": "", - "relative_end": "", - "relative_start": "", - "start": "", - "status": "", - "status_count": "", - "value": "" - }, - "content": { - "calculated_based_on": "", - "current_status_accumulated_time": "", - "data_unavailable": "", - "jobs_in_since": "", - "legend_title": "", - "loading": "", - "not_available": "", - "previous_status_accumulated_time": "", - "title": "", - "title_durations": "", - "title_loading": "", - "title_transitions": "" - }, - "errors": { - "fetch": "Error al obtener los datos del ciclo de vida del trabajo" - }, - "titles": { - "dashboard": "", - "top_durations": "" - } - }, - "job_payments": { - "buttons": { - "create_short_link": "", - "goback": "", - "proceedtopayment": "", - "refundpayment": "" - }, - "notifications": { - "error": { - "description": "", - "openingip": "", - "title": "" - } - }, - "titles": { - "amount": "", - "dateOfPayment": "", - "descriptions": "", - "hint": "", - "payer": "", - "payername": "", - "paymentid": "", - "paymentnum": "", - "paymenttype": "", - "refundamount": "", - "transactionid": "" - } - }, - "joblines": { - "actions": { - "assign_team": "", - "converttolabor": "", - "dispatchparts": "", - "new": "" - }, - "errors": { - "creating": "", - "updating": "" - }, - "fields": { - "act_price": "Precio actual", - "act_price_before_ppc": "", - "adjustment": "", - "ah_detail_line": "", - "amount": "", - "assigned_team": "", - "assigned_team_name": "", - "create_ppc": "", - "db_price": "Precio de base de datos", - "lbr_types": { - "LA1": "", - "LA2": "", - "LA3": "", - "LA4": "", - "LAA": "", - "LAB": "", - "LAD": "", - "LAE": "", - "LAF": "", - "LAG": "", - "LAM": "", - "LAR": "", - "LAS": "", - "LAU": "" - }, - "line_desc": "Descripción de línea", - "line_ind": "S#", - "line_no": "", - "location": "", - "mod_lb_hrs": "Horas laborales", - "mod_lbr_ty": "Tipo de trabajo", - "notes": "", - "oem_partno": "OEM parte #", - "alt_partno": "", + "duration": "", + "end": "", + "human_readable": "", + "percentage": "", + "relative_end": "", + "relative_start": "", + "start": "", + "status": "", + "status_count": "", + "value": "" + }, + "content": { + "calculated_based_on": "", + "current_status_accumulated_time": "", + "data_unavailable": "", + "jobs_in_since": "", + "legend_title": "", + "loading": "", + "not_available": "", + "previous_status_accumulated_time": "", + "title": "", + "title_durations": "", + "title_loading": "", + "title_transitions": "" + }, + "errors": { + "fetch": "Error al obtener los datos del ciclo de vida del trabajo" + }, + "titles": { + "dashboard": "", + "top_durations": "" + } + }, + "job_payments": { + "buttons": { + "create_short_link": "", + "goback": "", + "proceedtopayment": "", + "refundpayment": "" + }, + "notifications": { + "error": { + "description": "", + "openingip": "", + "title": "" + } + }, + "titles": { + "amount": "", + "dateOfPayment": "", + "descriptions": "", + "hint": "", + "payer": "", + "payername": "", + "paymentid": "", + "paymentnum": "", + "paymenttype": "", + "refundamount": "", + "transactionid": "" + } + }, + "joblines": { + "actions": { + "assign_team": "", + "converttolabor": "", + "dispatchparts": "", + "new": "" + }, + "errors": { + "creating": "", + "updating": "" + }, + "fields": { + "act_price": "Precio actual", + "act_price_before_ppc": "", + "adjustment": "", + "ah_detail_line": "", + "amount": "", + "assigned_team": "", + "assigned_team_name": "", + "create_ppc": "", + "db_price": "Precio de base de datos", + "lbr_types": { + "LA1": "", + "LA2": "", + "LA3": "", + "LA4": "", + "LAA": "", + "LAB": "", + "LAD": "", + "LAE": "", + "LAF": "", + "LAG": "", + "LAM": "", + "LAR": "", + "LAS": "", + "LAU": "" + }, + "line_desc": "Descripción de línea", + "line_ind": "S#", + "line_no": "", + "location": "", + "mod_lb_hrs": "Horas laborales", + "mod_lbr_ty": "Tipo de trabajo", + "notes": "", + "oem_partno": "OEM parte #", + "alt_partno": "", "op_code_desc": "", - "part_qty": "", - "part_type": "Tipo de parte", - "part_types": { - "CCC": "", - "CCD": "", - "CCDR": "", - "CCF": "", - "CCM": "", - "PAA": "", - "PAC": "", - "PAE": "", - "PAG": "", - "PAL": "", - "PAM": "", - "PAN": "", - "PAO": "", - "PAP": "", - "PAR": "", - "PAS": "", - "PASL": "" - }, - "profitcenter_labor": "", - "profitcenter_part": "", - "prt_dsmk_m": "", - "prt_dsmk_p": "", - "status": "Estado", - "tax_part": "", - "total": "", - "unq_seq": "Seq #" - }, - "labels": { - "adjustmenttobeadded": "", - "billref": "", - "convertedtolabor": "", - "edit": "Línea de edición", - "ioucreated": "", - "new": "Nueva línea", - "nostatus": "", - "presets": "" - }, - "successes": { - "created": "", - "saved": "", - "updated": "" - }, - "validations": { - "ahdetailonlyonuserdefinedtypes": "", - "hrsrequirediflbrtyp": "", - "requiredifparttype": "", - "zeropriceexistingpart": "" - } - }, - "jobs": { - "actions": { - "addDocuments": "Agregar documentos de trabajo", - "addNote": "Añadir la nota", - "addtopartsqueue": "", - "addtoproduction": "", - "addtoscoreboard": "", - "allocate": "", - "autoallocate": "", - "changefilehandler": "", - "changelaborrate": "", - "changestatus": "Cambiar Estado", - "changestimator": "", - "convert": "Convertir", - "createiou": "", - "deliver": "", - "dms": { - "addpayer": "", - "createnewcustomer": "", - "findmakemodelcode": "", - "getmakes": "", - "labels": { - "refreshallocations": "" - }, - "post": "", - "refetchmakesmodels": "", - "usegeneric": "", - "useselected": "" - }, - "dmsautoallocate": "", - "export": "", - "exportcustdata": "", - "exportselected": "", - "filterpartsonly": "", - "generatecsi": "", - "gotojob": "", - "intake": "", - "manualnew": "", - "mark": "", - "markasexported": "", - "markpstexempt": "", - "markpstexemptconfirm": "", - "postbills": "Contabilizar facturas", - "printCenter": "Centro de impresión", - "recalculate": "", - "reconcile": "", - "removefromproduction": "", - "schedule": "Programar", - "sendcsi": "", - "sendpartspricechange": "", - "sendtodms": "", - "sync": "", - "taxprofileoverride": "", - "taxprofileoverride_confirm": "", - "uninvoice": "", - "unvoid": "", - "viewchecklist": "", - "viewdetail": "" - }, - "errors": { - "addingtoproduction": "", - "cannotintake": "", - "closing": "", - "creating": "", - "deleted": "Error al eliminar el trabajo.", - "exporting": "", - "exporting-partner": "", - "invoicing": "", - "noaccess": "Este trabajo no existe o no tiene acceso a él.", - "nodamage": "", - "nodates": "No hay fechas especificadas para este trabajo.", - "nofinancial": "", - "nojobselected": "No hay trabajo seleccionado.", - "noowner": "Ningún propietario asociado.", - "novehicle": "No hay vehículo asociado.", - "partspricechange": "", - "saving": "Se encontró un error al guardar el registro.", - "scanimport": "", - "totalscalc": "", - "updating": "", - "validation": "Asegúrese de que todos los campos se ingresen correctamente.", - "validationtitle": "Error de validacion", - "voiding": "" - }, - "fields": { - "active_tasks": "", - "actual_completion": "Realización real", - "actual_delivery": "Entrega real", - "actual_in": "Real en", - "adjustment_bottom_line": "Ajustes", - "adjustmenthours": "", - "alt_transport": "", - "area_of_damage_impact": { - "10": "", - "11": "", - "12": "", - "13": "", - "14": "", - "15": "", - "16": "", - "25": "", - "26": "", - "27": "", - "28": "", - "34": "", - "01": "", - "02": "", - "03": "", - "04": "", - "05": "", - "06": "", - "07": "", - "08": "", - "09": "" - }, - "auto_add_ats": "", - "ca_bc_pvrt": "", - "ca_customer_gst": "", - "ca_gst_registrant": "", - "category": "", - "ccc": "", - "ccd": "", - "ccdr": "", - "ccf": "", - "ccm": "", - "cieca_id": "CIECA ID", - "cieca_pfl": { - "lbr_adjp": "", - "lbr_tax_in": "", - "lbr_taxp": "", - "lbr_tx_in1": "", - "lbr_tx_in2": "", - "lbr_tx_in3": "", - "lbr_tx_in4": "", - "lbr_tx_in5": "" - }, - "cieca_pfo": { - "stor_t_in1": "", - "stor_t_in2": "", - "stor_t_in3": "", - "stor_t_in4": "", - "stor_t_in5": "", - "tow_t_in1": "", - "tow_t_in2": "", - "tow_t_in3": "", - "tow_t_in4": "", - "tow_t_in5": "" - }, - "claim_total": "Reclamar total", - "class": "", - "clm_no": "Reclamación #", - "clm_total": "Reclamar total", - "comment": "", - "customerowing": "Cliente debido", - "date_estimated": "Fecha estimada", - "date_exported": "Exportado", - "date_invoiced": "Facturado", - "date_last_contacted": "", - "date_lost_sale": "", - "date_next_contact": "", - "date_open": "Abierto", - "date_rentalresp": "", - "date_repairstarted": "", - "date_scheduled": "Programado", - "date_towin": "", - "date_void": "", - "ded_amt": "Deducible", - "ded_note": "", - "ded_status": "Estado deducible", - "depreciation_taxes": "Depreciación / Impuestos", - "dms": { - "address": "", - "amount": "", - "center": "", - "control_type": { - "account_number": "" - }, - "cost": "", - "cost_dms_acctnumber": "", - "dms_make": "", - "dms_model": "", - "dms_model_override": "", - "dms_unsold": "", - "dms_wip_acctnumber": "", - "id": "", - "inservicedate": "", - "journal": "", - "lines": "", - "name1": "", - "payer": { - "amount": "", - "control_type": "", - "controlnumber": "", - "dms_acctnumber": "", - "name": "" - }, - "sale": "", - "sale_dms_acctnumber": "", - "story": "", - "vinowner": "" - }, - "dms_allocation": "", - "driveable": "", - "employee_body": "", - "employee_csr": "Representante de servicio al cliente.", - "employee_csr_writer": "", - "employee_prep": "", - "employee_refinish": "", - "est_addr1": "Dirección del tasador", - "est_co_nm": "Tasador", - "est_ct_fn": "Nombre del tasador", - "est_ct_ln": "Apellido del tasador", - "est_ea": "Correo electrónico del tasador", - "est_ph1": "Número de teléfono del tasador", - "federal_tax_payable": "Impuesto federal por pagar", - "federal_tax_rate": "", - "ins_addr1": "Dirección de Insurance Co.", - "ins_city": "Ciudad de seguros", - "ins_co_id": "ID de la compañía de seguros", - "ins_co_nm": "Nombre de la compañía de seguros", - "ins_co_nm_short": "", - "ins_ct_fn": "Nombre del controlador de archivos", - "ins_ct_ln": "Apellido del manejador de archivos", - "ins_ea": "Correo electrónico del controlador de archivos", - "ins_ph1": "File Handler Phone #", - "intake": { - "label": "", - "max": "", - "min": "", - "name": "", - "required": "", - "type": "" - }, - "invoice_final_note": "", - "kmin": "Kilometraje en", - "kmout": "Kilometraje", - "la1": "", - "la2": "", - "la3": "", - "la4": "", - "laa": "", - "lab": "", - "labor_rate_desc": "Nombre de la tasa laboral", - "lad": "", - "lae": "", - "laf": "", - "lag": "", - "lam": "", - "lar": "", - "las": "", - "lau": "", - "local_tax_rate": "", - "loss_date": "Fecha de pérdida", - "loss_desc": "", - "loss_of_use": "", - "lost_sale_reason": "", - "ma2s": "", - "ma3s": "", - "mabl": "", - "macs": "", - "mahw": "", - "mapa": "", - "mash": "", - "matd": "", - "materials": { - "MAPA": "", - "MASH": "", - "cal_maxdlr": "", - "cal_opcode": "", - "mat_adjp": "", - "mat_taxp": "", - "mat_tx_in1": "", - "mat_tx_in2": "", - "mat_tx_in3": "", - "mat_tx_in4": "", - "mat_tx_in5": "", - "materials": "", - "tax_ind": "" - }, - "other_amount_payable": "Otra cantidad a pagar", - "owner": "Propietario", - "owner_owing": "Cust. Debe", - "ownr_ea": "Email", - "ownr_ph1": "Teléfono 1", - "ownr_ph2": "", - "paa": "", - "pac": "", - "pae": "", - "pag": "", - "pal": "", - "pam": "", - "pan": "", - "pao": "", - "pap": "", - "par": "", - "parts_tax_rates": { - "prt_discp": "", - "prt_mktyp": "", - "prt_mkupp": "", - "prt_tax_in": "", - "prt_tax_rt": "", - "prt_tx_in1": "", - "prt_tx_in2": "", - "prt_tx_in3": "", - "prt_tx_in4": "", - "prt_tx_in5": "", - "prt_tx_ty1": "", - "prt_type": "" - }, - "partsstatus": "", - "pas": "", - "pay_date": "Fecha de Pay", - "phoneshort": "PH", - "po_number": "", - "policy_no": "Política #", - "ponumber": "numero postal", - "production_vars": { - "note": "" - }, - "qb_multiple_payers": { - "amount": "", - "name": "" - }, - "queued_for_parts": "", - "rate_ats": "", - "rate_la1": "Tarifa LA1", - "rate_la2": "Tarifa LA2", - "rate_la3": "Tarifa LA3", - "rate_la4": "Tarifa LA4", - "rate_laa": "Tasa de aluminio", - "rate_lab": "Tasa de trabajo", - "rate_lad": "Tasa de diagnóstico", - "rate_lae": "tarifa eléctrica", - "rate_laf": "Cuadros por segundo", - "rate_lag": "Tasa de vidrio", - "rate_lam": "Tasa mecánica", - "rate_lar": "Tasa de acabado", - "rate_las": "", - "rate_lau": "", - "rate_ma2s": "Velocidad de pintura de 2 etapas", - "rate_ma3s": "Tasa de pintura de 3 etapas", - "rate_mabl": "MABL ??", - "rate_macs": "MACS ??", - "rate_mahw": "Tasa de residuos peligrosos", - "rate_mapa": "Tasa de materiales de pintura", - "rate_mash": "Comprar material de tarifa", - "rate_matd": "Tasa de eliminación de neumáticos", - "referral_source_extra": "", - "referral_source_other": "", - "referralsource": "Fuente de referencia", - "regie_number": "N. ° de registro", - "repairtotal": "Reparación total", - "ro_number": "RO #", - "scheduled_completion": "Finalización programada", - "scheduled_delivery": "Entrega programada", - "scheduled_in": "Programado en", - "selling_dealer": "Distribuidor vendedor", - "selling_dealer_contact": "Contacto con el vendedor", - "servicecar": "Auto de servicio", - "servicing_dealer": "Distribuidor de servicio", - "servicing_dealer_contact": "Servicio Contacto con el concesionario", - "special_coverage_policy": "Política de cobertura especial", - "specialcoveragepolicy": "Política de cobertura especial", - "state_tax_rate": "", - "status": "Estado del trabajo", - "storage_payable": "Almacenamiento ", - "tax_lbr_rt": "", - "tax_levies_rt": "", - "tax_paint_mat_rt": "", - "tax_registration_number": "", - "tax_shop_mat_rt": "", - "tax_str_rt": "", - "tax_sub_rt": "", - "tax_tow_rt": "", + "part_qty": "", + "part_type": "Tipo de parte", + "part_types": { + "CCC": "", + "CCD": "", + "CCDR": "", + "CCF": "", + "CCM": "", + "PAA": "", + "PAC": "", + "PAE": "", + "PAG": "", + "PAL": "", + "PAM": "", + "PAN": "", + "PAO": "", + "PAP": "", + "PAR": "", + "PAS": "", + "PASL": "" + }, + "profitcenter_labor": "", + "profitcenter_part": "", + "prt_dsmk_m": "", + "prt_dsmk_p": "", + "status": "Estado", + "tax_part": "", + "total": "", + "unq_seq": "Seq #" + }, + "labels": { + "adjustmenttobeadded": "", + "billref": "", + "convertedtolabor": "", + "edit": "Línea de edición", + "ioucreated": "", + "new": "Nueva línea", + "nostatus": "", + "presets": "" + }, + "successes": { + "created": "", + "saved": "", + "updated": "" + }, + "validations": { + "ahdetailonlyonuserdefinedtypes": "", + "hrsrequirediflbrtyp": "", + "requiredifparttype": "", + "zeropriceexistingpart": "" + } + }, + "jobs": { + "actions": { + "addDocuments": "Agregar documentos de trabajo", + "addNote": "Añadir la nota", + "addtopartsqueue": "", + "addtoproduction": "", + "addtoscoreboard": "", + "allocate": "", + "autoallocate": "", + "changefilehandler": "", + "changelaborrate": "", + "changestatus": "Cambiar Estado", + "changestimator": "", + "convert": "Convertir", + "createiou": "", + "deliver": "", + "deliver_quick": "", + "dms": { + "addpayer": "", + "createnewcustomer": "", + "findmakemodelcode": "", + "getmakes": "", + "labels": { + "refreshallocations": "" + }, + "post": "", + "refetchmakesmodels": "", + "usegeneric": "", + "useselected": "" + }, + "dmsautoallocate": "", + "export": "", + "exportcustdata": "", + "exportselected": "", + "filterpartsonly": "", + "generatecsi": "", + "gotojob": "", + "intake": "", + "intake_quick": "", + "manualnew": "", + "mark": "", + "markasexported": "", + "markpstexempt": "", + "markpstexemptconfirm": "", + "postbills": "Contabilizar facturas", + "printCenter": "Centro de impresión", + "recalculate": "", + "reconcile": "", + "removefromproduction": "", + "schedule": "Programar", + "sendcsi": "", + "sendpartspricechange": "", + "sendtodms": "", + "sync": "", + "taxprofileoverride": "", + "taxprofileoverride_confirm": "", + "uninvoice": "", + "unvoid": "", + "viewchecklist": "", + "viewdetail": "" + }, + "errors": { + "addingtoproduction": "", + "cannotintake": "", + "closing": "", + "creating": "", + "deleted": "Error al eliminar el trabajo.", + "exporting": "", + "exporting-partner": "", + "invoicing": "", + "noaccess": "Este trabajo no existe o no tiene acceso a él.", + "nodamage": "", + "nodates": "No hay fechas especificadas para este trabajo.", + "nofinancial": "", + "nojobselected": "No hay trabajo seleccionado.", + "noowner": "Ningún propietario asociado.", + "novehicle": "No hay vehículo asociado.", + "partspricechange": "", + "saving": "Se encontró un error al guardar el registro.", + "scanimport": "", + "totalscalc": "", + "updating": "", + "validation": "Asegúrese de que todos los campos se ingresen correctamente.", + "validationtitle": "Error de validacion", + "voiding": "" + }, + "fields": { + "active_tasks": "", + "actual_completion": "Realización real", + "actual_delivery": "Entrega real", + "actual_in": "Real en", + "adjustment_bottom_line": "Ajustes", + "adjustmenthours": "", + "alt_transport": "", + "area_of_damage_impact": { + "10": "", + "11": "", + "12": "", + "13": "", + "14": "", + "15": "", + "16": "", + "25": "", + "26": "", + "27": "", + "28": "", + "34": "", + "01": "", + "02": "", + "03": "", + "04": "", + "05": "", + "06": "", + "07": "", + "08": "", + "09": "" + }, + "auto_add_ats": "", + "ca_bc_pvrt": "", + "ca_customer_gst": "", + "ca_gst_registrant": "", + "category": "", + "ccc": "", + "ccd": "", + "ccdr": "", + "ccf": "", + "ccm": "", + "cieca_id": "CIECA ID", + "cieca_pfl": { + "lbr_adjp": "", + "lbr_tax_in": "", + "lbr_taxp": "", + "lbr_tx_in1": "", + "lbr_tx_in2": "", + "lbr_tx_in3": "", + "lbr_tx_in4": "", + "lbr_tx_in5": "" + }, + "cieca_pfo": { + "stor_t_in1": "", + "stor_t_in2": "", + "stor_t_in3": "", + "stor_t_in4": "", + "stor_t_in5": "", + "tow_t_in1": "", + "tow_t_in2": "", + "tow_t_in3": "", + "tow_t_in4": "", + "tow_t_in5": "" + }, + "claim_total": "Reclamar total", + "class": "", + "clm_no": "Reclamación #", + "clm_total": "Reclamar total", + "comment": "", + "customerowing": "Cliente debido", + "date_estimated": "Fecha estimada", + "date_exported": "Exportado", + "date_invoiced": "Facturado", + "date_last_contacted": "", + "date_lost_sale": "", + "date_next_contact": "", + "date_open": "Abierto", + "date_rentalresp": "", + "date_repairstarted": "", + "date_scheduled": "Programado", + "date_towin": "", + "date_void": "", + "ded_amt": "Deducible", + "ded_note": "", + "ded_status": "Estado deducible", + "depreciation_taxes": "Depreciación / Impuestos", + "dms": { + "address": "", + "amount": "", + "center": "", + "control_type": { + "account_number": "" + }, + "cost": "", + "cost_dms_acctnumber": "", + "dms_make": "", + "dms_model": "", + "dms_model_override": "", + "dms_unsold": "", + "dms_wip_acctnumber": "", + "id": "", + "inservicedate": "", + "journal": "", + "lines": "", + "name1": "", + "payer": { + "amount": "", + "control_type": "", + "controlnumber": "", + "dms_acctnumber": "", + "name": "" + }, + "sale": "", + "sale_dms_acctnumber": "", + "story": "", + "vinowner": "" + }, + "dms_allocation": "", + "driveable": "", + "employee_body": "", + "employee_csr": "Representante de servicio al cliente.", + "employee_csr_writer": "", + "employee_prep": "", + "employee_refinish": "", + "est_addr1": "Dirección del tasador", + "est_co_nm": "Tasador", + "est_ct_fn": "Nombre del tasador", + "est_ct_ln": "Apellido del tasador", + "est_ea": "Correo electrónico del tasador", + "est_ph1": "Número de teléfono del tasador", + "federal_tax_payable": "Impuesto federal por pagar", + "federal_tax_rate": "", + "ins_addr1": "Dirección de Insurance Co.", + "ins_city": "Ciudad de seguros", + "ins_co_id": "ID de la compañía de seguros", + "ins_co_nm": "Nombre de la compañía de seguros", + "ins_co_nm_short": "", + "ins_ct_fn": "Nombre del controlador de archivos", + "ins_ct_ln": "Apellido del manejador de archivos", + "ins_ea": "Correo electrónico del controlador de archivos", + "ins_ph1": "File Handler Phone #", + "intake": { + "label": "", + "max": "", + "min": "", + "name": "", + "required": "", + "type": "" + }, + "invoice_final_note": "", + "kmin": "Kilometraje en", + "kmout": "Kilometraje", + "la1": "", + "la2": "", + "la3": "", + "la4": "", + "laa": "", + "lab": "", + "labor_rate_desc": "Nombre de la tasa laboral", + "lad": "", + "lae": "", + "laf": "", + "lag": "", + "lam": "", + "lar": "", + "las": "", + "lau": "", + "local_tax_rate": "", + "loss_date": "Fecha de pérdida", + "loss_desc": "", + "loss_of_use": "", + "lost_sale_reason": "", + "ma2s": "", + "ma3s": "", + "mabl": "", + "macs": "", + "mahw": "", + "mapa": "", + "mash": "", + "matd": "", + "materials": { + "MAPA": "", + "MASH": "", + "cal_maxdlr": "", + "cal_opcode": "", + "mat_adjp": "", + "mat_taxp": "", + "mat_tx_in1": "", + "mat_tx_in2": "", + "mat_tx_in3": "", + "mat_tx_in4": "", + "mat_tx_in5": "", + "materials": "", + "tax_ind": "" + }, + "other_amount_payable": "Otra cantidad a pagar", + "owner": "Propietario", + "owner_owing": "Cust. Debe", + "ownr_ea": "Email", + "ownr_ph1": "Teléfono 1", + "ownr_ph2": "", + "paa": "", + "pac": "", + "pae": "", + "pag": "", + "pal": "", + "pam": "", + "pan": "", + "pao": "", + "pap": "", + "par": "", + "parts_tax_rates": { + "prt_discp": "", + "prt_mktyp": "", + "prt_mkupp": "", + "prt_tax_in": "", + "prt_tax_rt": "", + "prt_tx_in1": "", + "prt_tx_in2": "", + "prt_tx_in3": "", + "prt_tx_in4": "", + "prt_tx_in5": "", + "prt_tx_ty1": "", + "prt_type": "" + }, + "partsstatus": "", + "pas": "", + "pay_date": "Fecha de Pay", + "phoneshort": "PH", + "po_number": "", + "policy_no": "Política #", + "ponumber": "numero postal", + "production_vars": { + "note": "" + }, + "qb_multiple_payers": { + "amount": "", + "name": "" + }, + "queued_for_parts": "", + "rate_ats": "", + "rate_la1": "Tarifa LA1", + "rate_la2": "Tarifa LA2", + "rate_la3": "Tarifa LA3", + "rate_la4": "Tarifa LA4", + "rate_laa": "Tasa de aluminio", + "rate_lab": "Tasa de trabajo", + "rate_lad": "Tasa de diagnóstico", + "rate_lae": "tarifa eléctrica", + "rate_laf": "Cuadros por segundo", + "rate_lag": "Tasa de vidrio", + "rate_lam": "Tasa mecánica", + "rate_lar": "Tasa de acabado", + "rate_las": "", + "rate_lau": "", + "rate_ma2s": "Velocidad de pintura de 2 etapas", + "rate_ma3s": "Tasa de pintura de 3 etapas", + "rate_mabl": "MABL ??", + "rate_macs": "MACS ??", + "rate_mahw": "Tasa de residuos peligrosos", + "rate_mapa": "Tasa de materiales de pintura", + "rate_mash": "Comprar material de tarifa", + "rate_matd": "Tasa de eliminación de neumáticos", + "referral_source_extra": "", + "referral_source_other": "", + "referralsource": "Fuente de referencia", + "regie_number": "N. ° de registro", + "repairtotal": "Reparación total", + "ro_number": "RO #", + "scheduled_completion": "Finalización programada", + "scheduled_delivery": "Entrega programada", + "scheduled_in": "Programado en", + "selling_dealer": "Distribuidor vendedor", + "selling_dealer_contact": "Contacto con el vendedor", + "servicecar": "Auto de servicio", + "servicing_dealer": "Distribuidor de servicio", + "servicing_dealer_contact": "Servicio Contacto con el concesionario", + "special_coverage_policy": "Política de cobertura especial", + "specialcoveragepolicy": "Política de cobertura especial", + "state_tax_rate": "", + "status": "Estado del trabajo", + "storage_payable": "Almacenamiento ", + "tax_lbr_rt": "", + "tax_levies_rt": "", + "tax_paint_mat_rt": "", + "tax_registration_number": "", + "tax_shop_mat_rt": "", + "tax_str_rt": "", + "tax_sub_rt": "", + "tax_tow_rt": "", "tlos_ind": "", - "towin": "", - "towing_payable": "Remolque a pagar", - "unitnumber": "Unidad #", - "updated_at": "Actualizado en", - "uploaded_by": "Subido por", - "vehicle": "Vehículo" - }, - "forms": { - "admindates": "", - "appraiserinfo": "", - "claiminfo": "", - "estdates": "", - "laborrates": "", - "lossinfo": "", - "other": "", - "repairdates": "", - "scheddates": "" - }, - "labels": { - "accountsreceivable": "", - "act_price_ppc": "", - "actual_completion_inferred": "", - "actual_delivery_inferred": "", - "actual_in_inferred": "", - "additionalpayeroverallocation": "", - "additionaltotal": "", - "adjustmentrate": "", - "adjustments": "", - "adminwarning": "", - "allocations": "", - "alreadyaddedtoscoreboard": "", - "alreadyclosed": "", - "appointmentconfirmation": "¿Enviar confirmación al cliente?", - "associationwarning": "", - "audit": "", - "available": "", - "availablejobs": "", - "ca_bc_pvrt": { - "days": "", - "rate": "" - }, - "ca_gst_all_if_null": "", - "calc_repair_days": "", - "calc_repair_days_tt": "", - "calc_scheuled_completion": "", - "cards": { - "customer": "Información al cliente", - "damage": "Área de Daño", - "dates": "fechas", - "documents": "Documentos recientes", - "estimator": "Estimador", - "filehandler": "File Handler", - "insurance": "detalles del seguro", - "more": "Más", - "notes": "Notas", - "parts": "Partes", - "totals": "Totales", - "vehicle": "Vehículo" - }, - "changeclass": "", - "checklistcompletedby": "", - "checklistdocuments": "", - "checklists": "", - "cieca_pfl": "", - "cieca_pfo": "", - "cieca_pft": "", - "closeconfirm": "", - "closejob": "", - "closingperiod": "", - "contracts": "", - "convertedtolabor": "", - "cost": "", - "cost_Additional": "", - "cost_labor": "", - "cost_parts": "", - "cost_sublet": "", - "costs": "", - "create": { - "jobinfo": "", - "newowner": "", - "newvehicle": "", - "novehicle": "", - "ownerinfo": "", - "vehicleinfo": "" - }, - "createiouwarning": "", - "creating_new_job": "Creando nuevo trabajo ...", - "deductible": { - "stands": "", - "waived": "" - }, - "deleteconfirm": "", - "deletedelivery": "", - "deleteintake": "", - "deliverchecklist": "", - "difference": "", - "diskscan": "", - "dms": { - "apexported": "", - "damageto": "", - "defaultstory": "", - "disablebillwip": "", - "invoicedatefuture": "", - "kmoutnotgreaterthankmin": "", - "logs": "", - "notallocated": "", - "postingform": "", - "totalallocated": "" - }, - "documents": "documentos", - "documents-images": "", - "documents-other": "", - "duplicateconfirm": "", - "emailaudit": "", - "employeeassignments": "", - "estimatelines": "", - "estimator": "", - "existing_jobs": "Empleos existentes", - "federal_tax_amt": "", - "gpdollars": "", - "gppercent": "", - "hrs_claimed": "", - "hrs_total": "", - "importnote": "", - "inproduction": "", - "intakechecklist": "", - "iou": "", - "job": "", - "jobcosting": "", - "jobtotals": "", - "labor_hrs": "", - "labor_rates_subtotal": "", - "laborallocations": "", - "labortotals": "", - "lines": "Líneas estimadas", - "local_tax_amt": "", - "mapa": "", - "markforreexport": "", - "mash": "", - "masterbypass": "", - "materials": { - "mapa": "" - }, - "missingprofileinfo": "", - "multipayers": "", - "net_repairs": "", - "notes": "Notas", - "othertotal": "", - "outstanding_ar": "", - "outstanding_credit_memos": "", - "outstanding_ppd": "", - "outstanding_reconciliation_discrep": "", - "outstanding_sublets": "", - "outstandinghours": "", - "override_header": "¿Anular encabezado estimado al importar?", - "ownerassociation": "", - "parts": "Partes", - "parts_lines": "", - "parts_received": "", - "parts_tax_rates": "", - "partsfilter": "", - "partssubletstotal": "", - "partstotal": "", - "performance": "", - "pimraryamountpayable": "", - "plitooltips": { - "billtotal": "", - "calculatedcreditsnotreceived": "", - "creditmemos": "", - "creditsnotreceived": "", - "discrep1": "", - "discrep2": "", - "discrep3": "", - "laboradj": "", - "partstotal": "", - "totalreturns": "" - }, - "ppc": "", - "ppdnotexported": "", - "profileadjustments": "", - "profitbypassrequired": "", - "profits": "", - "prt_dsmk_total": "", - "rates": "Tarifas", - "rates_subtotal": "", - "reconciliation": { - "billlinestotal": "", - "byassoc": "", - "byprice": "", - "clear": "", - "discrepancy": "", - "joblinestotal": "", - "multipleactprices": "", - "multiplebilllines": "", - "multiplebillsforactprice": "", - "removedpartsstrikethrough": "" - }, - "reconciliationheader": "", - "relatedros": "", - "remove_from_ar": "", - "returntotals": "", - "ro_guard": { - "enforce_ar": "", - "enforce_bills": "", - "enforce_cm": "", - "enforce_labor": "", - "enforce_ppd": "", - "enforce_profit": "", - "enforce_sublet": "", - "enforce_validation": "", - "enforced": "" - }, - "roguard": "", - "roguardwarnings": "", - "rosaletotal": "", - "sale_additional": "", - "sale_labor": "", - "sale_parts": "", - "sale_sublet": "", - "sales": "", - "savebeforeconversion": "", - "scheduledinchange": "", - "specialcoveragepolicy": "", - "state_tax_amt": "", - "subletsnotcompleted": "", - "subletstotal": "", - "subtotal": "", - "supplementnote": "", - "suspended": "", - "suspense": "", - "tasks": "", - "threshhold": "", - "total_cost": "", - "total_cust_payable": "", - "total_cust_payable_cash_discount": "", - "total_repairs": "", - "total_repairs_cash_discount": "", - "total_sales": "", - "total_sales_tax": "", - "totals": "", - "unvoidnote": "", - "update_scheduled_completion": "", - "vehicle_info": "Vehículo", - "vehicleassociation": "", - "viewallocations": "", - "voidjob": "", - "voidnote": "" - }, - "successes": { - "addedtoproduction": "", - "all_deleted": "{{count}} trabajos eliminados con éxito.", - "closed": "", - "converted": "Trabajo convertido con éxito.", - "created": "Trabajo creado con éxito. Click para ver.", - "creatednoclick": "", - "delete": "", - "deleted": "Trabajo eliminado con éxito.", - "duplicated": "", - "exported": "", - "invoiced": "", - "ioucreated": "", - "partsqueue": "", - "save": "Trabajo guardado con éxito.", - "savetitle": "Registro guardado con éxito.", - "supplemented": "Trabajo complementado con éxito.", - "updated": "", - "voided": "" - } - }, - "landing": { - "bigfeature": { - "subtitle": "", - "title": "" - }, - "footer": { - "company": { - "about": "", - "contact": "", - "disclaimers": "", - "name": "", - "privacypolicy": "" - }, - "io": { - "help": "", - "name": "", - "status": "" - }, - "slogan": "" - }, - "hero": { - "button": "", - "title": "" - }, - "labels": { - "features": "", - "managemyshop": "", - "pricing": "" - }, - "pricing": { - "basic": { - "name": "", - "sub": "" - }, - "essentials": { - "name": "", - "sub": "" - }, - "pricingtitle": "", - "pro": { - "name": "", - "sub": "" - }, - "title": "", - "unlimited": { - "name": "", - "sub": "" - } - } - }, - "menus": { - "currentuser": { - "languageselector": "idioma", - "profile": "Perfil" - }, - "header": { - "accounting": "", - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "activejobs": "Empleos activos", - "all_tasks": "", - "alljobs": "", - "allpayments": "", - "availablejobs": "Trabajos disponibles", - "bills": "", - "courtesycars": "", - "courtesycars-all": "", - "courtesycars-contracts": "", - "courtesycars-newcontract": "", - "create_task": "", - "customers": "Clientes", - "dashboard": "", - "enterbills": "", - "entercardpayment": "", - "enterpayment": "", - "entertimeticket": "", - "export": "", - "export-logs": "", - "help": "", - "home": "Casa", - "inventory": "", - "jobs": "Trabajos", - "my_tasks": "", - "newjob": "", - "owners": "propietarios", - "parts-queue": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "readyjobs": "", - "recent": "", - "reportcenter": "", - "rescueme": "", - "schedule": "Programar", - "scoreboard": "", - "search": { - "bills": "", - "jobs": "", - "owners": "", - "payments": "", - "phonebook": "", - "vehicles": "" - }, - "shiftclock": "", - "shop": "Mi tienda", - "shop_config": "Configuración", - "shop_csi": "", - "shop_templates": "", - "shop_vendors": "Vendedores", - "tasks": "", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicles": "Vehículos" - }, - "jobsactions": { - "admin": "", - "cancelallappointments": "", - "closejob": "", - "deletejob": "", - "duplicate": "", - "duplicatenolines": "", - "newcccontract": "", - "void": "" - }, - "jobsdetail": { - "claimdetail": "Detalles de la reclamación", - "dates": "fechas", - "financials": "", - "general": "", - "insurance": "", - "labor": "Labor", - "lifecycle": "", - "parts": "", - "partssublet": "Piezas / Subarrendamiento", - "rates": "", - "repairdata": "Datos de reparación", - "totals": "" - }, - "profilesidebar": { - "profile": "Mi perfil", - "shops": "Mis tiendas" - }, - "tech": { - "assignedjobs": "", - "claimtask": "", - "dispatchedparts": "", - "home": "", - "jobclockin": "", - "jobclockout": "", - "joblookup": "", - "login": "", - "logout": "", - "productionboard": "", - "productionlist": "", - "shiftclockin": "" - } - }, - "messaging": { - "actions": { - "link": "", - "new": "" - }, - "errors": { - "invalidphone": "", - "noattachedjobs": "", - "updatinglabel": "" - }, - "labels": { - "addlabel": "", - "archive": "", - "maxtenimages": "", - "messaging": "Mensajería", - "noallowtxt": "", - "nojobs": "", - "nopush": "", - "phonenumber": "", - "presets": "", - "recentonly": "", - "selectmedia": "", - "sentby": "", - "typeamessage": "Enviar un mensaje...", - "unarchive": "" - }, - "render": { - "conversation_list": "" - } - }, - "notes": { - "actions": { - "actions": "Comportamiento", - "deletenote": "Borrar nota", - "edit": "Editar nota", - "new": "Nueva nota", - "savetojobnotes": "" - }, - "errors": { - "inserting": "" - }, - "fields": { - "createdby": "Creado por", - "critical": "Crítico", - "private": "Privado", - "text": "Contenido", - "type": "", - "types": { - "customer": "", - "general": "", - "office": "", - "paint": "", - "parts": "", - "shop": "", - "supplement": "" - }, - "updatedat": "Actualizado en" - }, - "labels": { - "addtorelatedro": "", - "newnoteplaceholder": "Agrega una nota...", - "notetoadd": "", - "systemnotes": "", - "usernotes": "" - }, - "successes": { - "create": "Nota creada con éxito.", - "deleted": "Nota eliminada con éxito.", - "updated": "Nota actualizada con éxito." - } - }, - "owner": { - "labels": { - "noownerinfo": "" - } - }, - "owners": { - "actions": { - "update": "" - }, - "errors": { - "deleting": "", - "noaccess": "El registro no existe o no tiene acceso a él.", - "saving": "", - "selectexistingornew": "" - }, - "fields": { - "accountingid": "", - "address": "Dirección", - "allow_text_message": "Permiso de texto?", - "name": "Nombre", - "note": "", - "ownr_addr1": "Dirección", - "ownr_addr2": "Dirección 2", - "ownr_city": "ciudad", - "ownr_co_nm": "", - "ownr_ctry": "País", - "ownr_ea": "Email", - "ownr_fn": "Nombre de pila", - "ownr_ln": "Apellido", - "ownr_ph1": "Teléfono 1", - "ownr_ph2": "", - "ownr_st": "Provincia del estado", - "ownr_title": "Título", - "ownr_zip": "código postal", - "preferred_contact": "Método de Contacto Preferido", - "tax_number": "" - }, - "forms": { - "address": "", - "contact": "", - "name": "" - }, - "labels": { - "create_new": "Crea un nuevo registro de propietario.", - "deleteconfirm": "", - "existing_owners": "Propietarios existentes", - "fromclaim": "", - "fromowner": "", - "relatedjobs": "", - "updateowner": "" - }, - "successes": { - "delete": "", - "save": "Propietario guardado con éxito." - } - }, - "parts": { - "actions": { - "order": "Pedido de piezas", - "orderinhouse": "" - } - }, - "parts_dispatch": { - "actions": { - "accept": "" - }, - "errors": { - "accepting": "", - "creating": "" - }, - "fields": { - "number": "", - "percent_accepted": "" - }, - "labels": { - "notyetdispatched": "", - "parts_dispatch": "" - } - }, - "parts_dispatch_lines": { - "fields": { - "accepted_at": "" - } - }, - "parts_orders": { - "actions": { - "backordered": "", - "receive": "", - "receivebill": "" - }, - "errors": { - "associatedbills": "", - "backordering": "", - "creating": "Se encontró un error al crear el pedido de piezas.", - "oec": "", - "saving": "", - "updating": "" - }, - "fields": { - "act_price": "", - "backordered_eta": "", - "backordered_on": "", - "cm_received": "", - "comments": "", - "cost": "", - "db_price": "", - "deliver_by": "", - "job_line_id": "", - "line_desc": "", - "line_remarks": "", - "lineremarks": "Comentarios de línea", - "oem_partno": "", - "order_date": "", - "order_number": "", - "orderedby": "", - "part_type": "", - "quantity": "", - "return": "", - "status": "" - }, - "labels": { - "allpartsto": "", - "confirmdelete": "", - "custompercent": "", - "discount": "", - "email": "Enviar por correo electrónico", - "inthisorder": "Partes en este pedido", - "is_quote": "", - "mark_as_received": "", - "newpartsorder": "", - "notyetordered": "", - "oec": "", - "order_type": "", - "orderhistory": "Historial de pedidos", - "parts_order": "", - "parts_orders": "", - "print": "Mostrar formulario impreso", - "receive": "", - "removefrompartsqueue": "", - "returnpartsorder": "", - "sublet_order": "" - }, - "successes": { - "created": "Pedido de piezas creado con éxito.", - "line_updated": "", - "received": "", - "return_created": "" - } - }, - "payments": { - "actions": { - "generatepaymentlink": "" - }, - "errors": { - "exporting": "", - "exporting-partner": "", - "inserting": "" - }, - "fields": { - "amount": "", - "created_at": "", - "date": "", - "exportedat": "", - "memo": "", - "payer": "", - "paymentnum": "", - "stripeid": "", - "transactionid": "", - "type": "" - }, - "labels": { - "balance": "", - "ca_bc_etf_table": "", - "customer": "", - "edit": "", - "electronicpayment": "", - "external": "", - "findermodal": "", - "insurance": "", - "markexported": "", - "markforreexport": "", - "new": "", - "signup": "", - "smspaymentreminder": "", - "title": "", - "totalpayments": "" - }, - "successes": { - "exported": "", - "markexported": "", - "markreexported": "", - "payment": "", - "paymentupdate": "", - "stripe": "" - } - }, - "phonebook": { - "actions": { - "new": "" - }, - "errors": { - "adding": "", - "saving": "" - }, - "fields": { - "address1": "", - "address2": "", - "category": "", - "city": "", - "company": "", - "country": "", - "email": "", - "fax": "", - "firstname": "", - "lastname": "", - "phone1": "", - "phone2": "", - "state": "" - }, - "labels": { - "noneselected": "", - "onenamerequired": "", - "vendorcategory": "" - }, - "successes": { - "added": "", - "deleted": "", - "saved": "" - } - }, - "printcenter": { - "appointments": { - "appointment_confirmation": "" - }, - "bills": { - "inhouse_invoice": "" - }, - "courtesycarcontract": { - "courtesy_car_contract": "", - "courtesy_car_impound": "", - "courtesy_car_inventory": "", - "courtesy_car_terms": "" - }, - "errors": { - "nocontexttype": "" - }, - "jobs": { - "3rdpartyfields": { - "addr1": "", - "addr2": "", - "addr3": "", - "attn": "", - "city": "", - "custgst": "", - "ded_amt": "", - "depreciation": "", - "other": "", - "ponumber": "", - "refnumber": "", - "sendtype": "", - "state": "", - "zip": "" - }, - "3rdpartypayer": "", - "ab_proof_of_loss": "", - "appointment_confirmation": "", - "appointment_reminder": "", - "casl_authorization": "", - "committed_timetickets_ro": "", - "coversheet_landscape": "", - "coversheet_portrait": "", - "csi_invitation": "", - "csi_invitation_action": "", - "diagnostic_authorization": "", - "dms_posting_sheet": "", - "envelope_return_address": "", - "estimate": "", - "estimate_detail": "", - "estimate_followup": "", - "express_repair_checklist": "", - "filing_coversheet_landscape": "", - "filing_coversheet_portrait": "", - "final_invoice": "", - "fippa_authorization": "", - "folder_label_multiple": "", - "glass_express_checklist": "", - "guarantee": "", - "individual_job_note": "", - "invoice_customer_payable": "", - "invoice_total_payable": "", - "iou_form": "", - "job_costing_ro": "", - "job_lifecycle_ro": "", - "job_notes": "", - "job_tasks": "", - "key_tag": "", - "labels": { - "count": "", - "labels": "", - "position": "" - }, - "lag_time_ro": "", - "mechanical_authorization": "", - "mpi_animal_checklist": "", - "mpi_eglass_auth": "", - "mpi_final_acct_sheet": "", - "mpi_final_repair_acct_sheet": "", - "paint_grid": "", - "parts_dispatch": "", - "parts_invoice_label_single": "", - "parts_label_multiple": "", - "parts_label_single": "", - "parts_list": "", - "parts_order": "", - "parts_order_confirmation": "", - "parts_order_history": "", - "parts_return_slip": "", - "payment_receipt": "", - "payment_request": "", - "payments_by_job": "", - "purchases_by_ro_detail": "", - "purchases_by_ro_summary": "", - "qc_sheet": "", - "rental_reservation": "", - "ro_totals": "", - "ro_with_description": "", - "sgi_certificate_of_repairs": "", - "sgi_windshield_auth": "", - "stolen_recovery_checklist": "", - "sublet_order": "", - "supplement_request": "", - "thank_you_ro": "", - "thirdpartypayer": "", - "timetickets_ro": "", - "vehicle_check_in": "", - "vehicle_delivery_check": "", - "window_tag": "", - "window_tag_sublet": "", - "work_authorization": "", - "worksheet_by_line_number": "", - "worksheet_sorted_by_operation": "", - "worksheet_sorted_by_operation_no_hours": "", - "worksheet_sorted_by_operation_part_type": "", - "worksheet_sorted_by_operation_type": "", - "worksheet_sorted_by_team": "" - }, - "labels": { - "groups": { - "authorization": "", - "financial": "", - "post": "", - "pre": "", - "ro": "", - "worksheet": "" - }, - "misc": "", - "repairorder": "", - "reportcentermodal": "", - "speedprint": "", - "title": "" - }, - "payments": { - "ca_bc_etf_table": "", - "exported_payroll": "" - }, - "special": { - "attendance_detail_csv": "" - }, - "subjects": { - "jobs": { - "individual_job_note": "", - "parts_dispatch": "", - "parts_order": "", - "parts_return_slip": "", - "sublet_order": "" - } - }, - "vendors": { - "purchases_by_vendor_detailed": "", - "purchases_by_vendor_summary": "" - } - }, - "production": { - "actions": { - "addcolumns": "", - "bodypriority-clear": "", - "bodypriority-set": "", - "detailpriority-clear": "", - "detailpriority-set": "", - "paintpriority-clear": "", - "paintpriority-set": "", - "remove": "", - "removecolumn": "", - "saveconfig": "", - "suspend": "", - "unsuspend": "" - }, - "constants": { - "main_profile": "" - }, - "errors": { - "boardupdate": "", - "name_exists": "", - "name_required": "", - "removing": "", - "settings": "" - }, - "labels": { - "actual_in": "", - "addnewprofile": "", - "alert": "", - "alertoff": "", - "alerton": "", - "alerts": "", - "ats": "", - "bodyhours": "", - "bodypriority": "", - "bodyshop": { - "labels": { - "qbo_departmentid": "", - "qbo_usa": "" - } - }, - "card_size": "", - "cardcolor": "", - "cardsettings": "", - "clm_no": "", - "comment": "", - "compact": "", - "detailpriority": "", - "employeeassignments": "", - "employeesearch": "", - "estimator": "", - "horizontal": "", - "ins_co_nm": "", - "jobdetail": "", - "kiosk_mode": "", - "laborhrs": "", - "legend": "", - "model_info": "", - "note": "", - "off": "", - "on": "", - "orientation": "", - "ownr_nm": "", - "paintpriority": "", - "partsstatus": "", - "production_note": "", - "refinishhours": "", - "scheduled_completion": "", - "selectview": "", - "stickyheader": "", - "sublets": "", - "subtotal": "", - "tall": "", - "tasks": "", - "totalhours": "", - "touchtime": "", - "vertical": "", - "viewname": "", - "wide": "" - }, - "options": { - "horizontal": "", - "large": "", - "medium": "", - "small": "", - "vertical": "" - }, - "settings": { - "board_settings": "", - "filters": { - "md_estimators": "", - "md_ins_cos": "" - }, - "filters_title": "", - "information": "", - "layout": "", - "statistics": { - "jobs_in_production": "", - "tasks_in_production": "", - "tasks_in_view": "", - "tasks_on_board": "", - "total_amount_in_production": "", - "total_amount_in_view": "", - "total_amount_on_board": "", - "total_hours_in_production": "", - "total_hours_in_view": "", - "total_hours_on_board": "", - "total_jobs_in_view": "", - "total_jobs_on_board": "", - "total_lab_in_production": "", - "total_lab_in_view": "", - "total_lab_on_board": "", - "total_lar_in_production": "", - "total_lar_in_view": "", - "total_lar_on_board": "" - }, - "statistics_title": "" - }, - "statistics": { - "currency_symbol": "", - "hours": "", - "jobs": "", - "jobs_in_production": "", - "tasks": "", - "tasks_in_production": "", - "tasks_in_view": "", - "tasks_on_board": "", - "total_amount_in_production": "", - "total_amount_in_view": "", - "total_amount_on_board": "", - "total_hours_in_production": "", - "total_hours_in_view": "", - "total_hours_on_board": "", - "total_jobs_in_view": "", - "total_jobs_on_board": "", - "total_lab_in_production": "", - "total_lab_in_view": "", - "total_lab_on_board": "", - "total_lar_in_production": "", - "total_lar_in_view": "", - "total_lar_on_board": "" - }, - "successes": { - "removed": "" - } - }, - "profile": { - "errors": { - "state": "Error al leer el estado de la página. Porfavor refresca." - }, - "labels": { - "activeshop": "" - }, - "successes": { - "updated": "" - } - }, - "reportcenter": { - "actions": { - "generate": "" - }, - "labels": { - "advanced_filters": "", - "advanced_filters_false": "", - "advanced_filters_filter_field": "", - "advanced_filters_filter_operator": "", - "advanced_filters_filter_value": "", - "advanced_filters_filters": "", - "advanced_filters_hide": "", - "advanced_filters_show": "", - "advanced_filters_sorter_direction": "", - "advanced_filters_sorter_field": "", - "advanced_filters_sorters": "", - "advanced_filters_true": "", - "dates": "", - "employee": "", - "filterson": "", - "generateasemail": "", - "groups": { - "customers": "", - "jobs": "", - "payroll": "", - "purchases": "", - "sales": "" - }, - "key": "", - "objects": { - "appointments": "", - "bills": "", - "csi": "", - "exportlogs": "", - "jobs": "", - "parts_orders": "", - "payments": "", - "scoreboard": "", - "tasks": "", - "timetickets": "" - }, - "vendor": "" - }, - "templates": { - "adp_payroll_flat": "", - "adp_payroll_straight": "", - "anticipated_revenue": "", - "ar_aging": "", - "attendance_detail": "", - "attendance_employee": "", - "attendance_summary": "", - "committed_timetickets": "", - "committed_timetickets_employee": "", - "committed_timetickets_summary": "", - "credits_not_received_date": "", - "credits_not_received_date_vendorid": "", - "csi": "", - "customer_list": "", - "cycle_time_analysis": "", - "estimates_written_converted": "", - "estimator_detail": "", - "estimator_summary": "", - "export_payables": "", - "export_payments": "", - "export_receivables": "", - "exported_gsr_by_ro": "", - "exported_gsr_by_ro_labor": "", - "gsr_by_atp": "", - "gsr_by_ats": "", - "gsr_by_category": "", - "gsr_by_csr": "", - "gsr_by_delivery_date": "", - "gsr_by_estimator": "", - "gsr_by_exported_date": "", - "gsr_by_ins_co": "", - "gsr_by_make": "", - "gsr_by_referral": "", - "gsr_by_ro": "", - "gsr_labor_only": "", - "hours_sold_detail_closed": "", - "hours_sold_detail_closed_csr": "", - "hours_sold_detail_closed_estimator": "", - "hours_sold_detail_closed_ins_co": "", - "hours_sold_detail_closed_status": "", - "hours_sold_detail_open": "", - "hours_sold_detail_open_csr": "", - "hours_sold_detail_open_estimator": "", - "hours_sold_detail_open_ins_co": "", - "hours_sold_detail_open_status": "", - "hours_sold_summary_closed": "", - "hours_sold_summary_closed_csr": "", - "hours_sold_summary_closed_estimator": "", - "hours_sold_summary_closed_ins_co": "", - "hours_sold_summary_closed_status": "", - "hours_sold_summary_open": "", - "hours_sold_summary_open_csr": "", - "hours_sold_summary_open_estimator": "", - "hours_sold_summary_open_ins_co": "", - "hours_sold_summary_open_status": "", - "job_costing_ro_csr": "", - "job_costing_ro_date_detail": "", - "job_costing_ro_date_summary": "", - "job_costing_ro_estimator": "", - "job_costing_ro_ins_co": "", - "job_lifecycle_date_detail": "", - "job_lifecycle_date_summary": "", - "jobs_completed_not_invoiced": "", - "jobs_invoiced_not_exported": "", - "jobs_reconcile": "", - "jobs_scheduled_completion": "", - "lag_time": "", - "load_level": "", - "lost_sales": "", - "open_orders": "", - "open_orders_csr": "", - "open_orders_estimator": "", - "open_orders_excel": "", - "open_orders_ins_co": "", - "open_orders_referral": "", - "open_orders_specific_csr": "", - "open_orders_status": "", - "parts_backorder": "", - "parts_not_recieved": "", - "parts_not_recieved_vendor": "", - "parts_received_not_scheduled": "", - "payments_by_date": "", - "payments_by_date_payment": "", - "payments_by_date_type": "", - "production_by_category": "", - "production_by_category_one": "", - "production_by_csr": "", - "production_by_last_name": "", - "production_by_repair_status": "", - "production_by_repair_status_one": "", - "production_by_ro": "", - "production_by_target_date": "", - "production_by_technician": "", - "production_by_technician_one": "", - "production_not_production_status": "", - "production_over_time": "", - "psr_by_make": "", - "purchase_return_ratio_excel": "", - "purchase_return_ratio_grouped_by_vendor_detail": "", - "purchase_return_ratio_grouped_by_vendor_summary": "", - "purchases_by_cost_center_detail": "", - "purchases_by_cost_center_summary": "", - "purchases_by_date_range_detail": "", - "purchases_by_date_range_summary": "", - "purchases_by_ro_detail_date": "", - "purchases_by_ro_summary_date": "", - "purchases_by_vendor_detailed_date_range": "", - "purchases_by_vendor_summary_date_range": "", - "purchases_grouped_by_vendor_detailed": "", - "purchases_grouped_by_vendor_summary": "", - "returns_grouped_by_vendor_detailed": "", - "returns_grouped_by_vendor_summary": "", - "schedule": "", - "scheduled_parts_list": "", - "scoreboard_detail": "", - "scoreboard_summary": "", - "supplement_ratio_ins_co": "", - "tasks_date": "", - "tasks_date_employee": "", - "thank_you_date": "", - "timetickets": "", - "timetickets_employee": "", - "timetickets_summary": "", - "total_loss_jobs": "", - "unclaimed_hrs": "", - "void_ros": "", - "work_in_progress_committed_labour": "", - "work_in_progress_jobs": "", - "work_in_progress_labour": "", - "work_in_progress_payables": "" - } - }, - "schedule": { - "labels": { - "atssummary": "", - "employeevacation": "", - "estimators": "", - "ins_co_nm_filter": "", - "intake": "", - "manual": "", - "manualevent": "" - } - }, - "scoreboard": { - "actions": { - "edit": "" - }, - "errors": { - "adding": "", - "removing": "", - "updating": "" - }, - "fields": { - "bodyhrs": "", - "date": "", - "painthrs": "" - }, - "labels": { - "allemployeetimetickets": "", - "asoftodaytarget": "", - "body": "", - "bodyabbrev": "", - "bodycharttitle": "", - "calendarperiod": "", - "combinedcharttitle": "", - "dailyactual": "", - "dailytarget": "", - "efficiencyoverperiod": "", - "entries": "", - "jobs": "", - "jobscompletednotinvoiced": "", - "lastmonth": "", - "lastweek": "", - "monthlytarget": "", - "priorweek": "", - "productivestatistics": "", - "productivetimeticketsoverdate": "", - "refinish": "", - "refinishabbrev": "", - "refinishcharttitle": "", - "targets": "", - "thismonth": "", - "thisweek": "", - "timetickets": "", - "timeticketsemployee": "", - "todateactual": "", - "total": "", - "totalhrs": "", - "totaloverperiod": "", - "weeklyactual": "", - "weeklytarget": "", - "workingdays": "" - }, - "successes": { - "added": "", - "removed": "", - "updated": "" - } - }, - "tasks": { - "actions": { - "edit": "", - "new": "" - }, - "buttons": { - "allTasks": "", - "complete": "", - "create": "", - "delete": "", - "edit": "", - "myTasks": "", - "refresh": "" - }, - "date_presets": { - "completion": "", - "day": "", - "days": "", - "delivery": "", - "next_week": "", - "one_month": "", - "three_months": "", - "three_weeks": "", - "today": "", - "tomorrow": "", - "two_weeks": "" - }, - "failures": { - "completed": "", - "created": "", - "deleted": "", - "updated": "" - }, - "fields": { - "actions": "", - "assigned_to": "", - "bill": "", - "billid": "", - "completed": "", - "created_at": "", - "created_by": "", - "description": "", - "due_date": "", - "job": { - "ro_number": "" - }, - "jobid": "", - "jobline": "", - "joblineid": "", - "parts_order": "", - "partsorderid": "", - "priorities": { - "high": "", - "low": "", - "medium": "" - }, - "priority": "", - "related_items": "", - "remind_at": "", - "title": "" - }, - "placeholders": { - "assigned_to": "", - "billid": "", - "description": "", - "jobid": "", - "joblineid": "", - "partsorderid": "" - }, - "successes": { - "completed": "", - "created": "", - "deleted": "", - "updated": "" - }, - "titles": { - "all_tasks": "", - "completed": "", - "deleted": "", - "job_tasks": "", - "mine": "", - "my_tasks": "" - }, - "validation": { - "due_at_error_message": "", - "remind_at_error_message": "" - } - }, - "tech": { - "fields": { - "employeeid": "", - "pin": "" - }, - "labels": { - "loggedin": "", - "notloggedin": "" - } - }, - "templates": { - "errors": { - "updating": "" - }, - "successes": { - "updated": "" - } - }, - "timetickets": { - "actions": { - "claimtasks": "", - "clockin": "", - "clockout": "", - "commit": "", - "commitone": "", - "enter": "", - "payall": "", - "printemployee": "", - "uncommit": "" - }, - "errors": { - "clockingin": "", - "clockingout": "", - "creating": "", - "deleting": "", - "noemployeeforuser": "", - "noemployeeforuser_sub": "", - "payall": "", - "shiftalreadyclockedon": "" - }, - "fields": { - "actualhrs": "", - "ciecacode": "", - "clockhours": "", - "clockoff": "", - "clockon": "", - "committed": "", - "committed_at": "", - "cost_center": "", - "created_by": "", - "date": "", - "efficiency": "", - "employee": "", - "employee_team": "", - "flat_rate": "", - "memo": "", - "productivehrs": "", - "ro_number": "", - "task_name": "" - }, - "labels": { - "alreadyclockedon": "", - "ambreak": "", - "amshift": "", - "claimtaskpreview": "", - "clockhours": "", - "clockintojob": "", - "deleteconfirm": "", - "edit": "", - "efficiency": "", - "flat_rate": "", - "jobhours": "", - "lunch": "", - "new": "", - "payrollclaimedtasks": "", - "pmbreak": "", - "pmshift": "", - "shift": "", - "shiftalreadyclockedon": "", - "straight_time": "", - "task": "", - "timetickets": "", - "unassigned": "", - "zeroactualnegativeprod": "" - }, - "successes": { - "clockedin": "", - "clockedout": "", - "committed": "", - "created": "", - "deleted": "", - "payall": "" - }, - "validation": { - "clockoffmustbeafterclockon": "", - "clockoffwithoutclockon": "", - "hoursenteredmorethanavailable": "", - "unassignedlines": "" - } - }, - "titles": { - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "all_tasks": "", - "app": "", - "bc": { - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "all_tasks": "", - "availablejobs": "", - "bills-list": "", - "contracts": "", - "contracts-create": "", - "contracts-detail": "", - "courtesycars": "", - "courtesycars-detail": "", - "courtesycars-new": "", - "dashboard": "", - "dms": "", - "export-logs": "", - "inventory": "", - "jobs": "", - "jobs-active": "", - "jobs-admin": "", - "jobs-all": "", - "jobs-checklist": "", - "jobs-close": "", - "jobs-deliver": "", - "jobs-detail": "", - "jobs-intake": "", - "jobs-new": "", - "jobs-ready": "", - "my_tasks": "", - "owner-detail": "", - "owners": "", - "parts-queue": "", - "payments-all": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "profile": "", - "schedule": "", - "scoreboard": "", - "shop": "", - "shop-csi": "", - "shop-templates": "", - "shop-vendors": "", - "tasks": "", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicle-details": "", - "vehicles": "" - }, - "bills-list": "", - "contracts": "", - "contracts-create": "", - "contracts-detail": "", - "courtesycars": "", - "courtesycars-create": "", - "courtesycars-detail": "", - "dashboard": "", - "dms": "", - "export-logs": "", - "imexonline": "", - "inventory": "", - "jobs": "Todos los trabajos | {{app}}", - "jobs-admin": "", - "jobs-all": "", - "jobs-checklist": "", - "jobs-close": "", - "jobs-create": "", - "jobs-deliver": "", - "jobs-intake": "", - "jobsavailable": "Empleos disponibles | {{app}}", - "jobsdetail": "Trabajo {{ro_number}} | {{app}}", - "jobsdocuments": "Documentos de trabajo {{ro_number}} | {{app}}", - "manageroot": "Casa | {{app}}", - "my_tasks": "", - "owners": "Todos los propietarios | {{app}}", - "owners-detail": "", - "parts-queue": "", - "payments-all": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "profile": "Mi perfil | {{app}}", - "promanager": "", - "readyjobs": "", - "resetpassword": "", - "resetpasswordvalidate": "", - "romeonline": "", - "schedule": "Horario | {{app}}", - "scoreboard": "", - "shop": "Mi tienda | {{app}}", - "shop-csi": "", - "shop-templates": "", - "shop_vendors": "Vendedores | {{app}}", - "tasks": "", - "techconsole": "{{app}}", - "techjobclock": "{{app}}", - "techjoblookup": "{{app}}", - "techshiftclock": "{{app}}", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}", - "vehicles": "Todos los vehiculos | {{app}}" - }, - "trello": { - "labels": { - "add_card": "", - "add_lane": "", - "cancel": "", - "delete_lane": "", - "description": "", - "label": "", - "lane_actions": "", - "title": "" - } - }, - "tt_approvals": { - "actions": { - "approveselected": "" - }, - "labels": { - "approval_queue_in_use": "", - "calculate": "" - } - }, - "user": { - "actions": { - "changepassword": "", - "signout": "desconectar", - "updateprofile": "Actualización del perfil" - }, - "errors": { - "updating": "" - }, - "fields": { - "authlevel": "", - "displayname": "Nombre para mostrar", - "email": "", - "photourl": "URL de avatar" - }, - "labels": { - "actions": "", - "changepassword": "", - "profileinfo": "" - }, - "successess": { - "passwordchanged": "" - } - }, - "users": { - "errors": { - "signinerror": { - "auth/user-disabled": "", - "auth/user-not-found": "", - "auth/wrong-password": "" - } - } - }, - "vehicles": { - "errors": { - "deleting": "", - "noaccess": "El vehículo no existe o usted no tiene acceso a él.", - "selectexistingornew": "", - "validation": "Asegúrese de que todos los campos se ingresen correctamente.", - "validationtitle": "Error de validacion" - }, - "fields": { - "description": "Descripcion del vehiculo", - "notes": "", - "plate_no": "Placa", - "plate_st": "Jurisdicción de placas", - "trim_color": "Recortar color", - "v_bstyle": "Tipo de cuerpo", - "v_color": "Color", - "v_cond": "condición", - "v_engine": "Motor", - "v_make_desc": "Hacer", - "v_makecode": "Hacer código", - "v_mldgcode": "Código de moldeo", - "v_model_desc": "Modelo", - "v_model_yr": "año", - "v_options": "Opciones", - "v_paint_codes": "Códigos de pintura", - "v_prod_dt": "Fecha de producción", - "v_stage": "Escenario", - "v_tone": "Tono", - "v_trimcode": "Código de recorte", - "v_type": "Tipo", - "v_vin": "V.I.N." - }, - "forms": { - "detail": "", - "misc": "", - "registration": "" - }, - "labels": { - "deleteconfirm": "", - "fromvehicle": "", - "novehinfo": "", - "relatedjobs": "", - "updatevehicle": "" - }, - "successes": { - "delete": "", - "save": "Vehículo guardado con éxito." - } - }, - "vendors": { - "actions": { - "addtophonebook": "", - "new": "Nuevo vendedor", - "newpreferredmake": "" - }, - "errors": { - "deleting": "Se encontró un error al eliminar el proveedor.", - "saving": "Se encontró un error al guardar el proveedor." - }, - "fields": { - "active": "", - "am": "", - "city": "ciudad", - "cost_center": "Centro de costos", - "country": "País", - "discount": "% De descuento", - "display_name": "Nombre para mostrar", - "dmsid": "", - "due_date": "Fecha de vencimiento del pago", - "email": "Email de contacto", - "favorite": "¿Favorito?", - "lkq": "", - "make": "", - "name": "Nombre del vendedor", - "oem": "", - "phone": "", - "prompt_discount": "Descuento pronto", - "state": "Provincia del estado", - "street1": "calle", - "street2": "Dirección 2", - "taxid": "Identificación del impuesto", - "terms": "Términos de pago", - "zip": "código postal" - }, - "labels": { - "noneselected": "Ningún vendedor está seleccionado.", - "preferredmakes": "", - "search": "Escriba el nombre de un proveedor" - }, - "successes": { - "deleted": "Proveedor eliminado correctamente.", - "saved": "Proveedor guardado con éxito." - }, - "validation": { - "unique_vendor_name": "" - } - } - } + "towin": "", + "towing_payable": "Remolque a pagar", + "unitnumber": "Unidad #", + "updated_at": "Actualizado en", + "uploaded_by": "Subido por", + "vehicle": "Vehículo" + }, + "forms": { + "admindates": "", + "appraiserinfo": "", + "claiminfo": "", + "estdates": "", + "laborrates": "", + "lossinfo": "", + "other": "", + "repairdates": "", + "scheddates": "" + }, + "labels": { + "accountsreceivable": "", + "act_price_ppc": "", + "actual_completion_inferred": "", + "actual_delivery_inferred": "", + "actual_in_inferred": "", + "additionalpayeroverallocation": "", + "additionaltotal": "", + "adjustmentrate": "", + "adjustments": "", + "adminwarning": "", + "allocations": "", + "alreadyaddedtoscoreboard": "", + "alreadyclosed": "", + "appointmentconfirmation": "¿Enviar confirmación al cliente?", + "associationwarning": "", + "audit": "", + "available": "", + "availablejobs": "", + "ca_bc_pvrt": { + "days": "", + "rate": "" + }, + "ca_gst_all_if_null": "", + "calc_repair_days": "", + "calc_repair_days_tt": "", + "calc_scheuled_completion": "", + "cards": { + "customer": "Información al cliente", + "damage": "Área de Daño", + "dates": "fechas", + "documents": "Documentos recientes", + "estimator": "Estimador", + "filehandler": "File Handler", + "insurance": "detalles del seguro", + "more": "Más", + "notes": "Notas", + "parts": "Partes", + "totals": "Totales", + "vehicle": "Vehículo" + }, + "changeclass": "", + "checklistcompletedby": "", + "checklistdocuments": "", + "checklists": "", + "cieca_pfl": "", + "cieca_pfo": "", + "cieca_pft": "", + "closeconfirm": "", + "closejob": "", + "closingperiod": "", + "contracts": "", + "convertedtolabor": "", + "cost": "", + "cost_Additional": "", + "cost_labor": "", + "cost_parts": "", + "cost_sublet": "", + "costs": "", + "create": { + "jobinfo": "", + "newowner": "", + "newvehicle": "", + "novehicle": "", + "ownerinfo": "", + "vehicleinfo": "" + }, + "createiouwarning": "", + "creating_new_job": "Creando nuevo trabajo ...", + "deductible": { + "stands": "", + "waived": "" + }, + "deleteconfirm": "", + "deletedelivery": "", + "deleteintake": "", + "deliverchecklist": "", + "difference": "", + "diskscan": "", + "dms": { + "apexported": "", + "damageto": "", + "defaultstory": "", + "disablebillwip": "", + "invoicedatefuture": "", + "kmoutnotgreaterthankmin": "", + "logs": "", + "notallocated": "", + "postingform": "", + "totalallocated": "" + }, + "documents": "documentos", + "documents-images": "", + "documents-other": "", + "duplicateconfirm": "", + "emailaudit": "", + "employeeassignments": "", + "estimatelines": "", + "estimator": "", + "existing_jobs": "Empleos existentes", + "federal_tax_amt": "", + "gpdollars": "", + "gppercent": "", + "hrs_claimed": "", + "hrs_total": "", + "importnote": "", + "inproduction": "", + "intakechecklist": "", + "iou": "", + "job": "", + "jobcosting": "", + "jobtotals": "", + "labor_hrs": "", + "labor_rates_subtotal": "", + "laborallocations": "", + "labortotals": "", + "lines": "Líneas estimadas", + "local_tax_amt": "", + "mapa": "", + "markforreexport": "", + "mash": "", + "masterbypass": "", + "materials": { + "mapa": "" + }, + "missingprofileinfo": "", + "multipayers": "", + "net_repairs": "", + "notes": "Notas", + "othertotal": "", + "outstanding_ar": "", + "outstanding_credit_memos": "", + "outstanding_ppd": "", + "outstanding_reconciliation_discrep": "", + "outstanding_sublets": "", + "outstandinghours": "", + "override_header": "¿Anular encabezado estimado al importar?", + "ownerassociation": "", + "parts": "Partes", + "parts_lines": "", + "parts_received": "", + "parts_tax_rates": "", + "partsfilter": "", + "partssubletstotal": "", + "partstotal": "", + "performance": "", + "pimraryamountpayable": "", + "plitooltips": { + "billtotal": "", + "calculatedcreditsnotreceived": "", + "creditmemos": "", + "creditsnotreceived": "", + "discrep1": "", + "discrep2": "", + "discrep3": "", + "laboradj": "", + "partstotal": "", + "totalreturns": "" + }, + "ppc": "", + "ppdnotexported": "", + "profileadjustments": "", + "profitbypassrequired": "", + "profits": "", + "prt_dsmk_total": "", + "rates": "Tarifas", + "rates_subtotal": "", + "reconciliation": { + "billlinestotal": "", + "byassoc": "", + "byprice": "", + "clear": "", + "discrepancy": "", + "joblinestotal": "", + "multipleactprices": "", + "multiplebilllines": "", + "multiplebillsforactprice": "", + "removedpartsstrikethrough": "" + }, + "reconciliationheader": "", + "relatedros": "", + "remove_from_ar": "", + "returntotals": "", + "ro_guard": { + "enforce_ar": "", + "enforce_bills": "", + "enforce_cm": "", + "enforce_labor": "", + "enforce_ppd": "", + "enforce_profit": "", + "enforce_sublet": "", + "enforce_validation": "", + "enforced": "" + }, + "roguard": "", + "roguardwarnings": "", + "rosaletotal": "", + "sale_additional": "", + "sale_labor": "", + "sale_parts": "", + "sale_sublet": "", + "sales": "", + "savebeforeconversion": "", + "scheduledinchange": "", + "specialcoveragepolicy": "", + "state_tax_amt": "", + "subletsnotcompleted": "", + "subletstotal": "", + "subtotal": "", + "supplementnote": "", + "suspended": "", + "suspense": "", + "tasks": "", + "threshhold": "", + "total_cost": "", + "total_cust_payable": "", + "total_cust_payable_cash_discount": "", + "total_repairs": "", + "total_repairs_cash_discount": "", + "total_sales": "", + "total_sales_tax": "", + "totals": "", + "unvoidnote": "", + "update_scheduled_completion": "", + "vehicle_info": "Vehículo", + "vehicleassociation": "", + "viewallocations": "", + "voidjob": "", + "voidnote": "" + }, + "successes": { + "addedtoproduction": "", + "all_deleted": "{{count}} trabajos eliminados con éxito.", + "closed": "", + "converted": "Trabajo convertido con éxito.", + "created": "Trabajo creado con éxito. Click para ver.", + "creatednoclick": "", + "delete": "", + "deleted": "Trabajo eliminado con éxito.", + "duplicated": "", + "exported": "", + "invoiced": "", + "ioucreated": "", + "partsqueue": "", + "save": "Trabajo guardado con éxito.", + "savetitle": "Registro guardado con éxito.", + "supplemented": "Trabajo complementado con éxito.", + "updated": "", + "voided": "" + } + }, + "landing": { + "bigfeature": { + "subtitle": "", + "title": "" + }, + "footer": { + "company": { + "about": "", + "contact": "", + "disclaimers": "", + "name": "", + "privacypolicy": "" + }, + "io": { + "help": "", + "name": "", + "status": "" + }, + "slogan": "" + }, + "hero": { + "button": "", + "title": "" + }, + "labels": { + "features": "", + "managemyshop": "", + "pricing": "" + }, + "pricing": { + "basic": { + "name": "", + "sub": "" + }, + "essentials": { + "name": "", + "sub": "" + }, + "pricingtitle": "", + "pro": { + "name": "", + "sub": "" + }, + "title": "", + "unlimited": { + "name": "", + "sub": "" + } + } + }, + "menus": { + "currentuser": { + "languageselector": "idioma", + "profile": "Perfil" + }, + "header": { + "accounting": "", + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "activejobs": "Empleos activos", + "all_tasks": "", + "alljobs": "", + "allpayments": "", + "availablejobs": "Trabajos disponibles", + "bills": "", + "courtesycars": "", + "courtesycars-all": "", + "courtesycars-contracts": "", + "courtesycars-newcontract": "", + "create_task": "", + "customers": "Clientes", + "dashboard": "", + "enterbills": "", + "entercardpayment": "", + "enterpayment": "", + "entertimeticket": "", + "export": "", + "export-logs": "", + "help": "", + "home": "Casa", + "inventory": "", + "jobs": "Trabajos", + "my_tasks": "", + "newjob": "", + "owners": "propietarios", + "parts-queue": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "readyjobs": "", + "recent": "", + "reportcenter": "", + "rescueme": "", + "schedule": "Programar", + "scoreboard": "", + "search": { + "bills": "", + "jobs": "", + "owners": "", + "payments": "", + "phonebook": "", + "vehicles": "" + }, + "shiftclock": "", + "shop": "Mi tienda", + "shop_config": "Configuración", + "shop_csi": "", + "shop_templates": "", + "shop_vendors": "Vendedores", + "tasks": "", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicles": "Vehículos" + }, + "jobsactions": { + "admin": "", + "cancelallappointments": "", + "closejob": "", + "deletejob": "", + "duplicate": "", + "duplicatenolines": "", + "newcccontract": "", + "void": "" + }, + "jobsdetail": { + "claimdetail": "Detalles de la reclamación", + "dates": "fechas", + "financials": "", + "general": "", + "insurance": "", + "labor": "Labor", + "lifecycle": "", + "parts": "", + "partssublet": "Piezas / Subarrendamiento", + "rates": "", + "repairdata": "Datos de reparación", + "totals": "" + }, + "profilesidebar": { + "profile": "Mi perfil", + "shops": "Mis tiendas" + }, + "tech": { + "assignedjobs": "", + "claimtask": "", + "dispatchedparts": "", + "home": "", + "jobclockin": "", + "jobclockout": "", + "joblookup": "", + "login": "", + "logout": "", + "productionboard": "", + "productionlist": "", + "shiftclockin": "" + } + }, + "messaging": { + "actions": { + "link": "", + "new": "" + }, + "errors": { + "invalidphone": "", + "noattachedjobs": "", + "updatinglabel": "" + }, + "labels": { + "addlabel": "", + "archive": "", + "maxtenimages": "", + "messaging": "Mensajería", + "noallowtxt": "", + "nojobs": "", + "nopush": "", + "phonenumber": "", + "presets": "", + "recentonly": "", + "selectmedia": "", + "sentby": "", + "typeamessage": "Enviar un mensaje...", + "unarchive": "" + }, + "render": { + "conversation_list": "" + } + }, + "notes": { + "actions": { + "actions": "Comportamiento", + "deletenote": "Borrar nota", + "edit": "Editar nota", + "new": "Nueva nota", + "savetojobnotes": "" + }, + "errors": { + "inserting": "" + }, + "fields": { + "createdby": "Creado por", + "critical": "Crítico", + "private": "Privado", + "text": "Contenido", + "type": "", + "types": { + "customer": "", + "general": "", + "office": "", + "paint": "", + "parts": "", + "shop": "", + "supplement": "" + }, + "updatedat": "Actualizado en" + }, + "labels": { + "addtorelatedro": "", + "newnoteplaceholder": "Agrega una nota...", + "notetoadd": "", + "systemnotes": "", + "usernotes": "" + }, + "successes": { + "create": "Nota creada con éxito.", + "deleted": "Nota eliminada con éxito.", + "updated": "Nota actualizada con éxito." + } + }, + "owner": { + "labels": { + "noownerinfo": "" + } + }, + "owners": { + "actions": { + "update": "" + }, + "errors": { + "deleting": "", + "noaccess": "El registro no existe o no tiene acceso a él.", + "saving": "", + "selectexistingornew": "" + }, + "fields": { + "accountingid": "", + "address": "Dirección", + "allow_text_message": "Permiso de texto?", + "name": "Nombre", + "note": "", + "ownr_addr1": "Dirección", + "ownr_addr2": "Dirección 2", + "ownr_city": "ciudad", + "ownr_co_nm": "", + "ownr_ctry": "País", + "ownr_ea": "Email", + "ownr_fn": "Nombre de pila", + "ownr_ln": "Apellido", + "ownr_ph1": "Teléfono 1", + "ownr_ph2": "", + "ownr_st": "Provincia del estado", + "ownr_title": "Título", + "ownr_zip": "código postal", + "preferred_contact": "Método de Contacto Preferido", + "tax_number": "" + }, + "forms": { + "address": "", + "contact": "", + "name": "" + }, + "labels": { + "create_new": "Crea un nuevo registro de propietario.", + "deleteconfirm": "", + "existing_owners": "Propietarios existentes", + "fromclaim": "", + "fromowner": "", + "relatedjobs": "", + "updateowner": "" + }, + "successes": { + "delete": "", + "save": "Propietario guardado con éxito." + } + }, + "parts": { + "actions": { + "order": "Pedido de piezas", + "orderinhouse": "" + } + }, + "parts_dispatch": { + "actions": { + "accept": "" + }, + "errors": { + "accepting": "", + "creating": "" + }, + "fields": { + "number": "", + "percent_accepted": "" + }, + "labels": { + "notyetdispatched": "", + "parts_dispatch": "" + } + }, + "parts_dispatch_lines": { + "fields": { + "accepted_at": "" + } + }, + "parts_orders": { + "actions": { + "backordered": "", + "receive": "", + "receivebill": "" + }, + "errors": { + "associatedbills": "", + "backordering": "", + "creating": "Se encontró un error al crear el pedido de piezas.", + "oec": "", + "saving": "", + "updating": "" + }, + "fields": { + "act_price": "", + "backordered_eta": "", + "backordered_on": "", + "cm_received": "", + "comments": "", + "cost": "", + "db_price": "", + "deliver_by": "", + "job_line_id": "", + "line_desc": "", + "line_remarks": "", + "lineremarks": "Comentarios de línea", + "oem_partno": "", + "order_date": "", + "order_number": "", + "orderedby": "", + "part_type": "", + "quantity": "", + "return": "", + "status": "" + }, + "labels": { + "allpartsto": "", + "confirmdelete": "", + "custompercent": "", + "discount": "", + "email": "Enviar por correo electrónico", + "inthisorder": "Partes en este pedido", + "is_quote": "", + "mark_as_received": "", + "newpartsorder": "", + "notyetordered": "", + "oec": "", + "order_type": "", + "orderhistory": "Historial de pedidos", + "parts_order": "", + "parts_orders": "", + "print": "Mostrar formulario impreso", + "receive": "", + "removefrompartsqueue": "", + "returnpartsorder": "", + "sublet_order": "" + }, + "successes": { + "created": "Pedido de piezas creado con éxito.", + "line_updated": "", + "received": "", + "return_created": "" + } + }, + "payments": { + "actions": { + "generatepaymentlink": "" + }, + "errors": { + "exporting": "", + "exporting-partner": "", + "inserting": "" + }, + "fields": { + "amount": "", + "created_at": "", + "date": "", + "exportedat": "", + "memo": "", + "payer": "", + "paymentnum": "", + "stripeid": "", + "transactionid": "", + "type": "" + }, + "labels": { + "balance": "", + "ca_bc_etf_table": "", + "customer": "", + "edit": "", + "electronicpayment": "", + "external": "", + "findermodal": "", + "insurance": "", + "markexported": "", + "markforreexport": "", + "new": "", + "signup": "", + "smspaymentreminder": "", + "title": "", + "totalpayments": "" + }, + "successes": { + "exported": "", + "markexported": "", + "markreexported": "", + "payment": "", + "paymentupdate": "", + "stripe": "" + } + }, + "phonebook": { + "actions": { + "new": "" + }, + "errors": { + "adding": "", + "saving": "" + }, + "fields": { + "address1": "", + "address2": "", + "category": "", + "city": "", + "company": "", + "country": "", + "email": "", + "fax": "", + "firstname": "", + "lastname": "", + "phone1": "", + "phone2": "", + "state": "" + }, + "labels": { + "noneselected": "", + "onenamerequired": "", + "vendorcategory": "" + }, + "successes": { + "added": "", + "deleted": "", + "saved": "" + } + }, + "printcenter": { + "appointments": { + "appointment_confirmation": "" + }, + "bills": { + "inhouse_invoice": "" + }, + "courtesycarcontract": { + "courtesy_car_contract": "", + "courtesy_car_impound": "", + "courtesy_car_inventory": "", + "courtesy_car_terms": "" + }, + "errors": { + "nocontexttype": "" + }, + "jobs": { + "3rdpartyfields": { + "addr1": "", + "addr2": "", + "addr3": "", + "attn": "", + "city": "", + "custgst": "", + "ded_amt": "", + "depreciation": "", + "other": "", + "ponumber": "", + "refnumber": "", + "sendtype": "", + "state": "", + "zip": "" + }, + "3rdpartypayer": "", + "ab_proof_of_loss": "", + "appointment_confirmation": "", + "appointment_reminder": "", + "casl_authorization": "", + "committed_timetickets_ro": "", + "coversheet_landscape": "", + "coversheet_portrait": "", + "csi_invitation": "", + "csi_invitation_action": "", + "diagnostic_authorization": "", + "dms_posting_sheet": "", + "envelope_return_address": "", + "estimate": "", + "estimate_detail": "", + "estimate_followup": "", + "express_repair_checklist": "", + "filing_coversheet_landscape": "", + "filing_coversheet_portrait": "", + "final_invoice": "", + "fippa_authorization": "", + "folder_label_multiple": "", + "glass_express_checklist": "", + "guarantee": "", + "individual_job_note": "", + "invoice_customer_payable": "", + "invoice_total_payable": "", + "iou_form": "", + "job_costing_ro": "", + "job_lifecycle_ro": "", + "job_notes": "", + "job_tasks": "", + "key_tag": "", + "labels": { + "count": "", + "labels": "", + "position": "" + }, + "lag_time_ro": "", + "mechanical_authorization": "", + "mpi_animal_checklist": "", + "mpi_eglass_auth": "", + "mpi_final_acct_sheet": "", + "mpi_final_repair_acct_sheet": "", + "paint_grid": "", + "parts_dispatch": "", + "parts_invoice_label_single": "", + "parts_label_multiple": "", + "parts_label_single": "", + "parts_list": "", + "parts_order": "", + "parts_order_confirmation": "", + "parts_order_history": "", + "parts_return_slip": "", + "payment_receipt": "", + "payment_request": "", + "payments_by_job": "", + "purchases_by_ro_detail": "", + "purchases_by_ro_summary": "", + "qc_sheet": "", + "rental_reservation": "", + "ro_totals": "", + "ro_with_description": "", + "sgi_certificate_of_repairs": "", + "sgi_windshield_auth": "", + "stolen_recovery_checklist": "", + "sublet_order": "", + "supplement_request": "", + "thank_you_ro": "", + "thirdpartypayer": "", + "timetickets_ro": "", + "vehicle_check_in": "", + "vehicle_delivery_check": "", + "window_tag": "", + "window_tag_sublet": "", + "work_authorization": "", + "worksheet_by_line_number": "", + "worksheet_sorted_by_operation": "", + "worksheet_sorted_by_operation_no_hours": "", + "worksheet_sorted_by_operation_part_type": "", + "worksheet_sorted_by_operation_type": "", + "worksheet_sorted_by_team": "" + }, + "labels": { + "groups": { + "authorization": "", + "financial": "", + "post": "", + "pre": "", + "ro": "", + "worksheet": "" + }, + "misc": "", + "repairorder": "", + "reportcentermodal": "", + "speedprint": "", + "title": "" + }, + "payments": { + "ca_bc_etf_table": "", + "exported_payroll": "" + }, + "special": { + "attendance_detail_csv": "" + }, + "subjects": { + "jobs": { + "individual_job_note": "", + "parts_dispatch": "", + "parts_order": "", + "parts_return_slip": "", + "sublet_order": "" + } + }, + "vendors": { + "purchases_by_vendor_detailed": "", + "purchases_by_vendor_summary": "" + } + }, + "production": { + "actions": { + "addcolumns": "", + "bodypriority-clear": "", + "bodypriority-set": "", + "detailpriority-clear": "", + "detailpriority-set": "", + "paintpriority-clear": "", + "paintpriority-set": "", + "remove": "", + "removecolumn": "", + "saveconfig": "", + "suspend": "", + "unsuspend": "" + }, + "constants": { + "main_profile": "" + }, + "errors": { + "boardupdate": "", + "name_exists": "", + "name_required": "", + "removing": "", + "settings": "" + }, + "labels": { + "actual_in": "", + "addnewprofile": "", + "alert": "", + "alertoff": "", + "alerton": "", + "alerts": "", + "ats": "", + "bodyhours": "", + "bodypriority": "", + "bodyshop": { + "labels": { + "qbo_departmentid": "", + "qbo_usa": "" + } + }, + "card_size": "", + "cardcolor": "", + "cardsettings": "", + "clm_no": "", + "comment": "", + "compact": "", + "detailpriority": "", + "employeeassignments": "", + "employeesearch": "", + "estimator": "", + "horizontal": "", + "ins_co_nm": "", + "jobdetail": "", + "kiosk_mode": "", + "laborhrs": "", + "legend": "", + "model_info": "", + "note": "", + "off": "", + "on": "", + "orientation": "", + "ownr_nm": "", + "paintpriority": "", + "partsstatus": "", + "production_note": "", + "refinishhours": "", + "scheduled_completion": "", + "selectview": "", + "stickyheader": "", + "sublets": "", + "subtotal": "", + "tall": "", + "tasks": "", + "totalhours": "", + "touchtime": "", + "vertical": "", + "viewname": "", + "wide": "" + }, + "options": { + "horizontal": "", + "large": "", + "medium": "", + "small": "", + "vertical": "" + }, + "settings": { + "board_settings": "", + "filters": { + "md_estimators": "", + "md_ins_cos": "" + }, + "filters_title": "", + "information": "", + "layout": "", + "statistics": { + "jobs_in_production": "", + "tasks_in_production": "", + "tasks_in_view": "", + "tasks_on_board": "", + "total_amount_in_production": "", + "total_amount_in_view": "", + "total_amount_on_board": "", + "total_hours_in_production": "", + "total_hours_in_view": "", + "total_hours_on_board": "", + "total_jobs_in_view": "", + "total_jobs_on_board": "", + "total_lab_in_production": "", + "total_lab_in_view": "", + "total_lab_on_board": "", + "total_lar_in_production": "", + "total_lar_in_view": "", + "total_lar_on_board": "" + }, + "statistics_title": "" + }, + "statistics": { + "currency_symbol": "", + "hours": "", + "jobs": "", + "jobs_in_production": "", + "tasks": "", + "tasks_in_production": "", + "tasks_in_view": "", + "tasks_on_board": "", + "total_amount_in_production": "", + "total_amount_in_view": "", + "total_amount_on_board": "", + "total_hours_in_production": "", + "total_hours_in_view": "", + "total_hours_on_board": "", + "total_jobs_in_view": "", + "total_jobs_on_board": "", + "total_lab_in_production": "", + "total_lab_in_view": "", + "total_lab_on_board": "", + "total_lar_in_production": "", + "total_lar_in_view": "", + "total_lar_on_board": "" + }, + "successes": { + "removed": "" + } + }, + "profile": { + "errors": { + "state": "Error al leer el estado de la página. Porfavor refresca." + }, + "labels": { + "activeshop": "" + }, + "successes": { + "updated": "" + } + }, + "reportcenter": { + "actions": { + "generate": "" + }, + "labels": { + "advanced_filters": "", + "advanced_filters_false": "", + "advanced_filters_filter_field": "", + "advanced_filters_filter_operator": "", + "advanced_filters_filter_value": "", + "advanced_filters_filters": "", + "advanced_filters_hide": "", + "advanced_filters_show": "", + "advanced_filters_sorter_direction": "", + "advanced_filters_sorter_field": "", + "advanced_filters_sorters": "", + "advanced_filters_true": "", + "dates": "", + "employee": "", + "filterson": "", + "generateasemail": "", + "groups": { + "customers": "", + "jobs": "", + "payroll": "", + "purchases": "", + "sales": "" + }, + "key": "", + "objects": { + "appointments": "", + "bills": "", + "csi": "", + "exportlogs": "", + "jobs": "", + "parts_orders": "", + "payments": "", + "scoreboard": "", + "tasks": "", + "timetickets": "" + }, + "vendor": "" + }, + "templates": { + "adp_payroll_flat": "", + "adp_payroll_straight": "", + "anticipated_revenue": "", + "ar_aging": "", + "attendance_detail": "", + "attendance_employee": "", + "attendance_summary": "", + "committed_timetickets": "", + "committed_timetickets_employee": "", + "committed_timetickets_summary": "", + "credits_not_received_date": "", + "credits_not_received_date_vendorid": "", + "csi": "", + "customer_list": "", + "cycle_time_analysis": "", + "estimates_written_converted": "", + "estimator_detail": "", + "estimator_summary": "", + "export_payables": "", + "export_payments": "", + "export_receivables": "", + "exported_gsr_by_ro": "", + "exported_gsr_by_ro_labor": "", + "gsr_by_atp": "", + "gsr_by_ats": "", + "gsr_by_category": "", + "gsr_by_csr": "", + "gsr_by_delivery_date": "", + "gsr_by_estimator": "", + "gsr_by_exported_date": "", + "gsr_by_ins_co": "", + "gsr_by_make": "", + "gsr_by_referral": "", + "gsr_by_ro": "", + "gsr_labor_only": "", + "hours_sold_detail_closed": "", + "hours_sold_detail_closed_csr": "", + "hours_sold_detail_closed_estimator": "", + "hours_sold_detail_closed_ins_co": "", + "hours_sold_detail_closed_status": "", + "hours_sold_detail_open": "", + "hours_sold_detail_open_csr": "", + "hours_sold_detail_open_estimator": "", + "hours_sold_detail_open_ins_co": "", + "hours_sold_detail_open_status": "", + "hours_sold_summary_closed": "", + "hours_sold_summary_closed_csr": "", + "hours_sold_summary_closed_estimator": "", + "hours_sold_summary_closed_ins_co": "", + "hours_sold_summary_closed_status": "", + "hours_sold_summary_open": "", + "hours_sold_summary_open_csr": "", + "hours_sold_summary_open_estimator": "", + "hours_sold_summary_open_ins_co": "", + "hours_sold_summary_open_status": "", + "job_costing_ro_csr": "", + "job_costing_ro_date_detail": "", + "job_costing_ro_date_summary": "", + "job_costing_ro_estimator": "", + "job_costing_ro_ins_co": "", + "job_lifecycle_date_detail": "", + "job_lifecycle_date_summary": "", + "jobs_completed_not_invoiced": "", + "jobs_invoiced_not_exported": "", + "jobs_reconcile": "", + "jobs_scheduled_completion": "", + "lag_time": "", + "load_level": "", + "lost_sales": "", + "open_orders": "", + "open_orders_csr": "", + "open_orders_estimator": "", + "open_orders_excel": "", + "open_orders_ins_co": "", + "open_orders_referral": "", + "open_orders_specific_csr": "", + "open_orders_status": "", + "parts_backorder": "", + "parts_not_recieved": "", + "parts_not_recieved_vendor": "", + "parts_received_not_scheduled": "", + "payments_by_date": "", + "payments_by_date_payment": "", + "payments_by_date_type": "", + "production_by_category": "", + "production_by_category_one": "", + "production_by_csr": "", + "production_by_last_name": "", + "production_by_repair_status": "", + "production_by_repair_status_one": "", + "production_by_ro": "", + "production_by_target_date": "", + "production_by_technician": "", + "production_by_technician_one": "", + "production_not_production_status": "", + "production_over_time": "", + "psr_by_make": "", + "purchase_return_ratio_excel": "", + "purchase_return_ratio_grouped_by_vendor_detail": "", + "purchase_return_ratio_grouped_by_vendor_summary": "", + "purchases_by_cost_center_detail": "", + "purchases_by_cost_center_summary": "", + "purchases_by_date_range_detail": "", + "purchases_by_date_range_summary": "", + "purchases_by_ro_detail_date": "", + "purchases_by_ro_summary_date": "", + "purchases_by_vendor_detailed_date_range": "", + "purchases_by_vendor_summary_date_range": "", + "purchases_grouped_by_vendor_detailed": "", + "purchases_grouped_by_vendor_summary": "", + "returns_grouped_by_vendor_detailed": "", + "returns_grouped_by_vendor_summary": "", + "schedule": "", + "scheduled_parts_list": "", + "scoreboard_detail": "", + "scoreboard_summary": "", + "supplement_ratio_ins_co": "", + "tasks_date": "", + "tasks_date_employee": "", + "thank_you_date": "", + "timetickets": "", + "timetickets_employee": "", + "timetickets_summary": "", + "total_loss_jobs": "", + "unclaimed_hrs": "", + "void_ros": "", + "work_in_progress_committed_labour": "", + "work_in_progress_jobs": "", + "work_in_progress_labour": "", + "work_in_progress_payables": "" + } + }, + "schedule": { + "labels": { + "atssummary": "", + "employeevacation": "", + "estimators": "", + "ins_co_nm_filter": "", + "intake": "", + "manual": "", + "manualevent": "" + } + }, + "scoreboard": { + "actions": { + "edit": "" + }, + "errors": { + "adding": "", + "removing": "", + "updating": "" + }, + "fields": { + "bodyhrs": "", + "date": "", + "painthrs": "" + }, + "labels": { + "allemployeetimetickets": "", + "asoftodaytarget": "", + "body": "", + "bodyabbrev": "", + "bodycharttitle": "", + "calendarperiod": "", + "combinedcharttitle": "", + "dailyactual": "", + "dailytarget": "", + "efficiencyoverperiod": "", + "entries": "", + "jobs": "", + "jobscompletednotinvoiced": "", + "lastmonth": "", + "lastweek": "", + "monthlytarget": "", + "priorweek": "", + "productivestatistics": "", + "productivetimeticketsoverdate": "", + "refinish": "", + "refinishabbrev": "", + "refinishcharttitle": "", + "targets": "", + "thismonth": "", + "thisweek": "", + "timetickets": "", + "timeticketsemployee": "", + "todateactual": "", + "total": "", + "totalhrs": "", + "totaloverperiod": "", + "weeklyactual": "", + "weeklytarget": "", + "workingdays": "" + }, + "successes": { + "added": "", + "removed": "", + "updated": "" + } + }, + "tasks": { + "actions": { + "edit": "", + "new": "" + }, + "buttons": { + "allTasks": "", + "complete": "", + "create": "", + "delete": "", + "edit": "", + "myTasks": "", + "refresh": "" + }, + "date_presets": { + "completion": "", + "day": "", + "days": "", + "delivery": "", + "next_week": "", + "one_month": "", + "three_months": "", + "three_weeks": "", + "today": "", + "tomorrow": "", + "two_weeks": "" + }, + "failures": { + "completed": "", + "created": "", + "deleted": "", + "updated": "" + }, + "fields": { + "actions": "", + "assigned_to": "", + "bill": "", + "billid": "", + "completed": "", + "created_at": "", + "created_by": "", + "description": "", + "due_date": "", + "job": { + "ro_number": "" + }, + "jobid": "", + "jobline": "", + "joblineid": "", + "parts_order": "", + "partsorderid": "", + "priorities": { + "high": "", + "low": "", + "medium": "" + }, + "priority": "", + "related_items": "", + "remind_at": "", + "title": "" + }, + "placeholders": { + "assigned_to": "", + "billid": "", + "description": "", + "jobid": "", + "joblineid": "", + "partsorderid": "" + }, + "successes": { + "completed": "", + "created": "", + "deleted": "", + "updated": "" + }, + "titles": { + "all_tasks": "", + "completed": "", + "deleted": "", + "job_tasks": "", + "mine": "", + "my_tasks": "" + }, + "validation": { + "due_at_error_message": "", + "remind_at_error_message": "" + } + }, + "tech": { + "fields": { + "employeeid": "", + "pin": "" + }, + "labels": { + "loggedin": "", + "notloggedin": "" + } + }, + "templates": { + "errors": { + "updating": "" + }, + "successes": { + "updated": "" + } + }, + "timetickets": { + "actions": { + "claimtasks": "", + "clockin": "", + "clockout": "", + "commit": "", + "commitone": "", + "enter": "", + "payall": "", + "printemployee": "", + "uncommit": "" + }, + "errors": { + "clockingin": "", + "clockingout": "", + "creating": "", + "deleting": "", + "noemployeeforuser": "", + "noemployeeforuser_sub": "", + "payall": "", + "shiftalreadyclockedon": "" + }, + "fields": { + "actualhrs": "", + "ciecacode": "", + "clockhours": "", + "clockoff": "", + "clockon": "", + "committed": "", + "committed_at": "", + "cost_center": "", + "created_by": "", + "date": "", + "efficiency": "", + "employee": "", + "employee_team": "", + "flat_rate": "", + "memo": "", + "productivehrs": "", + "ro_number": "", + "task_name": "" + }, + "labels": { + "alreadyclockedon": "", + "ambreak": "", + "amshift": "", + "claimtaskpreview": "", + "clockhours": "", + "clockintojob": "", + "deleteconfirm": "", + "edit": "", + "efficiency": "", + "flat_rate": "", + "jobhours": "", + "lunch": "", + "new": "", + "payrollclaimedtasks": "", + "pmbreak": "", + "pmshift": "", + "shift": "", + "shiftalreadyclockedon": "", + "straight_time": "", + "task": "", + "timetickets": "", + "unassigned": "", + "zeroactualnegativeprod": "" + }, + "successes": { + "clockedin": "", + "clockedout": "", + "committed": "", + "created": "", + "deleted": "", + "payall": "" + }, + "validation": { + "clockoffmustbeafterclockon": "", + "clockoffwithoutclockon": "", + "hoursenteredmorethanavailable": "", + "unassignedlines": "" + } + }, + "titles": { + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "all_tasks": "", + "app": "", + "bc": { + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "all_tasks": "", + "availablejobs": "", + "bills-list": "", + "contracts": "", + "contracts-create": "", + "contracts-detail": "", + "courtesycars": "", + "courtesycars-detail": "", + "courtesycars-new": "", + "dashboard": "", + "dms": "", + "export-logs": "", + "inventory": "", + "jobs": "", + "jobs-active": "", + "jobs-admin": "", + "jobs-all": "", + "jobs-checklist": "", + "jobs-close": "", + "jobs-deliver": "", + "jobs-detail": "", + "jobs-intake": "", + "jobs-new": "", + "jobs-ready": "", + "my_tasks": "", + "owner-detail": "", + "owners": "", + "parts-queue": "", + "payments-all": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "profile": "", + "schedule": "", + "scoreboard": "", + "shop": "", + "shop-csi": "", + "shop-templates": "", + "shop-vendors": "", + "tasks": "", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicle-details": "", + "vehicles": "" + }, + "bills-list": "", + "contracts": "", + "contracts-create": "", + "contracts-detail": "", + "courtesycars": "", + "courtesycars-create": "", + "courtesycars-detail": "", + "dashboard": "", + "dms": "", + "export-logs": "", + "imexonline": "", + "inventory": "", + "jobs": "Todos los trabajos | {{app}}", + "jobs-admin": "", + "jobs-all": "", + "jobs-checklist": "", + "jobs-close": "", + "jobs-create": "", + "jobs-deliver": "", + "jobs-intake": "", + "jobsavailable": "Empleos disponibles | {{app}}", + "jobsdetail": "Trabajo {{ro_number}} | {{app}}", + "jobsdocuments": "Documentos de trabajo {{ro_number}} | {{app}}", + "manageroot": "Casa | {{app}}", + "my_tasks": "", + "owners": "Todos los propietarios | {{app}}", + "owners-detail": "", + "parts-queue": "", + "payments-all": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "profile": "Mi perfil | {{app}}", + "readyjobs": "", + "resetpassword": "", + "resetpasswordvalidate": "", + "romeonline": "", + "schedule": "Horario | {{app}}", + "scoreboard": "", + "shop": "Mi tienda | {{app}}", + "shop-csi": "", + "shop-templates": "", + "shop_vendors": "Vendedores | {{app}}", + "tasks": "", + "techconsole": "{{app}}", + "techjobclock": "{{app}}", + "techjoblookup": "{{app}}", + "techshiftclock": "{{app}}", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}", + "vehicles": "Todos los vehiculos | {{app}}" + }, + "trello": { + "labels": { + "add_card": "", + "add_lane": "", + "cancel": "", + "delete_lane": "", + "description": "", + "label": "", + "lane_actions": "", + "title": "" + } + }, + "tt_approvals": { + "actions": { + "approveselected": "" + }, + "labels": { + "approval_queue_in_use": "", + "calculate": "" + } + }, + "upsell": { + "cta": { + "learnmore": "" + }, + "messages": { + "accounting": { + "payables": { + "subtitle": "", + "title": "" + }, + "payments": { + "subtitle": "", + "title": "" + }, + "receivables": { + "subtitle": "", + "title": "" + } + }, + "audit": { + "general": { + "subtitle": "", + "title": "" + } + }, + "bills": { + "autoreconcile": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + } + }, + "checklist": { + "general": { + "subtitle": "", + "title": "" + } + }, + "courtesycars": { + "general": { + "subtitle": "", + "title": "" + } + }, + "csi": { + "general": { + "subtitle": "", + "title": "" + } + }, + "dashboard": { + "general": { + "subtitle": "", + "title": "" + } + }, + "lifecycle": { + "general": { + "subtitle": "", + "title": "" + } + }, + "media": { + "general": { + "subtitle": "", + "title": "" + }, + "mobile": { + "subtitle": "", + "title": "" + } + }, + "payments": { + "general": { + "subtitle": "", + "title": "" + } + }, + "scoreboard": { + "general": { + "subtitle": "", + "title": "" + } + }, + "smartscheduling": { + "datepicker": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + }, + "hrsdelta": { + "subtitle": "", + "title": "" + } + }, + "techconsole": { + "general": { + "subtitle": "", + "title": "" + } + }, + "timetickets": { + "allocations": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + } + }, + "visualboard": { + "general": { + "subtitle": "", + "title": "" + } + } + } + }, + "user": { + "actions": { + "changepassword": "", + "signout": "desconectar", + "updateprofile": "Actualización del perfil" + }, + "errors": { + "updating": "" + }, + "fields": { + "authlevel": "", + "displayname": "Nombre para mostrar", + "email": "", + "photourl": "URL de avatar" + }, + "labels": { + "actions": "", + "changepassword": "", + "profileinfo": "" + }, + "successess": { + "passwordchanged": "" + } + }, + "users": { + "errors": { + "signinerror": { + "auth/user-disabled": "", + "auth/user-not-found": "", + "auth/wrong-password": "" + } + } + }, + "vehicles": { + "errors": { + "deleting": "", + "noaccess": "El vehículo no existe o usted no tiene acceso a él.", + "selectexistingornew": "", + "validation": "Asegúrese de que todos los campos se ingresen correctamente.", + "validationtitle": "Error de validacion" + }, + "fields": { + "description": "Descripcion del vehiculo", + "notes": "", + "plate_no": "Placa", + "plate_st": "Jurisdicción de placas", + "trim_color": "Recortar color", + "v_bstyle": "Tipo de cuerpo", + "v_color": "Color", + "v_cond": "condición", + "v_engine": "Motor", + "v_make_desc": "Hacer", + "v_makecode": "Hacer código", + "v_mldgcode": "Código de moldeo", + "v_model_desc": "Modelo", + "v_model_yr": "año", + "v_options": "Opciones", + "v_paint_codes": "Códigos de pintura", + "v_prod_dt": "Fecha de producción", + "v_stage": "Escenario", + "v_tone": "Tono", + "v_trimcode": "Código de recorte", + "v_type": "Tipo", + "v_vin": "V.I.N." + }, + "forms": { + "detail": "", + "misc": "", + "registration": "" + }, + "labels": { + "deleteconfirm": "", + "fromvehicle": "", + "novehinfo": "", + "relatedjobs": "", + "updatevehicle": "" + }, + "successes": { + "delete": "", + "save": "Vehículo guardado con éxito." + } + }, + "vendors": { + "actions": { + "addtophonebook": "", + "new": "Nuevo vendedor", + "newpreferredmake": "" + }, + "errors": { + "deleting": "Se encontró un error al eliminar el proveedor.", + "saving": "Se encontró un error al guardar el proveedor." + }, + "fields": { + "active": "", + "am": "", + "city": "ciudad", + "cost_center": "Centro de costos", + "country": "País", + "discount": "% De descuento", + "display_name": "Nombre para mostrar", + "dmsid": "", + "due_date": "Fecha de vencimiento del pago", + "email": "Email de contacto", + "favorite": "¿Favorito?", + "lkq": "", + "make": "", + "name": "Nombre del vendedor", + "oem": "", + "phone": "", + "prompt_discount": "Descuento pronto", + "state": "Provincia del estado", + "street1": "calle", + "street2": "Dirección 2", + "taxid": "Identificación del impuesto", + "terms": "Términos de pago", + "zip": "código postal" + }, + "labels": { + "noneselected": "Ningún vendedor está seleccionado.", + "preferredmakes": "", + "search": "Escriba el nombre de un proveedor" + }, + "successes": { + "deleted": "Proveedor eliminado correctamente.", + "saved": "Proveedor guardado con éxito." + }, + "validation": { + "unique_vendor_name": "" + } + } + } } diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index e499e4275..e7f48c825 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1,262 +1,262 @@ { - "translation": { - "allocations": { - "actions": { - "assign": "Attribuer" - }, - "errors": { - "deleting": "", - "saving": "", - "validation": "" - }, - "fields": { - "employee": "Alloué à" - }, - "successes": { - "deleted": "", - "save": "" - } - }, - "appointments": { - "actions": { - "block": "", - "calculate": "", - "cancel": "annuler", - "intake": "Admission", - "new": "Nouveau rendez-vous", - "preview": "", - "reschedule": "Replanifier", - "sendreminder": "", - "unblock": "", - "viewjob": "Voir le travail" - }, - "errors": { - "blocking": "", - "canceling": "Erreur lors de l'annulation du rendez-vous. {{message}}", - "saving": "Erreur lors de la planification du rendez-vous. {{message}}" - }, - "fields": { - "alt_transport": "", - "color": "", - "end": "", - "note": "", - "start": "", - "time": "", - "title": "Titre" - }, - "labels": { - "arrivedon": "Arrivé le:", - "arrivingjobs": "", - "blocked": "", - "cancelledappointment": "Rendez-vous annulé pour:", - "completingjobs": "", - "dataconsistency": "", - "expectedjobs": "", - "expectedprodhrs": "", - "history": "", - "inproduction": "", - "manualevent": "", - "noarrivingjobs": "", - "nocompletingjobs": "", - "nodateselected": "Aucune date n'a été sélectionnée.", - "priorappointments": "Rendez-vous précédents", - "reminder": "", - "scheduledfor": "Rendez-vous prévu pour:", - "severalerrorsfound": "", - "smartscheduling": "", - "smspaymentreminder": "", - "suggesteddates": "" - }, - "successes": { - "canceled": "Rendez-vous annulé avec succès.", - "created": "Rendez-vous planifié avec succès.", - "saved": "" - } - }, - "associations": { - "actions": { - "activate": "Activer" - }, - "fields": { - "active": "Actif?", - "shopname": "nom de la boutique" - }, - "labels": { - "actions": "actes" - } - }, - "audit": { - "fields": { - "cc": "", - "contents": "", - "created": "", - "operation": "", - "status": "", - "subject": "", - "to": "", - "useremail": "", - "values": "" - } - }, - "audit_trail": { - "messages": { - "admin_job_remove_from_ar": "", - "admin_jobmarkexported": "", - "admin_jobmarkforreexport": "", - "admin_jobuninvoice": "", - "admin_jobunvoid": "", - "alerttoggle": "", - "appointmentcancel": "", - "appointmentinsert": "", - "assignedlinehours": "", - "billdeleted": "", - "billposted": "", - "billupdated": "", - "failedpayment": "", - "jobassignmentchange": "", - "jobassignmentremoved": "", - "jobchecklist": "", - "jobclosedwithbypass": "", - "jobconverted": "", - "jobdelivery": "", - "jobexported": "", - "jobfieldchanged": "", - "jobimported": "", - "jobinproductionchange": "", - "jobintake": "", - "jobinvoiced": "", - "jobioucreated": "", - "jobmodifylbradj": "", - "jobnoteadded": "", - "jobnotedeleted": "", - "jobnoteupdated": "", - "jobspartsorder": "", - "jobspartsreturn": "", - "jobstatuschange": "", - "jobsupplement": "", - "jobsuspend": "", - "jobvoid": "", - "tasks_completed": "", - "tasks_created": "", - "tasks_deleted": "", - "tasks_uncompleted": "", - "tasks_undeleted": "", - "tasks_updated": "" - } - }, - "billlines": { - "actions": { - "newline": "" - }, - "fields": { - "actual_cost": "", - "actual_price": "", - "cost_center": "", - "federal_tax_applicable": "", - "jobline": "", - "line_desc": "", - "local_tax_applicable": "", - "location": "", - "quantity": "", - "state_tax_applicable": "" - }, - "labels": { - "deductedfromlbr": "", - "entered": "", - "from": "", - "mod_lbr_adjustment": "", - "other": "", - "reconciled": "", - "unreconciled": "" - }, - "validation": { - "atleastone": "" - } - }, - "bills": { - "actions": { - "deductallhours": "", - "edit": "", - "receive": "", - "return": "" - }, - "errors": { - "creating": "", - "deleting": "", - "existinginventoryline": "", - "exporting": "", - "exporting-partner": "", - "invalidro": "", - "invalidvendor": "", - "validation": "" - }, - "fields": { - "allpartslocation": "", - "date": "", - "exported": "", - "federal_tax_rate": "", - "invoice_number": "", - "is_credit_memo": "", - "is_credit_memo_short": "", - "local_tax_rate": "", - "ro_number": "", - "state_tax_rate": "", - "total": "", - "vendor": "", - "vendorname": "" - }, - "labels": { - "actions": "", - "bill_lines": "", - "bill_total": "", - "billcmtotal": "", - "bills": "", - "calculatedcreditsnotreceived": "", - "creditsnotreceived": "", - "creditsreceived": "", - "dedfromlbr": "", - "deleteconfirm": "", - "discrepancy": "", - "discrepwithcms": "", - "discrepwithlbradj": "", - "editadjwarning": "", - "entered_total": "", - "enteringcreditmemo": "", - "federal_tax": "", - "federal_tax_exempt": "", - "generatepartslabel": "", - "iouexists": "", - "local_tax": "", - "markexported": "", - "markforreexport": "", - "new": "", - "nobilllines": "", - "noneselected": "", - "onlycmforinvoiced": "", - "printlabels": "", - "retailtotal": "", - "returnfrombill": "", - "savewithdiscrepancy": "", - "state_tax": "", - "subtotal": "", - "totalreturns": "" - }, - "successes": { - "created": "", - "deleted": "", - "exported": "", - "markexported": "", - "reexport": "" - }, - "validation": { - "closingperiod": "", - "inventoryquantity": "", - "manualinhouse": "", - "unique_invoice_number": "" - } - }, - "bodyshop": { - "operations": { + "translation": { + "allocations": { + "actions": { + "assign": "Attribuer" + }, + "errors": { + "deleting": "", + "saving": "", + "validation": "" + }, + "fields": { + "employee": "Alloué à" + }, + "successes": { + "deleted": "", + "save": "" + } + }, + "appointments": { + "actions": { + "block": "", + "calculate": "", + "cancel": "annuler", + "intake": "Admission", + "new": "Nouveau rendez-vous", + "preview": "", + "reschedule": "Replanifier", + "sendreminder": "", + "unblock": "", + "viewjob": "Voir le travail" + }, + "errors": { + "blocking": "", + "canceling": "Erreur lors de l'annulation du rendez-vous. {{message}}", + "saving": "Erreur lors de la planification du rendez-vous. {{message}}" + }, + "fields": { + "alt_transport": "", + "color": "", + "end": "", + "note": "", + "start": "", + "time": "", + "title": "Titre" + }, + "labels": { + "arrivedon": "Arrivé le:", + "arrivingjobs": "", + "blocked": "", + "cancelledappointment": "Rendez-vous annulé pour:", + "completingjobs": "", + "dataconsistency": "", + "expectedjobs": "", + "expectedprodhrs": "", + "history": "", + "inproduction": "", + "manualevent": "", + "noarrivingjobs": "", + "nocompletingjobs": "", + "nodateselected": "Aucune date n'a été sélectionnée.", + "priorappointments": "Rendez-vous précédents", + "reminder": "", + "scheduledfor": "Rendez-vous prévu pour:", + "severalerrorsfound": "", + "smartscheduling": "", + "smspaymentreminder": "", + "suggesteddates": "" + }, + "successes": { + "canceled": "Rendez-vous annulé avec succès.", + "created": "Rendez-vous planifié avec succès.", + "saved": "" + } + }, + "associations": { + "actions": { + "activate": "Activer" + }, + "fields": { + "active": "Actif?", + "shopname": "nom de la boutique" + }, + "labels": { + "actions": "actes" + } + }, + "audit": { + "fields": { + "cc": "", + "contents": "", + "created": "", + "operation": "", + "status": "", + "subject": "", + "to": "", + "useremail": "", + "values": "" + } + }, + "audit_trail": { + "messages": { + "admin_job_remove_from_ar": "", + "admin_jobmarkexported": "", + "admin_jobmarkforreexport": "", + "admin_jobuninvoice": "", + "admin_jobunvoid": "", + "alerttoggle": "", + "appointmentcancel": "", + "appointmentinsert": "", + "assignedlinehours": "", + "billdeleted": "", + "billposted": "", + "billupdated": "", + "failedpayment": "", + "jobassignmentchange": "", + "jobassignmentremoved": "", + "jobchecklist": "", + "jobclosedwithbypass": "", + "jobconverted": "", + "jobdelivery": "", + "jobexported": "", + "jobfieldchanged": "", + "jobimported": "", + "jobinproductionchange": "", + "jobintake": "", + "jobinvoiced": "", + "jobioucreated": "", + "jobmodifylbradj": "", + "jobnoteadded": "", + "jobnotedeleted": "", + "jobnoteupdated": "", + "jobspartsorder": "", + "jobspartsreturn": "", + "jobstatuschange": "", + "jobsupplement": "", + "jobsuspend": "", + "jobvoid": "", + "tasks_completed": "", + "tasks_created": "", + "tasks_deleted": "", + "tasks_uncompleted": "", + "tasks_undeleted": "", + "tasks_updated": "" + } + }, + "billlines": { + "actions": { + "newline": "" + }, + "fields": { + "actual_cost": "", + "actual_price": "", + "cost_center": "", + "federal_tax_applicable": "", + "jobline": "", + "line_desc": "", + "local_tax_applicable": "", + "location": "", + "quantity": "", + "state_tax_applicable": "" + }, + "labels": { + "deductedfromlbr": "", + "entered": "", + "from": "", + "mod_lbr_adjustment": "", + "other": "", + "reconciled": "", + "unreconciled": "" + }, + "validation": { + "atleastone": "" + } + }, + "bills": { + "actions": { + "deductallhours": "", + "edit": "", + "receive": "", + "return": "" + }, + "errors": { + "creating": "", + "deleting": "", + "existinginventoryline": "", + "exporting": "", + "exporting-partner": "", + "invalidro": "", + "invalidvendor": "", + "validation": "" + }, + "fields": { + "allpartslocation": "", + "date": "", + "exported": "", + "federal_tax_rate": "", + "invoice_number": "", + "is_credit_memo": "", + "is_credit_memo_short": "", + "local_tax_rate": "", + "ro_number": "", + "state_tax_rate": "", + "total": "", + "vendor": "", + "vendorname": "" + }, + "labels": { + "actions": "", + "bill_lines": "", + "bill_total": "", + "billcmtotal": "", + "bills": "", + "calculatedcreditsnotreceived": "", + "creditsnotreceived": "", + "creditsreceived": "", + "dedfromlbr": "", + "deleteconfirm": "", + "discrepancy": "", + "discrepwithcms": "", + "discrepwithlbradj": "", + "editadjwarning": "", + "entered_total": "", + "enteringcreditmemo": "", + "federal_tax": "", + "federal_tax_exempt": "", + "generatepartslabel": "", + "iouexists": "", + "local_tax": "", + "markexported": "", + "markforreexport": "", + "new": "", + "nobilllines": "", + "noneselected": "", + "onlycmforinvoiced": "", + "printlabels": "", + "retailtotal": "", + "returnfrombill": "", + "savewithdiscrepancy": "", + "state_tax": "", + "subtotal": "", + "totalreturns": "" + }, + "successes": { + "created": "", + "deleted": "", + "exported": "", + "markexported": "", + "reexport": "" + }, + "validation": { + "closingperiod": "", + "inventoryquantity": "", + "manualinhouse": "", + "unique_invoice_number": "" + } + }, + "bodyshop": { + "operations": { "starts_with": "", "contains": "", "ends_with": "", @@ -266,3361 +266,3488 @@ "less_than": "" }, "actions": { - "add_task_preset": "", - "addapptcolor": "", - "addbucket": "", - "addpartslocation": "", - "addpartsrule": "", - "addspeedprint": "", - "addtemplate": "", - "newlaborrate": "", - "newsalestaxcode": "", - "newstatus": "", - "testrender": "" - }, - "errors": { - "creatingdefaultview": "", - "loading": "Impossible de charger les détails de la boutique. Veuillez appeler le support technique.", - "saving": "" - }, - "fields": { - "ReceivableCustomField": "", - "address1": "", - "address2": "", - "appt_alt_transport": "", - "appt_colors": { - "color": "", - "label": "" - }, - "appt_length": "", - "attach_pdf_to_email": "", - "batchid": "", - "bill_allow_post_to_closed": "", - "bill_federal_tax_rate": "", - "bill_local_tax_rate": "", - "bill_state_tax_rate": "", - "city": "", - "closingperiod": "", - "companycode": "", - "country": "", - "dailybodytarget": "", - "dailypainttarget": "", - "default_adjustment_rate": "", - "deliver": { - "require_actual_delivery_date": "", - "templates": "" - }, - "dms": { - "apcontrol": "", - "appostingaccount": "", - "cashierid": "", - "default_journal": "", - "disablebillwip": "", - "disablecontactvehiclecreation": "", - "dms_acctnumber": "", - "dms_control_override": "", - "dms_wip_acctnumber": "", - "generic_customer_number": "", - "itc_federal": "", - "itc_local": "", - "itc_state": "", - "mappingname": "", - "sendmaterialscosting": "", - "srcco": "" - }, - "email": "", - "enforce_class": "", - "enforce_conversion_category": "", - "enforce_conversion_csr": "", - "enforce_referral": "", - "federal_tax_id": "", - "ignoreblockeddays": "", - "inhousevendorid": "", - "insurance_vendor_id": "", - "intake": { - "next_contact_hours": "", - "templates": "" - }, - "intellipay_config": { - "cash_discount_percentage": "", - "enable_cash_discount": "" - }, - "invoice_federal_tax_rate": "", - "invoice_local_tax_rate": "", - "invoice_state_tax_rate": "", - "jc_hourly_rates": { - "mapa": "", - "mash": "" - }, - "last_name_first": "", - "lastnumberworkingdays": "", - "localmediaserverhttp": "", - "localmediaservernetwork": "", - "localmediatoken": "", - "logo_img_footer_margin": "", - "logo_img_header_margin": "", - "logo_img_path": "", - "logo_img_path_height": "", - "logo_img_path_width": "", - "md_categories": "", - "md_ccc_rates": "", - "md_classes": "", - "md_ded_notes": "", - "md_email_cc": "", - "md_from_emails": "", - "md_functionality_toggles": { - "parts_queue_toggle": "" - }, - "md_hour_split": { - "paint": "", - "prep": "" - }, - "md_ins_co": { - "city": "", - "name": "", - "private": "", - "state": "", - "street1": "", - "street2": "", - "zip": "" - }, - "md_jobline_presets": "", - "md_lost_sale_reasons": "", - "md_parts_order_comment": "", - "md_parts_scan": { - "field": "", - "operation": "", + "add_task_preset": "", + "addapptcolor": "", + "addbucket": "", + "addpartslocation": "", + "addpartsrule": "", + "addspeedprint": "", + "addtemplate": "", + "newlaborrate": "", + "newsalestaxcode": "", + "newstatus": "", + "testrender": "" + }, + "errors": { + "creatingdefaultview": "", + "loading": "Impossible de charger les détails de la boutique. Veuillez appeler le support technique.", + "saving": "" + }, + "fields": { + "ReceivableCustomField": "", + "address1": "", + "address2": "", + "appt_alt_transport": "", + "appt_colors": { + "color": "", + "label": "" + }, + "appt_length": "", + "attach_pdf_to_email": "", + "batchid": "", + "bill_allow_post_to_closed": "", + "bill_federal_tax_rate": "", + "bill_local_tax_rate": "", + "bill_state_tax_rate": "", + "city": "", + "closingperiod": "", + "companycode": "", + "country": "", + "dailybodytarget": "", + "dailypainttarget": "", + "default_adjustment_rate": "", + "deliver": { + "require_actual_delivery_date": "", + "templates": "" + }, + "dms": { + "apcontrol": "", + "appostingaccount": "", + "cashierid": "", + "default_journal": "", + "disablebillwip": "", + "disablecontactvehiclecreation": "", + "dms_acctnumber": "", + "dms_control_override": "", + "dms_wip_acctnumber": "", + "generic_customer_number": "", + "itc_federal": "", + "itc_local": "", + "itc_state": "", + "mappingname": "", + "sendmaterialscosting": "", + "srcco": "" + }, + "email": "", + "enforce_class": "", + "enforce_conversion_category": "", + "enforce_conversion_csr": "", + "enforce_referral": "", + "federal_tax_id": "", + "ignoreblockeddays": "", + "inhousevendorid": "", + "insurance_vendor_id": "", + "intake": { + "next_contact_hours": "", + "templates": "" + }, + "intellipay_config": { + "cash_discount_percentage": "", + "enable_cash_discount": "" + }, + "invoice_federal_tax_rate": "", + "invoice_local_tax_rate": "", + "invoice_state_tax_rate": "", + "jc_hourly_rates": { + "mapa": "", + "mash": "" + }, + "last_name_first": "", + "lastnumberworkingdays": "", + "localmediaserverhttp": "", + "localmediaservernetwork": "", + "localmediatoken": "", + "logo_img_footer_margin": "", + "logo_img_header_margin": "", + "logo_img_path": "", + "logo_img_path_height": "", + "logo_img_path_width": "", + "md_categories": "", + "md_ccc_rates": "", + "md_classes": "", + "md_ded_notes": "", + "md_email_cc": "", + "md_from_emails": "", + "md_functionality_toggles": { + "parts_queue_toggle": "" + }, + "md_hour_split": { + "paint": "", + "prep": "" + }, + "md_ins_co": { + "city": "", + "name": "", + "private": "", + "state": "", + "street1": "", + "street2": "", + "zip": "" + }, + "md_jobline_presets": "", + "md_lost_sale_reasons": "", + "md_parts_order_comment": "", + "md_parts_scan": { + "field": "", + "operation": "", "value": "", "caseInsensitive": "" - }, - "md_payment_types": "", - "md_referral_sources": "", - "md_ro_guard": { - "enabled": "", - "enforce_ar": "", - "enforce_bills": "", - "enforce_cm": "", - "enforce_labor": "", - "enforce_ppd": "", - "enforce_profit": "", - "enforce_sublet": "", - "masterbypass": "", - "totalgppercent_minimum": "" - }, - "md_tasks_presets": { - "enable_tasks": "", - "hourstype": "", - "memo": "", - "name": "", - "nextstatus": "", - "percent": "", - "use_approvals": "" - }, - "messaginglabel": "", - "messagingtext": "", - "noteslabel": "", - "notestext": "", - "partslocation": "", - "phone": "", - "prodtargethrs": "", - "rbac": { - "accounting": { - "exportlog": "", - "payables": "", - "payments": "", - "receivables": "" - }, - "bills": { - "delete": "", - "enter": "", - "list": "", - "reexport": "", - "view": "" - }, - "contracts": { - "create": "", - "detail": "", - "list": "" - }, - "courtesycar": { - "create": "", - "detail": "", - "list": "" - }, - "csi": { - "export": "", - "page": "" - }, - "employee_teams": { - "page": "" - }, - "employees": { - "page": "" - }, - "inventory": { - "delete": "", - "list": "" - }, - "jobs": { - "admin": "", - "available-list": "", - "checklist-view": "", - "close": "", - "create": "", - "deliver": "", - "detail": "", - "intake": "", - "list-active": "", - "list-all": "", - "list-ready": "", - "partsqueue": "", - "void": "" - }, - "owners": { - "detail": "", - "list": "" - }, - "payments": { - "enter": "", - "list": "" - }, - "phonebook": { - "edit": "", - "view": "" - }, - "production": { - "board": "", - "list": "" - }, - "schedule": { - "view": "" - }, - "scoreboard": { - "view": "" - }, - "shiftclock": { - "view": "" - }, - "shop": { - "config": "", - "dashboard": "", - "rbac": "", - "reportcenter": "", - "templates": "", - "vendors": "" - }, - "temporarydocs": { - "view": "" - }, - "timetickets": { - "edit": "", - "editcommitted": "", - "enter": "", - "list": "", - "shiftedit": "" - }, - "ttapprovals": { - "approve": "", - "view": "" - }, - "users": { - "editaccess": "" - } - }, - "responsibilitycenter": "", - "responsibilitycenter_accountdesc": "", - "responsibilitycenter_accountitem": "", - "responsibilitycenter_accountname": "", - "responsibilitycenter_accountnumber": "", - "responsibilitycenter_rate": "", - "responsibilitycenter_tax_rate": "", - "responsibilitycenter_tax_sur": "", - "responsibilitycenter_tax_thres": "", - "responsibilitycenter_tax_tier": "", - "responsibilitycenter_tax_type": "", - "responsibilitycenters": { - "ap": "", - "ar": "", - "ats": "", - "federal_tax": "", - "federal_tax_itc": "", - "gst_override": "", - "invoiceexemptcode": "", - "itemexemptcode": "", - "la1": "", - "la2": "", - "la3": "", - "la4": "", - "laa": "", - "lab": "", - "lad": "", - "lae": "", - "laf": "", - "lag": "", - "lam": "", - "lar": "", - "las": "", - "lau": "", - "local_tax": "", - "mapa": "", - "mash": "", - "paa": "", - "pac": "", - "pag": "", - "pal": "", - "pam": "", - "pan": "", - "pao": "", - "pap": "", - "par": "", - "pas": "", - "pasl": "", - "refund": "", - "sales_tax_codes": { - "code": "", - "description": "", - "federal": "", - "local": "", - "state": "" - }, - "state_tax": "", - "tow": "" - }, - "schedule_end_time": "", - "schedule_start_time": "", - "shopname": "", - "speedprint": { - "id": "", - "label": "", - "templates": "" - }, - "ss_configuration": { - "dailyhrslimit": "" - }, - "ssbuckets": { - "color": "", - "gte": "", - "id": "", - "label": "", - "lt": "", - "target": "" - }, - "state": "", - "state_tax_id": "", - "status": "", - "statuses": { - "active_statuses": "", - "additional_board_statuses": "", - "color": "", - "default_arrived": "", - "default_bo": "", - "default_canceled": "", - "default_completed": "", - "default_delivered": "", - "default_exported": "", - "default_imported": "", - "default_invoiced": "", - "default_ordered": "", - "default_quote": "", - "default_received": "", - "default_returned": "", - "default_scheduled": "", - "default_void": "", - "open_statuses": "", - "post_production_statuses": "", - "pre_production_statuses": "", - "production_colors": "", - "production_statuses": "", - "ready_statuses": "" - }, - "target_touchtime": "", - "timezone": "", - "tt_allow_post_to_invoiced": "", - "tt_enforce_hours_for_tech_console": "", - "use_fippa": "", - "use_paint_scale_data": "", - "uselocalmediaserver": "", - "website": "", - "zip_post": "" - }, - "labels": { - "2tiername": "", - "2tiersetup": "", - "2tiersource": "", - "accountingsetup": "", - "accountingtiers": "", - "alljobstatuses": "", - "allopenjobstatuses": "", - "apptcolors": "", - "businessinformation": "", - "checklists": "", - "csiq": "", - "customtemplates": "", - "defaultcostsmapping": "", - "defaultprofitsmapping": "", - "deliverchecklist": "", - "dms": { - "cdk": { - "controllist": "", - "payers": "" - }, - "cdk_dealerid": "", - "costsmapping": "", - "dms_allocations": "", - "pbs_serialnumber": "", - "profitsmapping": "", - "title": "" - }, - "emaillater": "", - "employee_teams": "", - "employees": "", - "estimators": "", - "filehandlers": "", - "imexpay": "", - "insurancecos": "", - "intakechecklist": "", - "intellipay_cash_discount": "", - "jobstatuses": "", - "laborrates": "", - "licensing": "", - "md_parts_scan": "", - "md_ro_guard": "", - "md_tasks_presets": "", - "md_to_emails": "", - "md_to_emails_emails": "", - "messagingpresets": "", - "notemplatesavailable": "", - "notespresets": "", - "orderstatuses": "", - "partslocations": "", - "partsscan": "", - "printlater": "", - "qbo": "", - "qbo_departmentid": "", - "qbo_usa": "", - "rbac": "", - "responsibilitycenters": { - "costs": "", - "profits": "", - "sales_tax_codes": "", - "tax_accounts": "", - "title": "", - "ttl_adjustment": "", - "ttl_tax_adjustment": "" - }, - "roguard": { - "title": "" - }, - "romepay": "", - "scheduling": "", - "scoreboardsetup": "", - "shopinfo": "", - "speedprint": "", - "ssbuckets": "", - "systemsettings": "", - "task-presets": "", - "workingdays": "" - }, - "successes": { - "areyousure": "", - "defaultviewcreated": "", - "save": "", - "unsavedchanges": "" - }, - "validation": { - "centermustexist": "", - "larsplit": "", - "useremailmustexist": "" - } - }, - "checklist": { - "actions": { - "printall": "" - }, - "errors": { - "complete": "", - "nochecklist": "" - }, - "labels": { - "addtoproduction": "", - "allow_text_message": "", - "checklist": "", - "printpack": "", - "removefromproduction": "" - }, - "successes": { - "completed": "" - } - }, - "contracts": { - "actions": { - "changerate": "", - "convertoro": "", - "decodelicense": "", - "find": "", - "printcontract": "", - "senddltoform": "" - }, - "errors": { - "fetchingjobinfo": "", - "returning": "", - "saving": "", - "selectjobandcar": "" - }, - "fields": { - "actax": "", - "actualreturn": "", - "agreementnumber": "", - "cc_cardholder": "", - "cc_expiry": "", - "cc_num": "", - "cleanupcharge": "", - "coverage": "", - "dailyfreekm": "", - "dailyrate": "", - "damage": "", - "damagewaiver": "", - "driver": "", - "driver_addr1": "", - "driver_addr2": "", - "driver_city": "", - "driver_dlexpiry": "", - "driver_dlnumber": "", - "driver_dlst": "", - "driver_dob": "", - "driver_fn": "", - "driver_ln": "", - "driver_ph1": "", - "driver_state": "", - "driver_zip": "", - "excesskmrate": "", - "federaltax": "", - "fuelin": "", - "fuelout": "", - "kmend": "", - "kmstart": "", - "length": "", - "localtax": "", - "refuelcharge": "", - "scheduledreturn": "", - "start": "", - "statetax": "", - "status": "" - }, - "labels": { - "agreement": "", - "availablecars": "", - "cardueforservice": "", - "convertform": { - "applycleanupcharge": "", - "refuelqty": "" - }, - "correctdataonform": "", - "dateinpast": "", - "dlexpirebeforereturn": "", - "driverinformation": "", - "findcontract": "", - "findermodal": "", - "insuranceexpired": "", - "noteconvertedfrom": "", - "populatefromjob": "", - "rates": "", - "time": "", - "vehicle": "", - "waitingforscan": "" - }, - "status": { - "new": "", - "out": "", - "returned": "" - }, - "successes": { - "saved": "" - } - }, - "courtesycars": { - "actions": { - "new": "", - "return": "" - }, - "errors": { - "saving": "" - }, - "fields": { - "color": "", - "dailycost": "", - "damage": "", - "fleetnumber": "", - "fuel": "", - "insuranceexpires": "", - "leaseenddate": "", - "make": "", - "mileage": "", - "model": "", - "nextservicedate": "", - "nextservicekm": "", - "notes": "", - "plate": "", - "purchasedate": "", - "readiness": "", - "registrationexpires": "", - "serviceenddate": "", - "servicestartdate": "", - "status": "", - "vin": "", - "year": "" - }, - "labels": { - "courtesycar": "", - "fuel": { - "12": "", - "14": "", - "18": "", - "34": "", - "38": "", - "58": "", - "78": "", - "empty": "", - "full": "" - }, - "outwith": "", - "return": "", - "status": "", - "uniquefleet": "", - "usage": "", - "vehicle": "" - }, - "readiness": { - "notready": "", - "ready": "" - }, - "status": { - "in": "", - "inservice": "", - "leasereturn": "", - "out": "", - "sold": "", - "unavailable": "" - }, - "successes": { - "saved": "" - } - }, - "csi": { - "actions": { - "activate": "" - }, - "errors": { - "creating": "", - "notconfigured": "", - "notfoundsubtitle": "", - "notfoundtitle": "", - "surveycompletesubtitle": "", - "surveycompletetitle": "" - }, - "fields": { - "completedon": "", - "created_at": "", - "surveyid": "", - "validuntil": "" - }, - "labels": { - "copyright": "", - "greeting": "", - "intro": "", - "nologgedinuser": "", - "nologgedinuser_sub": "", - "noneselected": "", - "title": "" - }, - "successes": { - "created": "", - "submitted": "", - "submittedsub": "" - } - }, - "dashboard": { - "actions": { - "addcomponent": "" - }, - "errors": { - "refreshrequired": "", - "updatinglayout": "" - }, - "labels": { - "bodyhrs": "", - "dollarsinproduction": "", - "phone": "", - "prodhrs": "", - "refhrs": "" - }, - "titles": { - "joblifecycle": "", - "labhours": "", - "larhours": "", - "monthlyemployeeefficiency": "", - "monthlyjobcosting": "", - "monthlylaborsales": "", - "monthlypartssales": "", - "monthlyrevenuegraph": "", - "prodhrssummary": "", - "productiondollars": "", - "productionhours": "", - "projectedmonthlysales": "", - "scheduledindate": "", - "scheduledintoday": "", - "scheduledoutdate": "", - "scheduledouttoday": "", - "tasks": "" - } - }, - "dms": { - "errors": { - "alreadyexported": "" - }, - "labels": { - "refreshallocations": "" - } - }, - "documents": { - "actions": { - "delete": "", - "download": "", - "reassign": "", - "selectallimages": "", - "selectallotherdocuments": "" - }, - "errors": { - "deletes3": "Erreur lors de la suppression du document du stockage.", - "deleting": "", - "deleting_cloudinary": "", - "getpresignurl": "Erreur lors de l'obtention de l'URL présignée pour le document. {{message}}", - "insert": "Incapable de télécharger le fichier. {{message}}", - "nodocuments": "Il n'y a pas de documents.", - "updating": "" - }, - "labels": { - "confirmdelete": "", - "doctype": "", - "newjobid": "", - "openinexplorer": "", - "optimizedimage": "", - "reassign_limitexceeded": "", - "reassign_limitexceeded_title": "", - "storageexceeded": "", - "storageexceeded_title": "", - "upload": "Télécharger", - "upload_limitexceeded": "", - "upload_limitexceeded_title": "", - "uploading": "", - "usage": "" - }, - "successes": { - "delete": "Le document a bien été supprimé.", - "edituploaded": "", - "insert": "Document téléchargé avec succès.", - "updated": "" - } - }, - "emails": { - "errors": { - "notsent": "Courriel non envoyé. Erreur rencontrée lors de l'envoi de {{message}}" - }, - "fields": { - "cc": "", - "from": "", - "subject": "", - "to": "" - }, - "labels": { - "attachments": "", - "documents": "", - "emailpreview": "", - "generatingemail": "", - "pdfcopywillbeattached": "", - "preview": "" - }, - "successes": { - "sent": "E-mail envoyé avec succès." - } - }, - "employee_teams": { - "actions": { - "new": "", - "newmember": "" - }, - "fields": { - "active": "", - "employeeid": "", - "max_load": "", - "name": "", - "percentage": "" - } - }, - "employees": { - "actions": { - "addvacation": "", - "new": "Nouvel employé", - "newrate": "" - }, - "errors": { - "delete": "Erreur rencontrée lors de la suppression de l'employé. {{message}}", - "save": "Une erreur s'est produite lors de l'enregistrement de l'employé. {{message}}", - "validation": "Veuillez cocher tous les champs.", - "validationtitle": "Impossible d'enregistrer l'employé." - }, - "fields": { - "active": "Actif?", - "base_rate": "Taux de base", - "cost_center": "Centre de coûts", - "employee_number": "Numéro d'employé", - "external_id": "", - "first_name": "Prénom", - "flat_rate": "Taux fixe (désactivé est le temps normal)", - "hire_date": "Date d'embauche", - "last_name": "Nom de famille", - "pin": "", - "rate": "", - "termination_date": "Date de résiliation", - "user_email": "", - "vacation": { - "end": "", - "length": "", - "start": "" - } - }, - "labels": { - "actions": "", - "active": "", - "endmustbeafterstart": "", - "flat_rate": "", - "inactive": "", - "name": "", - "rate_type": "", - "status": "", - "straight_time": "" - }, - "successes": { - "delete": "L'employé a bien été supprimé.", - "save": "L'employé a enregistré avec succès.", - "vacationadded": "" - }, - "validation": { - "unique_employee_number": "" - } - }, - "eula": { - "buttons": { - "accept": "Accept EULA" - }, - "content": { - "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." - }, - "errors": { - "acceptance": { - "description": "Something went wrong while accepting the EULA. Please try again.", - "message": "Eula Acceptance Error" - } - }, - "labels": { - "accepted_terms": "I accept the terms and conditions of this agreement.", - "address": "Address", - "business_name": "Legal Business Name", - "date_accepted": "Date Accepted", - "first_name": "First Name", - "last_name": "Last Name", - "phone_number": "Phone Number" - }, - "messages": { - "accepted_terms": "Please accept the terms and conditions of this agreement.", - "business_name": "Please enter your legal business name.", - "date_accepted": "Please enter Today's Date.", - "first_name": "Please enter your first name.", - "last_name": "Please enter your last name.", - "phone_number": "Please enter your phone number." - }, - "titles": { - "modal": "Terms and Conditions", - "upper_card": "Acknowledgement" - } - }, - "exportlogs": { - "fields": { - "createdat": "" - }, - "labels": { - "attempts": "", - "priorsuccesfulexport": "" - } - }, - "general": { - "actions": { - "add": "", - "autoupdate": "", - "calculate": "", - "cancel": "", - "clear": "", - "close": "", - "copied": "", - "copylink": "", - "create": "", - "defaults": "", - "delay": "", - "delete": "Effacer", - "deleteall": "", - "deselectall": "", - "download": "", - "edit": "modifier", - "login": "", - "next": "", - "previous": "", - "print": "", - "refresh": "", - "remove": "", - "remove_alert": "", - "reset": " Rétablir l'original.", - "resetpassword": "", - "save": "sauvegarder", - "saveandnew": "", - "saveas": "", - "selectall": "", - "send": "", - "sendbysms": "", - "senderrortosupport": "", - "submit": "", - "tryagain": "", - "view": "", - "viewreleasenotes": "" - }, - "errors": { - "fcm": "", - "notfound": "", - "sizelimit": "" - }, - "itemtypes": { - "contract": "", - "courtesycar": "", - "job": "", - "owner": "", - "vehicle": "" - }, - "labels": { - "actions": "actes", - "areyousure": "", - "barcode": "code à barre", - "cancel": "", - "clear": "", - "confirmpassword": "", - "created_at": "", - "date": "", - "datetime": "", - "email": "", - "errors": "", - "excel": "", - "exceptiontitle": "", - "friday": "", - "globalsearch": "", - "help": "", - "hours": "", - "in": "dans", - "instanceconflictext": "", - "instanceconflictitle": "", - "item": "", - "label": "", - "loading": "Chargement...", - "loadingapp": "Chargement de {{app}}", - "loadingshop": "Chargement des données de la boutique ...", - "loggingin": "Vous connecter ...", - "markedexported": "", - "media": "", - "message": "", - "monday": "", - "na": "N / A", - "newpassword": "", - "no": "", - "nointernet": "", - "nointernet_sub": "", - "none": "", - "out": "En dehors", - "password": "", - "passwordresetsuccess": "", - "passwordresetsuccess_sub": "", - "passwordresetvalidatesuccess": "", - "passwordresetvalidatesuccess_sub": "", - "passwordsdonotmatch": "", - "print": "", - "refresh": "", - "reports": "", - "required": "", - "saturday": "", - "search": "Chercher...", - "searchresults": "", - "selectdate": "", - "sendagain": "", - "sendby": "", - "signin": "", - "sms": "", - "status": "", - "sub_status": { - "expired": "" - }, - "successful": "", - "sunday": "", - "text": "", - "thursday": "", + }, + "md_payment_types": "", + "md_referral_sources": "", + "md_ro_guard": { + "enabled": "", + "enforce_ar": "", + "enforce_bills": "", + "enforce_cm": "", + "enforce_labor": "", + "enforce_ppd": "", + "enforce_profit": "", + "enforce_sublet": "", + "masterbypass": "", + "totalgppercent_minimum": "" + }, + "md_tasks_presets": { + "enable_tasks": "", + "hourstype": "", + "memo": "", + "name": "", + "nextstatus": "", + "percent": "", + "use_approvals": "" + }, + "messaginglabel": "", + "messagingtext": "", + "noteslabel": "", + "notestext": "", + "partslocation": "", + "phone": "", + "prodtargethrs": "", + "rbac": { + "accounting": { + "exportlog": "", + "payables": "", + "payments": "", + "receivables": "" + }, + "bills": { + "delete": "", + "enter": "", + "list": "", + "reexport": "", + "view": "" + }, + "contracts": { + "create": "", + "detail": "", + "list": "" + }, + "courtesycar": { + "create": "", + "detail": "", + "list": "" + }, + "csi": { + "export": "", + "page": "" + }, + "employee_teams": { + "page": "" + }, + "employees": { + "page": "" + }, + "inventory": { + "delete": "", + "list": "" + }, + "jobs": { + "admin": "", + "available-list": "", + "checklist-view": "", + "close": "", + "create": "", + "deliver": "", + "detail": "", + "intake": "", + "list-active": "", + "list-all": "", + "list-ready": "", + "partsqueue": "", + "void": "" + }, + "owners": { + "detail": "", + "list": "" + }, + "payments": { + "enter": "", + "list": "" + }, + "phonebook": { + "edit": "", + "view": "" + }, + "production": { + "board": "", + "list": "" + }, + "schedule": { + "view": "" + }, + "scoreboard": { + "view": "" + }, + "shiftclock": { + "view": "" + }, + "shop": { + "config": "", + "dashboard": "", + "rbac": "", + "reportcenter": "", + "templates": "", + "vendors": "" + }, + "temporarydocs": { + "view": "" + }, + "timetickets": { + "edit": "", + "editcommitted": "", + "enter": "", + "list": "", + "shiftedit": "" + }, + "ttapprovals": { + "approve": "", + "view": "" + }, + "users": { + "editaccess": "" + } + }, + "responsibilitycenter": "", + "responsibilitycenter_accountdesc": "", + "responsibilitycenter_accountitem": "", + "responsibilitycenter_accountname": "", + "responsibilitycenter_accountnumber": "", + "responsibilitycenter_rate": "", + "responsibilitycenter_tax_rate": "", + "responsibilitycenter_tax_sur": "", + "responsibilitycenter_tax_thres": "", + "responsibilitycenter_tax_tier": "", + "responsibilitycenter_tax_type": "", + "responsibilitycenters": { + "ap": "", + "ar": "", + "ats": "", + "federal_tax": "", + "federal_tax_itc": "", + "gst_override": "", + "invoiceexemptcode": "", + "itemexemptcode": "", + "la1": "", + "la2": "", + "la3": "", + "la4": "", + "laa": "", + "lab": "", + "lad": "", + "lae": "", + "laf": "", + "lag": "", + "lam": "", + "lar": "", + "las": "", + "lau": "", + "local_tax": "", + "mapa": "", + "mash": "", + "paa": "", + "pac": "", + "pag": "", + "pal": "", + "pam": "", + "pan": "", + "pao": "", + "pap": "", + "par": "", + "pas": "", + "pasl": "", + "refund": "", + "sales_tax_codes": { + "code": "", + "description": "", + "federal": "", + "local": "", + "state": "" + }, + "state_tax": "", + "tow": "" + }, + "schedule_end_time": "", + "schedule_start_time": "", + "shopname": "", + "speedprint": { + "id": "", + "label": "", + "templates": "" + }, + "ss_configuration": { + "dailyhrslimit": "" + }, + "ssbuckets": { + "color": "", + "gte": "", + "id": "", + "label": "", + "lt": "", + "target": "" + }, + "state": "", + "state_tax_id": "", + "status": "", + "statuses": { + "active_statuses": "", + "additional_board_statuses": "", + "color": "", + "default_arrived": "", + "default_bo": "", + "default_canceled": "", + "default_completed": "", + "default_delivered": "", + "default_exported": "", + "default_imported": "", + "default_invoiced": "", + "default_ordered": "", + "default_quote": "", + "default_received": "", + "default_returned": "", + "default_scheduled": "", + "default_void": "", + "open_statuses": "", + "post_production_statuses": "", + "pre_production_statuses": "", + "production_colors": "", + "production_statuses": "", + "ready_statuses": "" + }, + "target_touchtime": "", + "timezone": "", + "tt_allow_post_to_invoiced": "", + "tt_enforce_hours_for_tech_console": "", + "use_fippa": "", + "use_paint_scale_data": "", + "uselocalmediaserver": "", + "website": "", + "zip_post": "" + }, + "labels": { + "2tiername": "", + "2tiersetup": "", + "2tiersource": "", + "accountingsetup": "", + "accountingtiers": "", + "alljobstatuses": "", + "allopenjobstatuses": "", + "apptcolors": "", + "businessinformation": "", + "checklists": "", + "csiq": "", + "customtemplates": "", + "defaultcostsmapping": "", + "defaultprofitsmapping": "", + "deliverchecklist": "", + "dms": { + "cdk": { + "controllist": "", + "payers": "" + }, + "cdk_dealerid": "", + "costsmapping": "", + "dms_allocations": "", + "pbs_serialnumber": "", + "profitsmapping": "", + "title": "" + }, + "emaillater": "", + "employee_teams": "", + "employees": "", + "estimators": "", + "filehandlers": "", + "imexpay": "", + "insurancecos": "", + "intakechecklist": "", + "intellipay_cash_discount": "", + "jobstatuses": "", + "laborrates": "", + "licensing": "", + "md_parts_scan": "", + "md_ro_guard": "", + "md_tasks_presets": "", + "md_to_emails": "", + "md_to_emails_emails": "", + "messagingpresets": "", + "notemplatesavailable": "", + "notespresets": "", + "orderstatuses": "", + "partslocations": "", + "partsscan": "", + "printlater": "", + "qbo": "", + "qbo_departmentid": "", + "qbo_usa": "", + "rbac": "", + "responsibilitycenters": { + "costs": "", + "profits": "", + "sales_tax_codes": "", + "tax_accounts": "", + "title": "", + "ttl_adjustment": "", + "ttl_tax_adjustment": "" + }, + "roguard": { + "title": "" + }, + "romepay": "", + "scheduling": "", + "scoreboardsetup": "", + "shopinfo": "", + "speedprint": "", + "ssbuckets": "", + "systemsettings": "", + "task-presets": "", + "workingdays": "" + }, + "successes": { + "areyousure": "", + "defaultviewcreated": "", + "save": "", + "unsavedchanges": "" + }, + "validation": { + "centermustexist": "", + "larsplit": "", + "useremailmustexist": "" + } + }, + "checklist": { + "actions": { + "printall": "" + }, + "errors": { + "complete": "", + "nochecklist": "" + }, + "labels": { + "addtoproduction": "", + "allow_text_message": "", + "checklist": "", + "printpack": "", + "removefromproduction": "" + }, + "successes": { + "completed": "" + } + }, + "contracts": { + "actions": { + "changerate": "", + "convertoro": "", + "decodelicense": "", + "find": "", + "printcontract": "", + "senddltoform": "" + }, + "errors": { + "fetchingjobinfo": "", + "returning": "", + "saving": "", + "selectjobandcar": "" + }, + "fields": { + "actax": "", + "actualreturn": "", + "agreementnumber": "", + "cc_cardholder": "", + "cc_expiry": "", + "cc_num": "", + "cleanupcharge": "", + "coverage": "", + "dailyfreekm": "", + "dailyrate": "", + "damage": "", + "damagewaiver": "", + "driver": "", + "driver_addr1": "", + "driver_addr2": "", + "driver_city": "", + "driver_dlexpiry": "", + "driver_dlnumber": "", + "driver_dlst": "", + "driver_dob": "", + "driver_fn": "", + "driver_ln": "", + "driver_ph1": "", + "driver_state": "", + "driver_zip": "", + "excesskmrate": "", + "federaltax": "", + "fuelin": "", + "fuelout": "", + "kmend": "", + "kmstart": "", + "length": "", + "localtax": "", + "refuelcharge": "", + "scheduledreturn": "", + "start": "", + "statetax": "", + "status": "" + }, + "labels": { + "agreement": "", + "availablecars": "", + "cardueforservice": "", + "convertform": { + "applycleanupcharge": "", + "refuelqty": "" + }, + "correctdataonform": "", + "dateinpast": "", + "dlexpirebeforereturn": "", + "driverinformation": "", + "findcontract": "", + "findermodal": "", + "insuranceexpired": "", + "noteconvertedfrom": "", + "populatefromjob": "", + "rates": "", "time": "", - "total": "", - "totals": "", - "tuesday": "", - "tvmode": "", - "unknown": "Inconnu", - "unsavedchanges": "", - "username": "", - "view": "", - "wednesday": "", - "yes": "" - }, - "languages": { - "english": "Anglais", - "french": "Francais", - "spanish": "Espanol" - }, - "messages": { - "exception": "", - "newversionmessage": "", - "newversiontitle": "", - "noacctfilepath": "", - "nofeatureaccess": "", - "noshop": "", - "notfoundsub": "", - "notfoundtitle": "", - "partnernotrunning": "", - "rbacunauth": "", - "unsavedchanges": "Vous avez des changements non enregistrés.", - "unsavedchangespopup": "" - }, - "validation": { - "dateRangeExceeded": "", - "invalidemail": "S'il vous plaît entrer un email valide.", - "invalidphone": "", - "required": "Ce champ est requis." - } - }, - "help": { - "actions": { - "connect": "" - }, - "labels": { - "codeplacholder": "", - "rescuedesc": "", - "rescuetitle": "" - } - }, - "intake": { - "labels": { - "printpack": "" - } - }, - "inventory": { - "actions": { - "addtoinventory": "", - "addtoro": "", - "consumefrominventory": "", - "edit": "", - "new": "" - }, - "errors": { - "inserting": "" - }, - "fields": { - "comment": "", - "manualinvoicenumber": "", - "manualvendor": "" - }, - "labels": { - "consumedbyjob": "", - "deleteconfirm": "", - "frombillinvoicenumber": "", - "fromvendor": "", - "inventory": "", - "showall": "", - "showavailable": "" - }, - "successes": { - "deleted": "", - "inserted": "", - "updated": "" - } - }, - "job_lifecycle": { - "columns": { + "vehicle": "", + "waitingforscan": "" + }, + "status": { + "new": "", + "out": "", + "returned": "" + }, + "successes": { + "saved": "" + } + }, + "courtesycars": { + "actions": { + "new": "", + "return": "" + }, + "errors": { + "saving": "" + }, + "fields": { + "color": "", + "dailycost": "", + "damage": "", + "fleetnumber": "", + "fuel": "", + "insuranceexpires": "", + "leaseenddate": "", + "make": "", + "mileage": "", + "model": "", + "nextservicedate": "", + "nextservicekm": "", + "notes": "", + "plate": "", + "purchasedate": "", + "readiness": "", + "registrationexpires": "", + "serviceenddate": "", + "servicestartdate": "", + "status": "", + "vin": "", + "year": "" + }, + "labels": { + "courtesycar": "", + "fuel": { + "12": "", + "14": "", + "18": "", + "34": "", + "38": "", + "58": "", + "78": "", + "empty": "", + "full": "" + }, + "outwith": "", + "return": "", + "status": "", + "uniquefleet": "", + "usage": "", + "vehicle": "" + }, + "readiness": { + "notready": "", + "ready": "" + }, + "status": { + "in": "", + "inservice": "", + "leasereturn": "", + "out": "", + "sold": "", + "unavailable": "" + }, + "successes": { + "saved": "" + } + }, + "csi": { + "actions": { + "activate": "" + }, + "errors": { + "creating": "", + "notconfigured": "", + "notfoundsubtitle": "", + "notfoundtitle": "", + "surveycompletesubtitle": "", + "surveycompletetitle": "" + }, + "fields": { + "completedon": "", + "created_at": "", + "surveyid": "", + "validuntil": "" + }, + "labels": { + "copyright": "", + "greeting": "", + "intro": "", + "nologgedinuser": "", + "nologgedinuser_sub": "", + "noneselected": "", + "title": "" + }, + "successes": { + "created": "", + "submitted": "", + "submittedsub": "" + } + }, + "dashboard": { + "actions": { + "addcomponent": "" + }, + "errors": { + "refreshrequired": "", + "updatinglayout": "" + }, + "labels": { + "bodyhrs": "", + "dollarsinproduction": "", + "phone": "", + "prodhrs": "", + "refhrs": "" + }, + "titles": { + "joblifecycle": "", + "labhours": "", + "larhours": "", + "monthlyemployeeefficiency": "", + "monthlyjobcosting": "", + "monthlylaborsales": "", + "monthlypartssales": "", + "monthlyrevenuegraph": "", + "prodhrssummary": "", + "productiondollars": "", + "productionhours": "", + "projectedmonthlysales": "", + "scheduledindate": "", + "scheduledintoday": "", + "scheduledoutdate": "", + "scheduledouttoday": "", + "tasks": "" + } + }, + "dms": { + "errors": { + "alreadyexported": "" + }, + "labels": { + "refreshallocations": "" + } + }, + "documents": { + "actions": { + "delete": "", + "download": "", + "reassign": "", + "selectallimages": "", + "selectallotherdocuments": "" + }, + "errors": { + "deletes3": "Erreur lors de la suppression du document du stockage.", + "deleting": "", + "deleting_cloudinary": "", + "getpresignurl": "Erreur lors de l'obtention de l'URL présignée pour le document. {{message}}", + "insert": "Incapable de télécharger le fichier. {{message}}", + "nodocuments": "Il n'y a pas de documents.", + "updating": "" + }, + "labels": { + "confirmdelete": "", + "doctype": "", + "dragtoupload": "", + "newjobid": "", + "openinexplorer": "", + "optimizedimage": "", + "reassign_limitexceeded": "", + "reassign_limitexceeded_title": "", + "storageexceeded": "", + "storageexceeded_title": "", + "upload": "Télécharger", + "upload_limitexceeded": "", + "upload_limitexceeded_title": "", + "uploading": "", + "usage": "" + }, + "successes": { + "delete": "Le document a bien été supprimé.", + "edituploaded": "", + "insert": "Document téléchargé avec succès.", + "updated": "" + } + }, + "emails": { + "errors": { + "notsent": "Courriel non envoyé. Erreur rencontrée lors de l'envoi de {{message}}" + }, + "fields": { + "cc": "", + "from": "", + "subject": "", + "to": "" + }, + "labels": { + "attachments": "", + "documents": "", + "emailpreview": "", + "generatingemail": "", + "pdfcopywillbeattached": "", + "preview": "" + }, + "successes": { + "sent": "E-mail envoyé avec succès." + } + }, + "employee_teams": { + "actions": { + "new": "", + "newmember": "" + }, + "fields": { + "active": "", + "employeeid": "", + "max_load": "", + "name": "", + "percentage": "" + } + }, + "employees": { + "actions": { + "addvacation": "", + "new": "Nouvel employé", + "newrate": "" + }, + "errors": { + "delete": "Erreur rencontrée lors de la suppression de l'employé. {{message}}", + "save": "Une erreur s'est produite lors de l'enregistrement de l'employé. {{message}}", + "validation": "Veuillez cocher tous les champs.", + "validationtitle": "Impossible d'enregistrer l'employé." + }, + "fields": { + "active": "Actif?", + "base_rate": "Taux de base", + "cost_center": "Centre de coûts", + "employee_number": "Numéro d'employé", + "external_id": "", + "first_name": "Prénom", + "flat_rate": "Taux fixe (désactivé est le temps normal)", + "hire_date": "Date d'embauche", + "last_name": "Nom de famille", + "pin": "", + "rate": "", + "termination_date": "Date de résiliation", + "user_email": "", + "vacation": { + "end": "", + "length": "", + "start": "" + } + }, + "labels": { + "actions": "", + "active": "", + "endmustbeafterstart": "", + "flat_rate": "", + "inactive": "", + "name": "", + "rate_type": "", + "status": "", + "straight_time": "" + }, + "successes": { + "delete": "L'employé a bien été supprimé.", + "save": "L'employé a enregistré avec succès.", + "vacationadded": "" + }, + "validation": { + "unique_employee_number": "" + } + }, + "eula": { + "buttons": { + "accept": "Accept EULA" + }, + "content": { + "never_scrolled": "You must scroll to the bottom of the Terms and Conditions before accepting." + }, + "errors": { + "acceptance": { + "description": "Something went wrong while accepting the EULA. Please try again.", + "message": "Eula Acceptance Error" + } + }, + "labels": { + "accepted_terms": "I accept the terms and conditions of this agreement.", + "address": "Address", + "business_name": "Legal Business Name", + "date_accepted": "Date Accepted", + "first_name": "First Name", + "last_name": "Last Name", + "phone_number": "Phone Number" + }, + "messages": { + "accepted_terms": "Please accept the terms and conditions of this agreement.", + "business_name": "Please enter your legal business name.", + "date_accepted": "Please enter Today's Date.", + "first_name": "Please enter your first name.", + "last_name": "Please enter your last name.", + "phone_number": "Please enter your phone number." + }, + "titles": { + "modal": "Terms and Conditions", + "upper_card": "Acknowledgement" + } + }, + "exportlogs": { + "fields": { + "createdat": "" + }, + "labels": { + "attempts": "", + "priorsuccesfulexport": "" + } + }, + "general": { + "actions": { + "add": "", + "autoupdate": "", + "calculate": "", + "cancel": "", + "clear": "", + "close": "", + "copied": "", + "copylink": "", + "create": "", + "defaults": "", + "delay": "", + "delete": "Effacer", + "deleteall": "", + "deselectall": "", + "download": "", + "edit": "modifier", + "login": "", + "next": "", + "previous": "", + "print": "", + "refresh": "", + "remove": "", + "remove_alert": "", + "reset": " Rétablir l'original.", + "resetpassword": "", + "save": "sauvegarder", + "saveandnew": "", + "saveas": "", + "selectall": "", + "send": "", + "sendbysms": "", + "senderrortosupport": "", + "submit": "", + "tryagain": "", + "view": "", + "viewreleasenotes": "" + }, + "errors": { + "fcm": "", + "notfound": "", + "sizelimit": "" + }, + "itemtypes": { + "contract": "", + "courtesycar": "", + "job": "", + "owner": "", + "vehicle": "" + }, + "labels": { + "actions": "actes", + "areyousure": "", + "barcode": "code à barre", + "cancel": "", + "clear": "", + "confirmpassword": "", + "created_at": "", + "date": "", + "datetime": "", + "email": "", + "errors": "", + "excel": "", + "exceptiontitle": "", + "friday": "", + "globalsearch": "", + "help": "", + "hours": "", + "in": "dans", + "instanceconflictext": "", + "instanceconflictitle": "", + "item": "", + "label": "", + "loading": "Chargement...", + "loadingapp": "Chargement de {{app}}", + "loadingshop": "Chargement des données de la boutique ...", + "loggingin": "Vous connecter ...", + "markedexported": "", + "media": "", + "message": "", + "monday": "", + "na": "N / A", + "newpassword": "", + "no": "", + "nointernet": "", + "nointernet_sub": "", + "none": "", + "out": "En dehors", + "password": "", + "passwordresetsuccess": "", + "passwordresetsuccess_sub": "", + "passwordresetvalidatesuccess": "", + "passwordresetvalidatesuccess_sub": "", + "passwordsdonotmatch": "", + "print": "", + "refresh": "", + "reports": "", + "required": "", + "saturday": "", + "search": "Chercher...", + "searchresults": "", + "selectdate": "", + "sendagain": "", + "sendby": "", + "signin": "", + "sms": "", + "status": "", + "sub_status": { + "expired": "" + }, + "successful": "", + "sunday": "", + "text": "", + "thursday": "", + "time": "", + "total": "", + "totals": "", + "tuesday": "", + "tvmode": "", + "unknown": "Inconnu", + "unsavedchanges": "", + "username": "", + "view": "", + "wednesday": "", + "yes": "" + }, + "languages": { + "english": "Anglais", + "french": "Francais", + "spanish": "Espanol" + }, + "messages": { + "exception": "", + "newversionmessage": "", + "newversiontitle": "", + "noacctfilepath": "", + "nofeatureaccess": "", + "noshop": "", + "notfoundsub": "", + "notfoundtitle": "", + "partnernotrunning": "", + "rbacunauth": "", + "unsavedchanges": "Vous avez des changements non enregistrés.", + "unsavedchangespopup": "" + }, + "validation": { + "dateRangeExceeded": "", + "invalidemail": "S'il vous plaît entrer un email valide.", + "invalidphone": "", + "required": "Ce champ est requis." + } + }, + "help": { + "actions": { + "connect": "" + }, + "labels": { + "codeplacholder": "", + "rescuedesc": "", + "rescuetitle": "" + } + }, + "intake": { + "labels": { + "printpack": "" + } + }, + "inventory": { + "actions": { + "addtoinventory": "", + "addtoro": "", + "consumefrominventory": "", + "edit": "", + "new": "" + }, + "errors": { + "inserting": "" + }, + "fields": { + "comment": "", + "manualinvoicenumber": "", + "manualvendor": "" + }, + "labels": { + "consumedbyjob": "", + "deleteconfirm": "", + "frombillinvoicenumber": "", + "fromvendor": "", + "inventory": "", + "showall": "", + "showavailable": "" + }, + "successes": { + "deleted": "", + "inserted": "", + "updated": "" + } + }, + "job_lifecycle": { + "columns": { "average_human_readable": "", "average_value": "", - "duration": "", - "end": "", - "human_readable": "", - "percentage": "", - "relative_end": "", - "relative_start": "", - "start": "", - "status": "", - "status_count": "", - "value": "" - }, - "content": { - "calculated_based_on": "", - "current_status_accumulated_time": "", - "data_unavailable": "", - "jobs_in_since": "", - "legend_title": "", - "loading": "", - "not_available": "", - "previous_status_accumulated_time": "", - "title": "", - "title_durations": "", - "title_loading": "", - "title_transitions": "" - }, - "errors": { - "fetch": "Erreur lors de l'obtention des données du cycle de vie des tâches" - }, - "titles": { - "dashboard": "", - "top_durations": "" - } - }, - "job_payments": { - "buttons": { - "create_short_link": "", - "goback": "", - "proceedtopayment": "", - "refundpayment": "" - }, - "notifications": { - "error": { - "description": "", - "openingip": "", - "title": "" - } - }, - "titles": { - "amount": "", - "dateOfPayment": "", - "descriptions": "", - "hint": "", - "payer": "", - "payername": "", - "paymentid": "", - "paymentnum": "", - "paymenttype": "", - "refundamount": "", - "transactionid": "" - } - }, - "joblines": { - "actions": { - "assign_team": "", - "converttolabor": "", - "dispatchparts": "", - "new": "" - }, - "errors": { - "creating": "", - "updating": "" - }, - "fields": { - "act_price": "Prix actuel", - "act_price_before_ppc": "", - "adjustment": "", - "ah_detail_line": "", - "amount": "", - "assigned_team": "", - "assigned_team_name": "", - "create_ppc": "", - "db_price": "Prix de la base de données", - "lbr_types": { - "LA1": "", - "LA2": "", - "LA3": "", - "LA4": "", - "LAA": "", - "LAB": "", - "LAD": "", - "LAE": "", - "LAF": "", - "LAG": "", - "LAM": "", - "LAR": "", - "LAS": "", - "LAU": "" - }, - "line_desc": "Description de la ligne", - "line_ind": "S#", - "line_no": "", - "location": "", - "mod_lb_hrs": "Heures de travail", - "mod_lbr_ty": "Type de travail", - "notes": "", - "oem_partno": "Pièce OEM #", - "alt_partno": "", + "duration": "", + "end": "", + "human_readable": "", + "percentage": "", + "relative_end": "", + "relative_start": "", + "start": "", + "status": "", + "status_count": "", + "value": "" + }, + "content": { + "calculated_based_on": "", + "current_status_accumulated_time": "", + "data_unavailable": "", + "jobs_in_since": "", + "legend_title": "", + "loading": "", + "not_available": "", + "previous_status_accumulated_time": "", + "title": "", + "title_durations": "", + "title_loading": "", + "title_transitions": "" + }, + "errors": { + "fetch": "Erreur lors de l'obtention des données du cycle de vie des tâches" + }, + "titles": { + "dashboard": "", + "top_durations": "" + } + }, + "job_payments": { + "buttons": { + "create_short_link": "", + "goback": "", + "proceedtopayment": "", + "refundpayment": "" + }, + "notifications": { + "error": { + "description": "", + "openingip": "", + "title": "" + } + }, + "titles": { + "amount": "", + "dateOfPayment": "", + "descriptions": "", + "hint": "", + "payer": "", + "payername": "", + "paymentid": "", + "paymentnum": "", + "paymenttype": "", + "refundamount": "", + "transactionid": "" + } + }, + "joblines": { + "actions": { + "assign_team": "", + "converttolabor": "", + "dispatchparts": "", + "new": "" + }, + "errors": { + "creating": "", + "updating": "" + }, + "fields": { + "act_price": "Prix actuel", + "act_price_before_ppc": "", + "adjustment": "", + "ah_detail_line": "", + "amount": "", + "assigned_team": "", + "assigned_team_name": "", + "create_ppc": "", + "db_price": "Prix de la base de données", + "lbr_types": { + "LA1": "", + "LA2": "", + "LA3": "", + "LA4": "", + "LAA": "", + "LAB": "", + "LAD": "", + "LAE": "", + "LAF": "", + "LAG": "", + "LAM": "", + "LAR": "", + "LAS": "", + "LAU": "" + }, + "line_desc": "Description de la ligne", + "line_ind": "S#", + "line_no": "", + "location": "", + "mod_lb_hrs": "Heures de travail", + "mod_lbr_ty": "Type de travail", + "notes": "", + "oem_partno": "Pièce OEM #", + "alt_partno": "", "op_code_desc": "", - "part_qty": "", - "part_type": "Type de pièce", - "part_types": { - "CCC": "", - "CCD": "", - "CCDR": "", - "CCF": "", - "CCM": "", - "PAA": "", - "PAC": "", - "PAE": "", - "PAG": "", - "PAL": "", - "PAM": "", - "PAN": "", - "PAO": "", - "PAP": "", - "PAR": "", - "PAS": "", - "PASL": "" - }, - "profitcenter_labor": "", - "profitcenter_part": "", - "prt_dsmk_m": "", - "prt_dsmk_p": "", - "status": "Statut", - "tax_part": "", - "total": "", - "unq_seq": "Seq #" - }, - "labels": { - "adjustmenttobeadded": "", - "billref": "", - "convertedtolabor": "", - "edit": "Ligne d'édition", - "ioucreated": "", - "new": "Nouvelle ligne", - "nostatus": "", - "presets": "" - }, - "successes": { - "created": "", - "saved": "", - "updated": "" - }, - "validations": { - "ahdetailonlyonuserdefinedtypes": "", - "hrsrequirediflbrtyp": "", - "requiredifparttype": "", - "zeropriceexistingpart": "" - } - }, - "jobs": { - "actions": { - "addDocuments": "Ajouter des documents de travail", - "addNote": "Ajouter une note", - "addtopartsqueue": "", - "addtoproduction": "", - "addtoscoreboard": "", - "allocate": "", - "autoallocate": "", - "changefilehandler": "", - "changelaborrate": "", - "changestatus": "Changer le statut", - "changestimator": "", - "convert": "Convertir", - "createiou": "", - "deliver": "", - "dms": { - "addpayer": "", - "createnewcustomer": "", - "findmakemodelcode": "", - "getmakes": "", - "labels": { - "refreshallocations": "" - }, - "post": "", - "refetchmakesmodels": "", - "usegeneric": "", - "useselected": "" - }, - "dmsautoallocate": "", - "export": "", - "exportcustdata": "", - "exportselected": "", - "filterpartsonly": "", - "generatecsi": "", - "gotojob": "", - "intake": "", - "manualnew": "", - "mark": "", - "markasexported": "", - "markpstexempt": "", - "markpstexemptconfirm": "", - "postbills": "Poster des factures", - "printCenter": "Centre d'impression", - "recalculate": "", - "reconcile": "", - "removefromproduction": "", - "schedule": "Programme", - "sendcsi": "", - "sendpartspricechange": "", - "sendtodms": "", - "sync": "", - "taxprofileoverride": "", - "taxprofileoverride_confirm": "", - "uninvoice": "", - "unvoid": "", - "viewchecklist": "", - "viewdetail": "" - }, - "errors": { - "addingtoproduction": "", - "cannotintake": "", - "closing": "", - "creating": "", - "deleted": "Erreur lors de la suppression du travail.", - "exporting": "", - "exporting-partner": "", - "invoicing": "", - "noaccess": "Ce travail n'existe pas ou vous n'y avez pas accès.", - "nodamage": "", - "nodates": "Aucune date spécifiée pour ce travail.", - "nofinancial": "", - "nojobselected": "Aucun travail n'est sélectionné.", - "noowner": "Aucun propriétaire associé.", - "novehicle": "Aucun véhicule associé.", - "partspricechange": "", - "saving": "Erreur rencontrée lors de la sauvegarde de l'enregistrement.", - "scanimport": "", - "totalscalc": "", - "updating": "", - "validation": "Veuillez vous assurer que tous les champs sont correctement entrés.", - "validationtitle": "Erreur de validation", - "voiding": "" - }, - "fields": { - "active_tasks": "", - "actual_completion": "Achèvement réel", - "actual_delivery": "Livraison réelle", - "actual_in": "En réel", - "adjustment_bottom_line": "Ajustements", - "adjustmenthours": "", - "alt_transport": "", - "area_of_damage_impact": { - "10": "", - "11": "", - "12": "", - "13": "", - "14": "", - "15": "", - "16": "", - "25": "", - "26": "", - "27": "", - "28": "", - "34": "", - "01": "", - "02": "", - "03": "", - "04": "", - "05": "", - "06": "", - "07": "", - "08": "", - "09": "" - }, - "auto_add_ats": "", - "ca_bc_pvrt": "", - "ca_customer_gst": "", - "ca_gst_registrant": "", - "category": "", - "ccc": "", - "ccd": "", - "ccdr": "", - "ccf": "", - "ccm": "", - "cieca_id": "CIECA ID", - "cieca_pfl": { - "lbr_adjp": "", - "lbr_tax_in": "", - "lbr_taxp": "", - "lbr_tx_in1": "", - "lbr_tx_in2": "", - "lbr_tx_in3": "", - "lbr_tx_in4": "", - "lbr_tx_in5": "" - }, - "cieca_pfo": { - "stor_t_in1": "", - "stor_t_in2": "", - "stor_t_in3": "", - "stor_t_in4": "", - "stor_t_in5": "", - "tow_t_in1": "", - "tow_t_in2": "", - "tow_t_in3": "", - "tow_t_in4": "", - "tow_t_in5": "" - }, - "claim_total": "Total réclamation", - "class": "", - "clm_no": "Prétendre #", - "clm_total": "Total réclamation", - "comment": "", - "customerowing": "Client propriétaire", - "date_estimated": "Date estimée", - "date_exported": "Exportés", - "date_invoiced": "Facturé", - "date_last_contacted": "", - "date_lost_sale": "", - "date_next_contact": "", - "date_open": "Ouvrir", - "date_rentalresp": "", - "date_repairstarted": "", - "date_scheduled": "Prévu", - "date_towin": "", - "date_void": "", - "ded_amt": "Déductible", - "ded_note": "", - "ded_status": "Statut de franchise", - "depreciation_taxes": "Amortissement / taxes", - "dms": { - "address": "", - "amount": "", - "center": "", - "control_type": { - "account_number": "" - }, - "cost": "", - "cost_dms_acctnumber": "", - "dms_make": "", - "dms_model": "", - "dms_model_override": "", - "dms_unsold": "", - "dms_wip_acctnumber": "", - "id": "", - "inservicedate": "", - "journal": "", - "lines": "", - "name1": "", - "payer": { - "amount": "", - "control_type": "", - "controlnumber": "", - "dms_acctnumber": "", - "name": "" - }, - "sale": "", - "sale_dms_acctnumber": "", - "story": "", - "vinowner": "" - }, - "dms_allocation": "", - "driveable": "", - "employee_body": "", - "employee_csr": "représentant du service à la clientèle", - "employee_csr_writer": "", - "employee_prep": "", - "employee_refinish": "", - "est_addr1": "Adresse de l'évaluateur", - "est_co_nm": "Expert", - "est_ct_fn": "Prénom de l'évaluateur", - "est_ct_ln": "Nom de l'évaluateur", - "est_ea": "Courriel de l'évaluateur", - "est_ph1": "Numéro de téléphone de l'évaluateur", - "federal_tax_payable": "Impôt fédéral à payer", - "federal_tax_rate": "", - "ins_addr1": "Adresse Insurance Co.", - "ins_city": "Insurance City", - "ins_co_id": "ID de la compagnie d'assurance", - "ins_co_nm": "Nom de la compagnie d'assurance", - "ins_co_nm_short": "", - "ins_ct_fn": "Prénom du gestionnaire de fichiers", - "ins_ct_ln": "Nom du gestionnaire de fichiers", - "ins_ea": "Courriel du gestionnaire de fichiers", - "ins_ph1": "Numéro de téléphone du gestionnaire de fichiers", - "intake": { - "label": "", - "max": "", - "min": "", - "name": "", - "required": "", - "type": "" - }, - "invoice_final_note": "", - "kmin": "Kilométrage en", - "kmout": "Kilométrage hors", - "la1": "", - "la2": "", - "la3": "", - "la4": "", - "laa": "", - "lab": "", - "labor_rate_desc": "Nom du taux de main-d'œuvre", - "lad": "", - "lae": "", - "laf": "", - "lag": "", - "lam": "", - "lar": "", - "las": "", - "lau": "", - "local_tax_rate": "", - "loss_date": "Date de perte", - "loss_desc": "", - "loss_of_use": "", - "lost_sale_reason": "", - "ma2s": "", - "ma3s": "", - "mabl": "", - "macs": "", - "mahw": "", - "mapa": "", - "mash": "", - "matd": "", - "materials": { - "MAPA": "", - "MASH": "", - "cal_maxdlr": "", - "cal_opcode": "", - "mat_adjp": "", - "mat_taxp": "", - "mat_tx_in1": "", - "mat_tx_in2": "", - "mat_tx_in3": "", - "mat_tx_in4": "", - "mat_tx_in5": "", - "materials": "", - "tax_ind": "" - }, - "other_amount_payable": "Autre montant à payer", - "owner": "Propriétaire", - "owner_owing": "Cust. Owes", - "ownr_ea": "Email", - "ownr_ph1": "Téléphone 1", - "ownr_ph2": "", - "paa": "", - "pac": "", - "pae": "", - "pag": "", - "pal": "", - "pam": "", - "pan": "", - "pao": "", - "pap": "", - "par": "", - "parts_tax_rates": { - "prt_discp": "", - "prt_mktyp": "", - "prt_mkupp": "", - "prt_tax_in": "", - "prt_tax_rt": "", - "prt_tx_in1": "", - "prt_tx_in2": "", - "prt_tx_in3": "", - "prt_tx_in4": "", - "prt_tx_in5": "", - "prt_tx_ty1": "", - "prt_type": "" - }, - "partsstatus": "", - "pas": "", - "pay_date": "Date d'Pay", - "phoneshort": "PH", - "po_number": "", - "policy_no": "Politique #", - "ponumber": "Numéro de bon de commande", - "production_vars": { - "note": "" - }, - "qb_multiple_payers": { - "amount": "", - "name": "" - }, - "queued_for_parts": "", - "rate_ats": "", - "rate_la1": "Taux LA1", - "rate_la2": "Taux LA2", - "rate_la3": "Taux LA3", - "rate_la4": "Taux LA4", - "rate_laa": "Taux d'aluminium", - "rate_lab": "Taux de la main-d'œuvre", - "rate_lad": "Taux de diagnostic", - "rate_lae": "Tarif électrique", - "rate_laf": "Taux de trame", - "rate_lag": "Taux de verre", - "rate_lam": "Taux mécanique", - "rate_lar": "Taux de finition", - "rate_las": "", - "rate_lau": "Taux d'aluminium", - "rate_ma2s": "Taux de peinture en 2 étapes", - "rate_ma3s": "Taux de peinture en 3 étapes", - "rate_mabl": "MABL ??", - "rate_macs": "MACS ??", - "rate_mahw": "Taux de déchets dangereux", - "rate_mapa": "Taux de matériaux de peinture", - "rate_mash": "Tarif du matériel de la boutique", - "rate_matd": "Taux d'élimination des pneus", - "referral_source_extra": "", - "referral_source_other": "", - "referralsource": "Source de référence", - "regie_number": "Enregistrement #", - "repairtotal": "Réparation totale", - "ro_number": "RO #", - "scheduled_completion": "Achèvement planifié", - "scheduled_delivery": "Livraison programmée", - "scheduled_in": "Planifié dans", - "selling_dealer": "Revendeur vendeur", - "selling_dealer_contact": "Contacter le revendeur", - "servicecar": "Voiture de service", - "servicing_dealer": "Concessionnaire", - "servicing_dealer_contact": "Contacter le concessionnaire", - "special_coverage_policy": "Politique de couverture spéciale", - "specialcoveragepolicy": "Politique de couverture spéciale", - "state_tax_rate": "", - "status": "Statut de l'emploi", - "storage_payable": "Stockage", - "tax_lbr_rt": "", - "tax_levies_rt": "", - "tax_paint_mat_rt": "", - "tax_registration_number": "", - "tax_shop_mat_rt": "", - "tax_str_rt": "", - "tax_sub_rt": "", - "tax_tow_rt": "", + "part_qty": "", + "part_type": "Type de pièce", + "part_types": { + "CCC": "", + "CCD": "", + "CCDR": "", + "CCF": "", + "CCM": "", + "PAA": "", + "PAC": "", + "PAE": "", + "PAG": "", + "PAL": "", + "PAM": "", + "PAN": "", + "PAO": "", + "PAP": "", + "PAR": "", + "PAS": "", + "PASL": "" + }, + "profitcenter_labor": "", + "profitcenter_part": "", + "prt_dsmk_m": "", + "prt_dsmk_p": "", + "status": "Statut", + "tax_part": "", + "total": "", + "unq_seq": "Seq #" + }, + "labels": { + "adjustmenttobeadded": "", + "billref": "", + "convertedtolabor": "", + "edit": "Ligne d'édition", + "ioucreated": "", + "new": "Nouvelle ligne", + "nostatus": "", + "presets": "" + }, + "successes": { + "created": "", + "saved": "", + "updated": "" + }, + "validations": { + "ahdetailonlyonuserdefinedtypes": "", + "hrsrequirediflbrtyp": "", + "requiredifparttype": "", + "zeropriceexistingpart": "" + } + }, + "jobs": { + "actions": { + "addDocuments": "Ajouter des documents de travail", + "addNote": "Ajouter une note", + "addtopartsqueue": "", + "addtoproduction": "", + "addtoscoreboard": "", + "allocate": "", + "autoallocate": "", + "changefilehandler": "", + "changelaborrate": "", + "changestatus": "Changer le statut", + "changestimator": "", + "convert": "Convertir", + "createiou": "", + "deliver": "", + "deliver_quick": "", + "dms": { + "addpayer": "", + "createnewcustomer": "", + "findmakemodelcode": "", + "getmakes": "", + "labels": { + "refreshallocations": "" + }, + "post": "", + "refetchmakesmodels": "", + "usegeneric": "", + "useselected": "" + }, + "dmsautoallocate": "", + "export": "", + "exportcustdata": "", + "exportselected": "", + "filterpartsonly": "", + "generatecsi": "", + "gotojob": "", + "intake": "", + "intake_quick": "", + "manualnew": "", + "mark": "", + "markasexported": "", + "markpstexempt": "", + "markpstexemptconfirm": "", + "postbills": "Poster des factures", + "printCenter": "Centre d'impression", + "recalculate": "", + "reconcile": "", + "removefromproduction": "", + "schedule": "Programme", + "sendcsi": "", + "sendpartspricechange": "", + "sendtodms": "", + "sync": "", + "taxprofileoverride": "", + "taxprofileoverride_confirm": "", + "uninvoice": "", + "unvoid": "", + "viewchecklist": "", + "viewdetail": "" + }, + "errors": { + "addingtoproduction": "", + "cannotintake": "", + "closing": "", + "creating": "", + "deleted": "Erreur lors de la suppression du travail.", + "exporting": "", + "exporting-partner": "", + "invoicing": "", + "noaccess": "Ce travail n'existe pas ou vous n'y avez pas accès.", + "nodamage": "", + "nodates": "Aucune date spécifiée pour ce travail.", + "nofinancial": "", + "nojobselected": "Aucun travail n'est sélectionné.", + "noowner": "Aucun propriétaire associé.", + "novehicle": "Aucun véhicule associé.", + "partspricechange": "", + "saving": "Erreur rencontrée lors de la sauvegarde de l'enregistrement.", + "scanimport": "", + "totalscalc": "", + "updating": "", + "validation": "Veuillez vous assurer que tous les champs sont correctement entrés.", + "validationtitle": "Erreur de validation", + "voiding": "" + }, + "fields": { + "active_tasks": "", + "actual_completion": "Achèvement réel", + "actual_delivery": "Livraison réelle", + "actual_in": "En réel", + "adjustment_bottom_line": "Ajustements", + "adjustmenthours": "", + "alt_transport": "", + "area_of_damage_impact": { + "10": "", + "11": "", + "12": "", + "13": "", + "14": "", + "15": "", + "16": "", + "25": "", + "26": "", + "27": "", + "28": "", + "34": "", + "01": "", + "02": "", + "03": "", + "04": "", + "05": "", + "06": "", + "07": "", + "08": "", + "09": "" + }, + "auto_add_ats": "", + "ca_bc_pvrt": "", + "ca_customer_gst": "", + "ca_gst_registrant": "", + "category": "", + "ccc": "", + "ccd": "", + "ccdr": "", + "ccf": "", + "ccm": "", + "cieca_id": "CIECA ID", + "cieca_pfl": { + "lbr_adjp": "", + "lbr_tax_in": "", + "lbr_taxp": "", + "lbr_tx_in1": "", + "lbr_tx_in2": "", + "lbr_tx_in3": "", + "lbr_tx_in4": "", + "lbr_tx_in5": "" + }, + "cieca_pfo": { + "stor_t_in1": "", + "stor_t_in2": "", + "stor_t_in3": "", + "stor_t_in4": "", + "stor_t_in5": "", + "tow_t_in1": "", + "tow_t_in2": "", + "tow_t_in3": "", + "tow_t_in4": "", + "tow_t_in5": "" + }, + "claim_total": "Total réclamation", + "class": "", + "clm_no": "Prétendre #", + "clm_total": "Total réclamation", + "comment": "", + "customerowing": "Client propriétaire", + "date_estimated": "Date estimée", + "date_exported": "Exportés", + "date_invoiced": "Facturé", + "date_last_contacted": "", + "date_lost_sale": "", + "date_next_contact": "", + "date_open": "Ouvrir", + "date_rentalresp": "", + "date_repairstarted": "", + "date_scheduled": "Prévu", + "date_towin": "", + "date_void": "", + "ded_amt": "Déductible", + "ded_note": "", + "ded_status": "Statut de franchise", + "depreciation_taxes": "Amortissement / taxes", + "dms": { + "address": "", + "amount": "", + "center": "", + "control_type": { + "account_number": "" + }, + "cost": "", + "cost_dms_acctnumber": "", + "dms_make": "", + "dms_model": "", + "dms_model_override": "", + "dms_unsold": "", + "dms_wip_acctnumber": "", + "id": "", + "inservicedate": "", + "journal": "", + "lines": "", + "name1": "", + "payer": { + "amount": "", + "control_type": "", + "controlnumber": "", + "dms_acctnumber": "", + "name": "" + }, + "sale": "", + "sale_dms_acctnumber": "", + "story": "", + "vinowner": "" + }, + "dms_allocation": "", + "driveable": "", + "employee_body": "", + "employee_csr": "représentant du service à la clientèle", + "employee_csr_writer": "", + "employee_prep": "", + "employee_refinish": "", + "est_addr1": "Adresse de l'évaluateur", + "est_co_nm": "Expert", + "est_ct_fn": "Prénom de l'évaluateur", + "est_ct_ln": "Nom de l'évaluateur", + "est_ea": "Courriel de l'évaluateur", + "est_ph1": "Numéro de téléphone de l'évaluateur", + "federal_tax_payable": "Impôt fédéral à payer", + "federal_tax_rate": "", + "ins_addr1": "Adresse Insurance Co.", + "ins_city": "Insurance City", + "ins_co_id": "ID de la compagnie d'assurance", + "ins_co_nm": "Nom de la compagnie d'assurance", + "ins_co_nm_short": "", + "ins_ct_fn": "Prénom du gestionnaire de fichiers", + "ins_ct_ln": "Nom du gestionnaire de fichiers", + "ins_ea": "Courriel du gestionnaire de fichiers", + "ins_ph1": "Numéro de téléphone du gestionnaire de fichiers", + "intake": { + "label": "", + "max": "", + "min": "", + "name": "", + "required": "", + "type": "" + }, + "invoice_final_note": "", + "kmin": "Kilométrage en", + "kmout": "Kilométrage hors", + "la1": "", + "la2": "", + "la3": "", + "la4": "", + "laa": "", + "lab": "", + "labor_rate_desc": "Nom du taux de main-d'œuvre", + "lad": "", + "lae": "", + "laf": "", + "lag": "", + "lam": "", + "lar": "", + "las": "", + "lau": "", + "local_tax_rate": "", + "loss_date": "Date de perte", + "loss_desc": "", + "loss_of_use": "", + "lost_sale_reason": "", + "ma2s": "", + "ma3s": "", + "mabl": "", + "macs": "", + "mahw": "", + "mapa": "", + "mash": "", + "matd": "", + "materials": { + "MAPA": "", + "MASH": "", + "cal_maxdlr": "", + "cal_opcode": "", + "mat_adjp": "", + "mat_taxp": "", + "mat_tx_in1": "", + "mat_tx_in2": "", + "mat_tx_in3": "", + "mat_tx_in4": "", + "mat_tx_in5": "", + "materials": "", + "tax_ind": "" + }, + "other_amount_payable": "Autre montant à payer", + "owner": "Propriétaire", + "owner_owing": "Cust. Owes", + "ownr_ea": "Email", + "ownr_ph1": "Téléphone 1", + "ownr_ph2": "", + "paa": "", + "pac": "", + "pae": "", + "pag": "", + "pal": "", + "pam": "", + "pan": "", + "pao": "", + "pap": "", + "par": "", + "parts_tax_rates": { + "prt_discp": "", + "prt_mktyp": "", + "prt_mkupp": "", + "prt_tax_in": "", + "prt_tax_rt": "", + "prt_tx_in1": "", + "prt_tx_in2": "", + "prt_tx_in3": "", + "prt_tx_in4": "", + "prt_tx_in5": "", + "prt_tx_ty1": "", + "prt_type": "" + }, + "partsstatus": "", + "pas": "", + "pay_date": "Date d'Pay", + "phoneshort": "PH", + "po_number": "", + "policy_no": "Politique #", + "ponumber": "Numéro de bon de commande", + "production_vars": { + "note": "" + }, + "qb_multiple_payers": { + "amount": "", + "name": "" + }, + "queued_for_parts": "", + "rate_ats": "", + "rate_la1": "Taux LA1", + "rate_la2": "Taux LA2", + "rate_la3": "Taux LA3", + "rate_la4": "Taux LA4", + "rate_laa": "Taux d'aluminium", + "rate_lab": "Taux de la main-d'œuvre", + "rate_lad": "Taux de diagnostic", + "rate_lae": "Tarif électrique", + "rate_laf": "Taux de trame", + "rate_lag": "Taux de verre", + "rate_lam": "Taux mécanique", + "rate_lar": "Taux de finition", + "rate_las": "", + "rate_lau": "Taux d'aluminium", + "rate_ma2s": "Taux de peinture en 2 étapes", + "rate_ma3s": "Taux de peinture en 3 étapes", + "rate_mabl": "MABL ??", + "rate_macs": "MACS ??", + "rate_mahw": "Taux de déchets dangereux", + "rate_mapa": "Taux de matériaux de peinture", + "rate_mash": "Tarif du matériel de la boutique", + "rate_matd": "Taux d'élimination des pneus", + "referral_source_extra": "", + "referral_source_other": "", + "referralsource": "Source de référence", + "regie_number": "Enregistrement #", + "repairtotal": "Réparation totale", + "ro_number": "RO #", + "scheduled_completion": "Achèvement planifié", + "scheduled_delivery": "Livraison programmée", + "scheduled_in": "Planifié dans", + "selling_dealer": "Revendeur vendeur", + "selling_dealer_contact": "Contacter le revendeur", + "servicecar": "Voiture de service", + "servicing_dealer": "Concessionnaire", + "servicing_dealer_contact": "Contacter le concessionnaire", + "special_coverage_policy": "Politique de couverture spéciale", + "specialcoveragepolicy": "Politique de couverture spéciale", + "state_tax_rate": "", + "status": "Statut de l'emploi", + "storage_payable": "Stockage", + "tax_lbr_rt": "", + "tax_levies_rt": "", + "tax_paint_mat_rt": "", + "tax_registration_number": "", + "tax_shop_mat_rt": "", + "tax_str_rt": "", + "tax_sub_rt": "", + "tax_tow_rt": "", "tlos_ind": "", - "towin": "", - "towing_payable": "Remorquage à payer", - "unitnumber": "Unité #", - "updated_at": "Mis à jour à", - "uploaded_by": "Telechargé par", - "vehicle": "Véhicule" - }, - "forms": { - "admindates": "", - "appraiserinfo": "", - "claiminfo": "", - "estdates": "", - "laborrates": "", - "lossinfo": "", - "other": "", - "repairdates": "", - "scheddates": "" - }, - "labels": { - "accountsreceivable": "", - "act_price_ppc": "", - "actual_completion_inferred": "", - "actual_delivery_inferred": "", - "actual_in_inferred": "", - "additionalpayeroverallocation": "", - "additionaltotal": "", - "adjustmentrate": "", - "adjustments": "", - "adminwarning": "", - "allocations": "", - "alreadyaddedtoscoreboard": "", - "alreadyclosed": "", - "appointmentconfirmation": "Envoyer une confirmation au client?", - "associationwarning": "", - "audit": "", - "available": "", - "availablejobs": "", - "ca_bc_pvrt": { - "days": "", - "rate": "" - }, - "ca_gst_all_if_null": "", - "calc_repair_days": "", - "calc_repair_days_tt": "", - "calc_scheuled_completion": "", - "cards": { - "customer": "Informations client", - "damage": "Zone de dommages", - "dates": "Rendez-vous", - "documents": "Documents récents", - "estimator": "Estimateur", - "filehandler": "Gestionnaire de fichiers", - "insurance": "Détails de l'assurance", - "more": "Plus", - "notes": "Remarques", - "parts": "les pièces", - "totals": "Totaux", - "vehicle": "Véhicule" - }, - "changeclass": "", - "checklistcompletedby": "", - "checklistdocuments": "", - "checklists": "", - "cieca_pfl": "", - "cieca_pfo": "", - "cieca_pft": "", - "closeconfirm": "", - "closejob": "", - "closingperiod": "", - "contracts": "", - "convertedtolabor": "", - "cost": "", - "cost_Additional": "", - "cost_labor": "", - "cost_parts": "", - "cost_sublet": "", - "costs": "", - "create": { - "jobinfo": "", - "newowner": "", - "newvehicle": "", - "novehicle": "", - "ownerinfo": "", - "vehicleinfo": "" - }, - "createiouwarning": "", - "creating_new_job": "Création d'un nouvel emploi ...", - "deductible": { - "stands": "", - "waived": "" - }, - "deleteconfirm": "", - "deletedelivery": "", - "deleteintake": "", - "deliverchecklist": "", - "difference": "", - "diskscan": "", - "dms": { - "apexported": "", - "damageto": "", - "defaultstory": "", - "disablebillwip": "", - "invoicedatefuture": "", - "kmoutnotgreaterthankmin": "", - "logs": "", - "notallocated": "", - "postingform": "", - "totalallocated": "" - }, - "documents": "Les documents", - "documents-images": "", - "documents-other": "", - "duplicateconfirm": "", - "emailaudit": "", - "employeeassignments": "", - "estimatelines": "", - "estimator": "", - "existing_jobs": "Emplois existants", - "federal_tax_amt": "", - "gpdollars": "", - "gppercent": "", - "hrs_claimed": "", - "hrs_total": "", - "importnote": "", - "inproduction": "", - "intakechecklist": "", - "iou": "", - "job": "", - "jobcosting": "", - "jobtotals": "", - "labor_hrs": "", - "labor_rates_subtotal": "", - "laborallocations": "", - "labortotals": "", - "lines": "Estimer les lignes", - "local_tax_amt": "", - "mapa": "", - "markforreexport": "", - "mash": "", - "masterbypass": "", - "materials": { - "mapa": "" - }, - "missingprofileinfo": "", - "multipayers": "", - "net_repairs": "", - "notes": "Remarques", - "othertotal": "", - "outstanding_ar": "", - "outstanding_credit_memos": "", - "outstanding_ppd": "", - "outstanding_reconciliation_discrep": "", - "outstanding_sublets": "", - "outstandinghours": "", - "override_header": "Remplacer l'en-tête d'estimation à l'importation?", - "ownerassociation": "", - "parts": "les pièces", - "parts_lines": "", - "parts_received": "", - "parts_tax_rates": "", - "partsfilter": "", - "partssubletstotal": "", - "partstotal": "", - "performance": "", - "pimraryamountpayable": "", - "plitooltips": { - "billtotal": "", - "calculatedcreditsnotreceived": "", - "creditmemos": "", - "creditsnotreceived": "", - "discrep1": "", - "discrep2": "", - "discrep3": "", - "laboradj": "", - "partstotal": "", - "totalreturns": "" - }, - "ppc": "", - "ppdnotexported": "", - "profileadjustments": "", - "profitbypassrequired": "", - "profits": "", - "prt_dsmk_total": "", - "rates": "Les taux", - "rates_subtotal": "", - "reconciliation": { - "billlinestotal": "", - "byassoc": "", - "byprice": "", - "clear": "", - "discrepancy": "", - "joblinestotal": "", - "multipleactprices": "", - "multiplebilllines": "", - "multiplebillsforactprice": "", - "removedpartsstrikethrough": "" - }, - "reconciliationheader": "", - "relatedros": "", - "remove_from_ar": "", - "returntotals": "", - "ro_guard": { - "enforce_ar": "", - "enforce_bills": "", - "enforce_cm": "", - "enforce_labor": "", - "enforce_ppd": "", - "enforce_profit": "", - "enforce_sublet": "", - "enforce_validation": "", - "enforced": "" - }, - "roguard": "", - "roguardwarnings": "", - "rosaletotal": "", - "sale_additional": "", - "sale_labor": "", - "sale_parts": "", - "sale_sublet": "", - "sales": "", - "savebeforeconversion": "", - "scheduledinchange": "", - "specialcoveragepolicy": "", - "state_tax_amt": "", - "subletsnotcompleted": "", - "subletstotal": "", - "subtotal": "", - "supplementnote": "", - "suspended": "", - "suspense": "", - "tasks": "", - "threshhold": "", - "total_cost": "", - "total_cust_payable": "", - "total_cust_payable_cash_discount": "", - "total_repairs": "", - "total_repairs_cash_discount": "", - "total_sales": "", - "total_sales_tax": "", - "totals": "", - "unvoidnote": "", - "update_scheduled_completion": "", - "vehicle_info": "Véhicule", - "vehicleassociation": "", - "viewallocations": "", - "voidjob": "", - "voidnote": "" - }, - "successes": { - "addedtoproduction": "", - "all_deleted": "{{count}} travaux supprimés avec succès.", - "closed": "", - "converted": "Travail converti avec succès.", - "created": "Le travail a été créé avec succès. Clique pour voir.", - "creatednoclick": "", - "delete": "", - "deleted": "Le travail a bien été supprimé.", - "duplicated": "", - "exported": "", - "invoiced": "", - "ioucreated": "", - "partsqueue": "", - "save": "Le travail a été enregistré avec succès.", - "savetitle": "Enregistrement enregistré avec succès.", - "supplemented": "Travail complété avec succès.", - "updated": "", - "voided": "" - } - }, - "landing": { - "bigfeature": { - "subtitle": "", - "title": "" - }, - "footer": { - "company": { - "about": "", - "contact": "", - "disclaimers": "", - "name": "", - "privacypolicy": "" - }, - "io": { - "help": "", - "name": "", - "status": "" - }, - "slogan": "" - }, - "hero": { - "button": "", - "title": "" - }, - "labels": { - "features": "", - "managemyshop": "", - "pricing": "" - }, - "pricing": { - "basic": { - "name": "", - "sub": "" - }, - "essentials": { - "name": "", - "sub": "" - }, - "pricingtitle": "", - "pro": { - "name": "", - "sub": "" - }, - "title": "", - "unlimited": { - "name": "", - "sub": "" - } - } - }, - "menus": { - "currentuser": { - "languageselector": "La langue", - "profile": "Profil" - }, - "header": { - "accounting": "", - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "activejobs": "Emplois actifs", - "all_tasks": "", - "alljobs": "", - "allpayments": "", - "availablejobs": "Emplois disponibles", - "bills": "", - "courtesycars": "", - "courtesycars-all": "", - "courtesycars-contracts": "", - "courtesycars-newcontract": "", - "create_task": "", - "customers": "Les clients", - "dashboard": "", - "enterbills": "", - "entercardpayment": "", - "enterpayment": "", - "entertimeticket": "", - "export": "", - "export-logs": "", - "help": "", - "home": "Accueil", - "inventory": "", - "jobs": "Emplois", - "my_tasks": "", - "newjob": "", - "owners": "Propriétaires", - "parts-queue": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "readyjobs": "", - "recent": "", - "reportcenter": "", - "rescueme": "", - "schedule": "Programme", - "scoreboard": "", - "search": { - "bills": "", - "jobs": "", - "owners": "", - "payments": "", - "phonebook": "", - "vehicles": "" - }, - "shiftclock": "", - "shop": "Mon magasin", - "shop_config": "Configuration", - "shop_csi": "", - "shop_templates": "", - "shop_vendors": "Vendeurs", - "tasks": "", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicles": "Véhicules" - }, - "jobsactions": { - "admin": "", - "cancelallappointments": "", - "closejob": "", - "deletejob": "", - "duplicate": "", - "duplicatenolines": "", - "newcccontract": "", - "void": "" - }, - "jobsdetail": { - "claimdetail": "Détails de la réclamation", - "dates": "Rendez-vous", - "financials": "", - "general": "", - "insurance": "", - "labor": "La main d'oeuvre", - "lifecycle": "", - "parts": "", - "partssublet": "Pièces / Sous-location", - "rates": "", - "repairdata": "Données de réparation", - "totals": "" - }, - "profilesidebar": { - "profile": "Mon profil", - "shops": "Mes boutiques" - }, - "tech": { - "assignedjobs": "", - "claimtask": "", - "dispatchedparts": "", - "home": "", - "jobclockin": "", - "jobclockout": "", - "joblookup": "", - "login": "", - "logout": "", - "productionboard": "", - "productionlist": "", - "shiftclockin": "" - } - }, - "messaging": { - "actions": { - "link": "", - "new": "" - }, - "errors": { - "invalidphone": "", - "noattachedjobs": "", - "updatinglabel": "" - }, - "labels": { - "addlabel": "", - "archive": "", - "maxtenimages": "", - "messaging": "Messagerie", - "noallowtxt": "", - "nojobs": "", - "nopush": "", - "phonenumber": "", - "presets": "", - "recentonly": "", - "selectmedia": "", - "sentby": "", - "typeamessage": "Envoyer un message...", - "unarchive": "" - }, - "render": { - "conversation_list": "" - } - }, - "notes": { - "actions": { - "actions": "actes", - "deletenote": "Supprimer la note", - "edit": "Note éditée", - "new": "Nouvelle note", - "savetojobnotes": "" - }, - "errors": { - "inserting": "" - }, - "fields": { - "createdby": "Créé par", - "critical": "Critique", - "private": "privé", - "text": "Contenu", - "type": "", - "types": { - "customer": "", - "general": "", - "office": "", - "paint": "", - "parts": "", - "shop": "", - "supplement": "" - }, - "updatedat": "Mis à jour à" - }, - "labels": { - "addtorelatedro": "", - "newnoteplaceholder": "Ajouter une note...", - "notetoadd": "", - "systemnotes": "", - "usernotes": "" - }, - "successes": { - "create": "Remarque créée avec succès.", - "deleted": "Remarque supprimée avec succès.", - "updated": "Remarque mise à jour avec succès." - } - }, - "owner": { - "labels": { - "noownerinfo": "" - } - }, - "owners": { - "actions": { - "update": "" - }, - "errors": { - "deleting": "", - "noaccess": "L'enregistrement n'existe pas ou vous n'y avez pas accès.", - "saving": "", - "selectexistingornew": "" - }, - "fields": { - "accountingid": "", - "address": "Adresse", - "allow_text_message": "Autorisation de texte?", - "name": "Prénom", - "note": "", - "ownr_addr1": "Adresse", - "ownr_addr2": "Adresse 2 ", - "ownr_city": "Ville", - "ownr_co_nm": "", - "ownr_ctry": "Pays", - "ownr_ea": "Email", - "ownr_fn": "Prénom", - "ownr_ln": "Nom de famille", - "ownr_ph1": "Téléphone 1", - "ownr_ph2": "", - "ownr_st": "Etat / Province", - "ownr_title": "Titre", - "ownr_zip": "Zip / code postal", - "preferred_contact": "Méthode de contact préférée", - "tax_number": "" - }, - "forms": { - "address": "", - "contact": "", - "name": "" - }, - "labels": { - "create_new": "Créez un nouvel enregistrement de propriétaire.", - "deleteconfirm": "", - "existing_owners": "Propriétaires existants", - "fromclaim": "", - "fromowner": "", - "relatedjobs": "", - "updateowner": "" - }, - "successes": { - "delete": "", - "save": "Le propriétaire a bien enregistré." - } - }, - "parts": { - "actions": { - "order": "Commander des pièces", - "orderinhouse": "" - } - }, - "parts_dispatch": { - "actions": { - "accept": "" - }, - "errors": { - "accepting": "", - "creating": "" - }, - "fields": { - "number": "", - "percent_accepted": "" - }, - "labels": { - "notyetdispatched": "", - "parts_dispatch": "" - } - }, - "parts_dispatch_lines": { - "fields": { - "accepted_at": "" - } - }, - "parts_orders": { - "actions": { - "backordered": "", - "receive": "", - "receivebill": "" - }, - "errors": { - "associatedbills": "", - "backordering": "", - "creating": "Erreur rencontrée lors de la création de la commande de pièces.", - "oec": "", - "saving": "", - "updating": "" - }, - "fields": { - "act_price": "", - "backordered_eta": "", - "backordered_on": "", - "cm_received": "", - "comments": "", - "cost": "", - "db_price": "", - "deliver_by": "", - "job_line_id": "", - "line_desc": "", - "line_remarks": "", - "lineremarks": "Remarques sur la ligne", - "oem_partno": "", - "order_date": "", - "order_number": "", - "orderedby": "", - "part_type": "", - "quantity": "", - "return": "", - "status": "" - }, - "labels": { - "allpartsto": "", - "confirmdelete": "", - "custompercent": "", - "discount": "", - "email": "Envoyé par email", - "inthisorder": "Pièces dans cette commande", - "is_quote": "", - "mark_as_received": "", - "newpartsorder": "", - "notyetordered": "", - "oec": "", - "order_type": "", - "orderhistory": "Historique des commandes", - "parts_order": "", - "parts_orders": "", - "print": "Afficher le formulaire imprimé", - "receive": "", - "removefrompartsqueue": "", - "returnpartsorder": "", - "sublet_order": "" - }, - "successes": { - "created": "Commande de pièces créée avec succès.", - "line_updated": "", - "received": "", - "return_created": "" - } - }, - "payments": { - "actions": { - "generatepaymentlink": "" - }, - "errors": { - "exporting": "", - "exporting-partner": "", - "inserting": "" - }, - "fields": { - "amount": "", - "created_at": "", - "date": "", - "exportedat": "", - "memo": "", - "payer": "", - "paymentnum": "", - "stripeid": "", - "transactionid": "", - "type": "" - }, - "labels": { - "balance": "", - "ca_bc_etf_table": "", - "customer": "", - "edit": "", - "electronicpayment": "", - "external": "", - "findermodal": "", - "insurance": "", - "markexported": "", - "markforreexport": "", - "new": "", - "signup": "", - "smspaymentreminder": "", - "title": "", - "totalpayments": "" - }, - "successes": { - "exported": "", - "markexported": "", - "markreexported": "", - "payment": "", - "paymentupdate": "", - "stripe": "" - } - }, - "phonebook": { - "actions": { - "new": "" - }, - "errors": { - "adding": "", - "saving": "" - }, - "fields": { - "address1": "", - "address2": "", - "category": "", - "city": "", - "company": "", - "country": "", - "email": "", - "fax": "", - "firstname": "", - "lastname": "", - "phone1": "", - "phone2": "", - "state": "" - }, - "labels": { - "noneselected": "", - "onenamerequired": "", - "vendorcategory": "" - }, - "successes": { - "added": "", - "deleted": "", - "saved": "" - } - }, - "printcenter": { - "appointments": { - "appointment_confirmation": "" - }, - "bills": { - "inhouse_invoice": "" - }, - "courtesycarcontract": { - "courtesy_car_contract": "", - "courtesy_car_impound": "", - "courtesy_car_inventory": "", - "courtesy_car_terms": "" - }, - "errors": { - "nocontexttype": "" - }, - "jobs": { - "3rdpartyfields": { - "addr1": "", - "addr2": "", - "addr3": "", - "attn": "", - "city": "", - "custgst": "", - "ded_amt": "", - "depreciation": "", - "other": "", - "ponumber": "", - "refnumber": "", - "sendtype": "", - "state": "", - "zip": "" - }, - "3rdpartypayer": "", - "ab_proof_of_loss": "", - "appointment_confirmation": "", - "appointment_reminder": "", - "casl_authorization": "", - "committed_timetickets_ro": "", - "coversheet_landscape": "", - "coversheet_portrait": "", - "csi_invitation": "", - "csi_invitation_action": "", - "diagnostic_authorization": "", - "dms_posting_sheet": "", - "envelope_return_address": "", - "estimate": "", - "estimate_detail": "", - "estimate_followup": "", - "express_repair_checklist": "", - "filing_coversheet_landscape": "", - "filing_coversheet_portrait": "", - "final_invoice": "", - "fippa_authorization": "", - "folder_label_multiple": "", - "glass_express_checklist": "", - "guarantee": "", - "individual_job_note": "", - "invoice_customer_payable": "", - "invoice_total_payable": "", - "iou_form": "", - "job_costing_ro": "", - "job_lifecycle_ro": "", - "job_notes": "", - "job_tasks": "", - "key_tag": "", - "labels": { - "count": "", - "labels": "", - "position": "" - }, - "lag_time_ro": "", - "mechanical_authorization": "", - "mpi_animal_checklist": "", - "mpi_eglass_auth": "", - "mpi_final_acct_sheet": "", - "mpi_final_repair_acct_sheet": "", - "paint_grid": "", - "parts_dispatch": "", - "parts_invoice_label_single": "", - "parts_label_multiple": "", - "parts_label_single": "", - "parts_list": "", - "parts_order": "", - "parts_order_confirmation": "", - "parts_order_history": "", - "parts_return_slip": "", - "payment_receipt": "", - "payment_request": "", - "payments_by_job": "", - "purchases_by_ro_detail": "", - "purchases_by_ro_summary": "", - "qc_sheet": "", - "rental_reservation": "", - "ro_totals": "", - "ro_with_description": "", - "sgi_certificate_of_repairs": "", - "sgi_windshield_auth": "", - "stolen_recovery_checklist": "", - "sublet_order": "", - "supplement_request": "", - "thank_you_ro": "", - "thirdpartypayer": "", - "timetickets_ro": "", - "vehicle_check_in": "", - "vehicle_delivery_check": "", - "window_tag": "", - "window_tag_sublet": "", - "work_authorization": "", - "worksheet_by_line_number": "", - "worksheet_sorted_by_operation": "", - "worksheet_sorted_by_operation_no_hours": "", - "worksheet_sorted_by_operation_part_type": "", - "worksheet_sorted_by_operation_type": "", - "worksheet_sorted_by_team": "" - }, - "labels": { - "groups": { - "authorization": "", - "financial": "", - "post": "", - "pre": "", - "ro": "", - "worksheet": "" - }, - "misc": "", - "repairorder": "", - "reportcentermodal": "", - "speedprint": "", - "title": "" - }, - "payments": { - "ca_bc_etf_table": "", - "exported_payroll": "" - }, - "special": { - "attendance_detail_csv": "" - }, - "subjects": { - "jobs": { - "individual_job_note": "", - "parts_dispatch": "", - "parts_order": "", - "parts_return_slip": "", - "sublet_order": "" - } - }, - "vendors": { - "purchases_by_vendor_detailed": "", - "purchases_by_vendor_summary": "" - } - }, - "production": { - "actions": { - "addcolumns": "", - "bodypriority-clear": "", - "bodypriority-set": "", - "detailpriority-clear": "", - "detailpriority-set": "", - "paintpriority-clear": "", - "paintpriority-set": "", - "remove": "", - "removecolumn": "", - "saveconfig": "", - "suspend": "", - "unsuspend": "" - }, - "constants": { - "main_profile": "" - }, - "errors": { - "boardupdate": "", - "name_exists": "", - "name_required": "", - "removing": "", - "settings": "" - }, - "labels": { - "actual_in": "", - "addnewprofile": "", - "alert": "", - "alertoff": "", - "alerton": "", - "alerts": "", - "ats": "", - "bodyhours": "", - "bodypriority": "", - "bodyshop": { - "labels": { - "qbo_departmentid": "", - "qbo_usa": "" - } - }, - "card_size": "", - "cardcolor": "", - "cardsettings": "", - "clm_no": "", - "comment": "", - "compact": "", - "detailpriority": "", - "employeeassignments": "", - "employeesearch": "", - "estimator": "", - "horizontal": "", - "ins_co_nm": "", - "jobdetail": "", - "kiosk_mode": "", - "laborhrs": "", - "legend": "", - "model_info": "", - "note": "", - "off": "", - "on": "", - "orientation": "", - "ownr_nm": "", - "paintpriority": "", - "partsstatus": "", - "production_note": "", - "refinishhours": "", - "scheduled_completion": "", - "selectview": "", - "stickyheader": "", - "sublets": "", - "subtotal": "", - "tall": "", - "tasks": "", - "totalhours": "", - "touchtime": "", - "vertical": "", - "viewname": "", - "wide": "" - }, - "options": { - "horizontal": "", - "large": "", - "medium": "", - "small": "", - "vertical": "" - }, - "settings": { - "board_settings": "", - "filters": { - "md_estimators": "", - "md_ins_cos": "" - }, - "filters_title": "", - "information": "", - "layout": "", - "statistics": { - "jobs_in_production": "", - "tasks_in_production": "", - "tasks_in_view": "", - "tasks_on_board": "", - "total_amount_in_production": "", - "total_amount_in_view": "", - "total_amount_on_board": "", - "total_hours_in_production": "", - "total_hours_in_view": "", - "total_hours_on_board": "", - "total_jobs_in_view": "", - "total_jobs_on_board": "", - "total_lab_in_production": "", - "total_lab_in_view": "", - "total_lab_on_board": "", - "total_lar_in_production": "", - "total_lar_in_view": "", - "total_lar_on_board": "" - }, - "statistics_title": "" - }, - "statistics": { - "currency_symbol": "", - "hours": "", - "jobs": "", - "jobs_in_production": "", - "tasks": "", - "tasks_in_production": "", - "tasks_in_view": "", - "tasks_on_board": "", - "total_amount_in_production": "", - "total_amount_in_view": "", - "total_amount_on_board": "", - "total_hours_in_production": "", - "total_hours_in_view": "", - "total_hours_on_board": "", - "total_jobs_in_view": "", - "total_jobs_on_board": "", - "total_lab_in_production": "", - "total_lab_in_view": "", - "total_lab_on_board": "", - "total_lar_in_production": "", - "total_lar_in_view": "", - "total_lar_on_board": "" - }, - "successes": { - "removed": "" - } - }, - "profile": { - "errors": { - "state": "Erreur lors de la lecture de l'état de la page. Rafraichissez, s'il vous plait." - }, - "labels": { - "activeshop": "" - }, - "successes": { - "updated": "" - } - }, - "reportcenter": { - "actions": { - "generate": "" - }, - "labels": { - "advanced_filters": "", - "advanced_filters_false": "", - "advanced_filters_filter_field": "", - "advanced_filters_filter_operator": "", - "advanced_filters_filter_value": "", - "advanced_filters_filters": "", - "advanced_filters_hide": "", - "advanced_filters_show": "", - "advanced_filters_sorter_direction": "", - "advanced_filters_sorter_field": "", - "advanced_filters_sorters": "", - "advanced_filters_true": "", - "dates": "", - "employee": "", - "filterson": "", - "generateasemail": "", - "groups": { - "customers": "", - "jobs": "", - "payroll": "", - "purchases": "", - "sales": "" - }, - "key": "", - "objects": { - "appointments": "", - "bills": "", - "csi": "", - "exportlogs": "", - "jobs": "", - "parts_orders": "", - "payments": "", - "scoreboard": "", - "tasks": "", - "timetickets": "" - }, - "vendor": "" - }, - "templates": { - "adp_payroll_flat": "", - "adp_payroll_straight": "", - "anticipated_revenue": "", - "ar_aging": "", - "attendance_detail": "", - "attendance_employee": "", - "attendance_summary": "", - "committed_timetickets": "", - "committed_timetickets_employee": "", - "committed_timetickets_summary": "", - "credits_not_received_date": "", - "credits_not_received_date_vendorid": "", - "csi": "", - "customer_list": "", - "cycle_time_analysis": "", - "estimates_written_converted": "", - "estimator_detail": "", - "estimator_summary": "", - "export_payables": "", - "export_payments": "", - "export_receivables": "", - "exported_gsr_by_ro": "", - "exported_gsr_by_ro_labor": "", - "gsr_by_atp": "", - "gsr_by_ats": "", - "gsr_by_category": "", - "gsr_by_csr": "", - "gsr_by_delivery_date": "", - "gsr_by_estimator": "", - "gsr_by_exported_date": "", - "gsr_by_ins_co": "", - "gsr_by_make": "", - "gsr_by_referral": "", - "gsr_by_ro": "", - "gsr_labor_only": "", - "hours_sold_detail_closed": "", - "hours_sold_detail_closed_csr": "", - "hours_sold_detail_closed_estimator": "", - "hours_sold_detail_closed_ins_co": "", - "hours_sold_detail_closed_status": "", - "hours_sold_detail_open": "", - "hours_sold_detail_open_csr": "", - "hours_sold_detail_open_estimator": "", - "hours_sold_detail_open_ins_co": "", - "hours_sold_detail_open_status": "", - "hours_sold_summary_closed": "", - "hours_sold_summary_closed_csr": "", - "hours_sold_summary_closed_estimator": "", - "hours_sold_summary_closed_ins_co": "", - "hours_sold_summary_closed_status": "", - "hours_sold_summary_open": "", - "hours_sold_summary_open_csr": "", - "hours_sold_summary_open_estimator": "", - "hours_sold_summary_open_ins_co": "", - "hours_sold_summary_open_status": "", - "job_costing_ro_csr": "", - "job_costing_ro_date_detail": "", - "job_costing_ro_date_summary": "", - "job_costing_ro_estimator": "", - "job_costing_ro_ins_co": "", - "job_lifecycle_date_detail": "", - "job_lifecycle_date_summary": "", - "jobs_completed_not_invoiced": "", - "jobs_invoiced_not_exported": "", - "jobs_reconcile": "", - "jobs_scheduled_completion": "", - "lag_time": "", - "load_level": "", - "lost_sales": "", - "open_orders": "", - "open_orders_csr": "", - "open_orders_estimator": "", - "open_orders_excel": "", - "open_orders_ins_co": "", - "open_orders_referral": "", - "open_orders_specific_csr": "", - "open_orders_status": "", - "parts_backorder": "", - "parts_not_recieved": "", - "parts_not_recieved_vendor": "", - "parts_received_not_scheduled": "", - "payments_by_date": "", - "payments_by_date_payment": "", - "payments_by_date_type": "", - "production_by_category": "", - "production_by_category_one": "", - "production_by_csr": "", - "production_by_last_name": "", - "production_by_repair_status": "", - "production_by_repair_status_one": "", - "production_by_ro": "", - "production_by_target_date": "", - "production_by_technician": "", - "production_by_technician_one": "", - "production_not_production_status": "", - "production_over_time": "", - "psr_by_make": "", - "purchase_return_ratio_excel": "", - "purchase_return_ratio_grouped_by_vendor_detail": "", - "purchase_return_ratio_grouped_by_vendor_summary": "", - "purchases_by_cost_center_detail": "", - "purchases_by_cost_center_summary": "", - "purchases_by_date_range_detail": "", - "purchases_by_date_range_summary": "", - "purchases_by_ro_detail_date": "", - "purchases_by_ro_summary_date": "", - "purchases_by_vendor_detailed_date_range": "", - "purchases_by_vendor_summary_date_range": "", - "purchases_grouped_by_vendor_detailed": "", - "purchases_grouped_by_vendor_summary": "", - "returns_grouped_by_vendor_detailed": "", - "returns_grouped_by_vendor_summary": "", - "schedule": "", - "scheduled_parts_list": "", - "scoreboard_detail": "", - "scoreboard_summary": "", - "supplement_ratio_ins_co": "", - "tasks_date": "", - "tasks_date_employee": "", - "thank_you_date": "", - "timetickets": "", - "timetickets_employee": "", - "timetickets_summary": "", - "total_loss_jobs": "", - "unclaimed_hrs": "", - "void_ros": "", - "work_in_progress_committed_labour": "", - "work_in_progress_jobs": "", - "work_in_progress_labour": "", - "work_in_progress_payables": "" - } - }, - "schedule": { - "labels": { - "atssummary": "", - "employeevacation": "", - "estimators": "", - "ins_co_nm_filter": "", - "intake": "", - "manual": "", - "manualevent": "" - } - }, - "scoreboard": { - "actions": { - "edit": "" - }, - "errors": { - "adding": "", - "removing": "", - "updating": "" - }, - "fields": { - "bodyhrs": "", - "date": "", - "painthrs": "" - }, - "labels": { - "allemployeetimetickets": "", - "asoftodaytarget": "", - "body": "", - "bodyabbrev": "", - "bodycharttitle": "", - "calendarperiod": "", - "combinedcharttitle": "", - "dailyactual": "", - "dailytarget": "", - "efficiencyoverperiod": "", - "entries": "", - "jobs": "", - "jobscompletednotinvoiced": "", - "lastmonth": "", - "lastweek": "", - "monthlytarget": "", - "priorweek": "", - "productivestatistics": "", - "productivetimeticketsoverdate": "", - "refinish": "", - "refinishabbrev": "", - "refinishcharttitle": "", - "targets": "", - "thismonth": "", - "thisweek": "", - "timetickets": "", - "timeticketsemployee": "", - "todateactual": "", - "total": "", - "totalhrs": "", - "totaloverperiod": "", - "weeklyactual": "", - "weeklytarget": "", - "workingdays": "" - }, - "successes": { - "added": "", - "removed": "", - "updated": "" - } - }, - "tasks": { - "actions": { - "edit": "", - "new": "" - }, - "buttons": { - "allTasks": "", - "complete": "", - "create": "", - "delete": "", - "edit": "", - "myTasks": "", - "refresh": "" - }, - "date_presets": { - "completion": "", - "day": "", - "days": "", - "delivery": "", - "next_week": "", - "one_month": "", - "three_months": "", - "three_weeks": "", - "today": "", - "tomorrow": "", - "two_weeks": "" - }, - "failures": { - "completed": "", - "created": "", - "deleted": "", - "updated": "" - }, - "fields": { - "actions": "", - "assigned_to": "", - "bill": "", - "billid": "", - "completed": "", - "created_at": "", - "created_by": "", - "description": "", - "due_date": "", - "job": { - "ro_number": "" - }, - "jobid": "", - "jobline": "", - "joblineid": "", - "parts_order": "", - "partsorderid": "", - "priorities": { - "high": "", - "low": "", - "medium": "" - }, - "priority": "", - "related_items": "", - "remind_at": "", - "title": "" - }, - "placeholders": { - "assigned_to": "", - "billid": "", - "description": "", - "jobid": "", - "joblineid": "", - "partsorderid": "" - }, - "successes": { - "completed": "", - "created": "", - "deleted": "", - "updated": "" - }, - "titles": { - "all_tasks": "", - "completed": "", - "deleted": "", - "job_tasks": "", - "mine": "", - "my_tasks": "" - }, - "validation": { - "due_at_error_message": "", - "remind_at_error_message": "" - } - }, - "tech": { - "fields": { - "employeeid": "", - "pin": "" - }, - "labels": { - "loggedin": "", - "notloggedin": "" - } - }, - "templates": { - "errors": { - "updating": "" - }, - "successes": { - "updated": "" - } - }, - "timetickets": { - "actions": { - "claimtasks": "", - "clockin": "", - "clockout": "", - "commit": "", - "commitone": "", - "enter": "", - "payall": "", - "printemployee": "", - "uncommit": "" - }, - "errors": { - "clockingin": "", - "clockingout": "", - "creating": "", - "deleting": "", - "noemployeeforuser": "", - "noemployeeforuser_sub": "", - "payall": "", - "shiftalreadyclockedon": "" - }, - "fields": { - "actualhrs": "", - "ciecacode": "", - "clockhours": "", - "clockoff": "", - "clockon": "", - "committed": "", - "committed_at": "", - "cost_center": "", - "created_by": "", - "date": "", - "efficiency": "", - "employee": "", - "employee_team": "", - "flat_rate": "", - "memo": "", - "productivehrs": "", - "ro_number": "", - "task_name": "" - }, - "labels": { - "alreadyclockedon": "", - "ambreak": "", - "amshift": "", - "claimtaskpreview": "", - "clockhours": "", - "clockintojob": "", - "deleteconfirm": "", - "edit": "", - "efficiency": "", - "flat_rate": "", - "jobhours": "", - "lunch": "", - "new": "", - "payrollclaimedtasks": "", - "pmbreak": "", - "pmshift": "", - "shift": "", - "shiftalreadyclockedon": "", - "straight_time": "", - "task": "", - "timetickets": "", - "unassigned": "", - "zeroactualnegativeprod": "" - }, - "successes": { - "clockedin": "", - "clockedout": "", - "committed": "", - "created": "", - "deleted": "", - "payall": "" - }, - "validation": { - "clockoffmustbeafterclockon": "", - "clockoffwithoutclockon": "", - "hoursenteredmorethanavailable": "", - "unassignedlines": "" - } - }, - "titles": { - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "all_tasks": "", - "app": "", - "bc": { - "accounting-payables": "", - "accounting-payments": "", - "accounting-receivables": "", - "all_tasks": "", - "availablejobs": "", - "bills-list": "", - "contracts": "", - "contracts-create": "", - "contracts-detail": "", - "courtesycars": "", - "courtesycars-detail": "", - "courtesycars-new": "", - "dashboard": "", - "dms": "", - "export-logs": "", - "inventory": "", - "jobs": "", - "jobs-active": "", - "jobs-admin": "", - "jobs-all": "", - "jobs-checklist": "", - "jobs-close": "", - "jobs-deliver": "", - "jobs-detail": "", - "jobs-intake": "", - "jobs-new": "", - "jobs-ready": "", - "my_tasks": "", - "owner-detail": "", - "owners": "", - "parts-queue": "", - "payments-all": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "profile": "", - "schedule": "", - "scoreboard": "", - "shop": "", - "shop-csi": "", - "shop-templates": "", - "shop-vendors": "", - "tasks": "", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicle-details": "", - "vehicles": "" - }, - "bills-list": "", - "contracts": "", - "contracts-create": "", - "contracts-detail": "", - "courtesycars": "", - "courtesycars-create": "", - "courtesycars-detail": "", - "dashboard": "", - "dms": "", - "export-logs": "", - "imexonline": "", - "inventory": "", - "jobs": "Tous les emplois | {{app}}", - "jobs-admin": "", - "jobs-all": "", - "jobs-checklist": "", - "jobs-close": "", - "jobs-create": "", - "jobs-deliver": "", - "jobs-intake": "", - "jobsavailable": "Emplois disponibles | {{app}}", - "jobsdetail": "Travail {{ro_number}} | {{app}}", - "jobsdocuments": "Documents de travail {{ro_number}} | {{app}}", - "manageroot": "Accueil | {{app}}", - "my_tasks": "", - "owners": "Tous les propriétaires | {{app}}", - "owners-detail": "", - "parts-queue": "", - "payments-all": "", - "phonebook": "", - "productionboard": "", - "productionlist": "", - "profile": "Mon profil | {{app}}", - "promanager": "", - "readyjobs": "", - "resetpassword": "", - "resetpasswordvalidate": "", - "romeonline": "", - "schedule": "Horaire | {{app}}", - "scoreboard": "", - "shop": "Mon magasin | {{app}}", - "shop-csi": "", - "shop-templates": "", - "shop_vendors": "Vendeurs | {{app}}", - "tasks": "", - "techconsole": "{{app}}", - "techjobclock": "{{app}}", - "techjoblookup": "{{app}}", - "techshiftclock": "{{app}}", - "temporarydocs": "", - "timetickets": "", - "ttapprovals": "", - "vehicledetail": "Détails du véhicule {{vehicle} | {{app}}", - "vehicles": "Tous les véhicules | {{app}}" - }, - "trello": { - "labels": { - "add_card": "", - "add_lane": "", - "cancel": "", - "delete_lane": "", - "description": "", - "label": "", - "lane_actions": "", - "title": "" - } - }, - "tt_approvals": { - "actions": { - "approveselected": "" - }, - "labels": { - "approval_queue_in_use": "", - "calculate": "" - } - }, - "user": { - "actions": { - "changepassword": "", - "signout": "Déconnexion", - "updateprofile": "Mettre à jour le profil" - }, - "errors": { - "updating": "" - }, - "fields": { - "authlevel": "", - "displayname": "Afficher un nom", - "email": "", - "photourl": "URL de l'avatar" - }, - "labels": { - "actions": "", - "changepassword": "", - "profileinfo": "" - }, - "successess": { - "passwordchanged": "" - } - }, - "users": { - "errors": { - "signinerror": { - "auth/user-disabled": "", - "auth/user-not-found": "", - "auth/wrong-password": "" - } - } - }, - "vehicles": { - "errors": { - "deleting": "", - "noaccess": "Le véhicule n'existe pas ou vous n'y avez pas accès.", - "selectexistingornew": "", - "validation": "Veuillez vous assurer que tous les champs sont correctement entrés.", - "validationtitle": "Erreur de validation" - }, - "fields": { - "description": "Description du véhicule", - "notes": "", - "plate_no": "Plaque d'immatriculation", - "plate_st": "Juridiction de la plaque", - "trim_color": "Couleur de garniture", - "v_bstyle": "Style corporel", - "v_color": "Couleur", - "v_cond": "Etat", - "v_engine": "moteur", - "v_make_desc": "Faire", - "v_makecode": "Faire du code", - "v_mldgcode": "Code de moulage", - "v_model_desc": "Modèle", - "v_model_yr": "année", - "v_options": "Les options", - "v_paint_codes": "Codes de peinture", - "v_prod_dt": "Date de production", - "v_stage": "Étape", - "v_tone": "ton", - "v_trimcode": "Code de coupe", - "v_type": "Type", - "v_vin": "V.I.N." - }, - "forms": { - "detail": "", - "misc": "", - "registration": "" - }, - "labels": { - "deleteconfirm": "", - "fromvehicle": "", - "novehinfo": "", - "relatedjobs": "", - "updatevehicle": "" - }, - "successes": { - "delete": "", - "save": "Le véhicule a été enregistré avec succès." - } - }, - "vendors": { - "actions": { - "addtophonebook": "", - "new": "Nouveau vendeur", - "newpreferredmake": "" - }, - "errors": { - "deleting": "Erreur rencontrée lors de la suppression du fournisseur.", - "saving": "Erreur rencontrée lors de l'enregistrement du fournisseur." - }, - "fields": { - "active": "", - "am": "", - "city": "Ville", - "cost_center": "Centre de coûts", - "country": "Pays", - "discount": "Remise %", - "display_name": "Afficher un nom", - "dmsid": "", - "due_date": "Date limite de paiement", - "email": "Email du contact", - "favorite": "Préféré?", - "lkq": "", - "make": "", - "name": "Nom du vendeur", - "oem": "", - "phone": "", - "prompt_discount": "Remise rapide%", - "state": "Etat / Province", - "street1": "rue", - "street2": "Adresse 2 ", - "taxid": "Identifiant de taxe", - "terms": "Modalités de paiement", - "zip": "Zip / code postal" - }, - "labels": { - "noneselected": "Aucun fournisseur n'est sélectionné.", - "preferredmakes": "", - "search": "Tapez le nom d'un vendeur" - }, - "successes": { - "deleted": "Le fournisseur a bien été supprimé.", - "saved": "Le fournisseur a bien enregistré." - }, - "validation": { - "unique_vendor_name": "" - } - } - } + "towin": "", + "towing_payable": "Remorquage à payer", + "unitnumber": "Unité #", + "updated_at": "Mis à jour à", + "uploaded_by": "Telechargé par", + "vehicle": "Véhicule" + }, + "forms": { + "admindates": "", + "appraiserinfo": "", + "claiminfo": "", + "estdates": "", + "laborrates": "", + "lossinfo": "", + "other": "", + "repairdates": "", + "scheddates": "" + }, + "labels": { + "accountsreceivable": "", + "act_price_ppc": "", + "actual_completion_inferred": "", + "actual_delivery_inferred": "", + "actual_in_inferred": "", + "additionalpayeroverallocation": "", + "additionaltotal": "", + "adjustmentrate": "", + "adjustments": "", + "adminwarning": "", + "allocations": "", + "alreadyaddedtoscoreboard": "", + "alreadyclosed": "", + "appointmentconfirmation": "Envoyer une confirmation au client?", + "associationwarning": "", + "audit": "", + "available": "", + "availablejobs": "", + "ca_bc_pvrt": { + "days": "", + "rate": "" + }, + "ca_gst_all_if_null": "", + "calc_repair_days": "", + "calc_repair_days_tt": "", + "calc_scheuled_completion": "", + "cards": { + "customer": "Informations client", + "damage": "Zone de dommages", + "dates": "Rendez-vous", + "documents": "Documents récents", + "estimator": "Estimateur", + "filehandler": "Gestionnaire de fichiers", + "insurance": "Détails de l'assurance", + "more": "Plus", + "notes": "Remarques", + "parts": "les pièces", + "totals": "Totaux", + "vehicle": "Véhicule" + }, + "changeclass": "", + "checklistcompletedby": "", + "checklistdocuments": "", + "checklists": "", + "cieca_pfl": "", + "cieca_pfo": "", + "cieca_pft": "", + "closeconfirm": "", + "closejob": "", + "closingperiod": "", + "contracts": "", + "convertedtolabor": "", + "cost": "", + "cost_Additional": "", + "cost_labor": "", + "cost_parts": "", + "cost_sublet": "", + "costs": "", + "create": { + "jobinfo": "", + "newowner": "", + "newvehicle": "", + "novehicle": "", + "ownerinfo": "", + "vehicleinfo": "" + }, + "createiouwarning": "", + "creating_new_job": "Création d'un nouvel emploi ...", + "deductible": { + "stands": "", + "waived": "" + }, + "deleteconfirm": "", + "deletedelivery": "", + "deleteintake": "", + "deliverchecklist": "", + "difference": "", + "diskscan": "", + "dms": { + "apexported": "", + "damageto": "", + "defaultstory": "", + "disablebillwip": "", + "invoicedatefuture": "", + "kmoutnotgreaterthankmin": "", + "logs": "", + "notallocated": "", + "postingform": "", + "totalallocated": "" + }, + "documents": "Les documents", + "documents-images": "", + "documents-other": "", + "duplicateconfirm": "", + "emailaudit": "", + "employeeassignments": "", + "estimatelines": "", + "estimator": "", + "existing_jobs": "Emplois existants", + "federal_tax_amt": "", + "gpdollars": "", + "gppercent": "", + "hrs_claimed": "", + "hrs_total": "", + "importnote": "", + "inproduction": "", + "intakechecklist": "", + "iou": "", + "job": "", + "jobcosting": "", + "jobtotals": "", + "labor_hrs": "", + "labor_rates_subtotal": "", + "laborallocations": "", + "labortotals": "", + "lines": "Estimer les lignes", + "local_tax_amt": "", + "mapa": "", + "markforreexport": "", + "mash": "", + "masterbypass": "", + "materials": { + "mapa": "" + }, + "missingprofileinfo": "", + "multipayers": "", + "net_repairs": "", + "notes": "Remarques", + "othertotal": "", + "outstanding_ar": "", + "outstanding_credit_memos": "", + "outstanding_ppd": "", + "outstanding_reconciliation_discrep": "", + "outstanding_sublets": "", + "outstandinghours": "", + "override_header": "Remplacer l'en-tête d'estimation à l'importation?", + "ownerassociation": "", + "parts": "les pièces", + "parts_lines": "", + "parts_received": "", + "parts_tax_rates": "", + "partsfilter": "", + "partssubletstotal": "", + "partstotal": "", + "performance": "", + "pimraryamountpayable": "", + "plitooltips": { + "billtotal": "", + "calculatedcreditsnotreceived": "", + "creditmemos": "", + "creditsnotreceived": "", + "discrep1": "", + "discrep2": "", + "discrep3": "", + "laboradj": "", + "partstotal": "", + "totalreturns": "" + }, + "ppc": "", + "ppdnotexported": "", + "profileadjustments": "", + "profitbypassrequired": "", + "profits": "", + "prt_dsmk_total": "", + "rates": "Les taux", + "rates_subtotal": "", + "reconciliation": { + "billlinestotal": "", + "byassoc": "", + "byprice": "", + "clear": "", + "discrepancy": "", + "joblinestotal": "", + "multipleactprices": "", + "multiplebilllines": "", + "multiplebillsforactprice": "", + "removedpartsstrikethrough": "" + }, + "reconciliationheader": "", + "relatedros": "", + "remove_from_ar": "", + "returntotals": "", + "ro_guard": { + "enforce_ar": "", + "enforce_bills": "", + "enforce_cm": "", + "enforce_labor": "", + "enforce_ppd": "", + "enforce_profit": "", + "enforce_sublet": "", + "enforce_validation": "", + "enforced": "" + }, + "roguard": "", + "roguardwarnings": "", + "rosaletotal": "", + "sale_additional": "", + "sale_labor": "", + "sale_parts": "", + "sale_sublet": "", + "sales": "", + "savebeforeconversion": "", + "scheduledinchange": "", + "specialcoveragepolicy": "", + "state_tax_amt": "", + "subletsnotcompleted": "", + "subletstotal": "", + "subtotal": "", + "supplementnote": "", + "suspended": "", + "suspense": "", + "tasks": "", + "threshhold": "", + "total_cost": "", + "total_cust_payable": "", + "total_cust_payable_cash_discount": "", + "total_repairs": "", + "total_repairs_cash_discount": "", + "total_sales": "", + "total_sales_tax": "", + "totals": "", + "unvoidnote": "", + "update_scheduled_completion": "", + "vehicle_info": "Véhicule", + "vehicleassociation": "", + "viewallocations": "", + "voidjob": "", + "voidnote": "" + }, + "successes": { + "addedtoproduction": "", + "all_deleted": "{{count}} travaux supprimés avec succès.", + "closed": "", + "converted": "Travail converti avec succès.", + "created": "Le travail a été créé avec succès. Clique pour voir.", + "creatednoclick": "", + "delete": "", + "deleted": "Le travail a bien été supprimé.", + "duplicated": "", + "exported": "", + "invoiced": "", + "ioucreated": "", + "partsqueue": "", + "save": "Le travail a été enregistré avec succès.", + "savetitle": "Enregistrement enregistré avec succès.", + "supplemented": "Travail complété avec succès.", + "updated": "", + "voided": "" + } + }, + "landing": { + "bigfeature": { + "subtitle": "", + "title": "" + }, + "footer": { + "company": { + "about": "", + "contact": "", + "disclaimers": "", + "name": "", + "privacypolicy": "" + }, + "io": { + "help": "", + "name": "", + "status": "" + }, + "slogan": "" + }, + "hero": { + "button": "", + "title": "" + }, + "labels": { + "features": "", + "managemyshop": "", + "pricing": "" + }, + "pricing": { + "basic": { + "name": "", + "sub": "" + }, + "essentials": { + "name": "", + "sub": "" + }, + "pricingtitle": "", + "pro": { + "name": "", + "sub": "" + }, + "title": "", + "unlimited": { + "name": "", + "sub": "" + } + } + }, + "menus": { + "currentuser": { + "languageselector": "La langue", + "profile": "Profil" + }, + "header": { + "accounting": "", + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "activejobs": "Emplois actifs", + "all_tasks": "", + "alljobs": "", + "allpayments": "", + "availablejobs": "Emplois disponibles", + "bills": "", + "courtesycars": "", + "courtesycars-all": "", + "courtesycars-contracts": "", + "courtesycars-newcontract": "", + "create_task": "", + "customers": "Les clients", + "dashboard": "", + "enterbills": "", + "entercardpayment": "", + "enterpayment": "", + "entertimeticket": "", + "export": "", + "export-logs": "", + "help": "", + "home": "Accueil", + "inventory": "", + "jobs": "Emplois", + "my_tasks": "", + "newjob": "", + "owners": "Propriétaires", + "parts-queue": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "readyjobs": "", + "recent": "", + "reportcenter": "", + "rescueme": "", + "schedule": "Programme", + "scoreboard": "", + "search": { + "bills": "", + "jobs": "", + "owners": "", + "payments": "", + "phonebook": "", + "vehicles": "" + }, + "shiftclock": "", + "shop": "Mon magasin", + "shop_config": "Configuration", + "shop_csi": "", + "shop_templates": "", + "shop_vendors": "Vendeurs", + "tasks": "", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicles": "Véhicules" + }, + "jobsactions": { + "admin": "", + "cancelallappointments": "", + "closejob": "", + "deletejob": "", + "duplicate": "", + "duplicatenolines": "", + "newcccontract": "", + "void": "" + }, + "jobsdetail": { + "claimdetail": "Détails de la réclamation", + "dates": "Rendez-vous", + "financials": "", + "general": "", + "insurance": "", + "labor": "La main d'oeuvre", + "lifecycle": "", + "parts": "", + "partssublet": "Pièces / Sous-location", + "rates": "", + "repairdata": "Données de réparation", + "totals": "" + }, + "profilesidebar": { + "profile": "Mon profil", + "shops": "Mes boutiques" + }, + "tech": { + "assignedjobs": "", + "claimtask": "", + "dispatchedparts": "", + "home": "", + "jobclockin": "", + "jobclockout": "", + "joblookup": "", + "login": "", + "logout": "", + "productionboard": "", + "productionlist": "", + "shiftclockin": "" + } + }, + "messaging": { + "actions": { + "link": "", + "new": "" + }, + "errors": { + "invalidphone": "", + "noattachedjobs": "", + "updatinglabel": "" + }, + "labels": { + "addlabel": "", + "archive": "", + "maxtenimages": "", + "messaging": "Messagerie", + "noallowtxt": "", + "nojobs": "", + "nopush": "", + "phonenumber": "", + "presets": "", + "recentonly": "", + "selectmedia": "", + "sentby": "", + "typeamessage": "Envoyer un message...", + "unarchive": "" + }, + "render": { + "conversation_list": "" + } + }, + "notes": { + "actions": { + "actions": "actes", + "deletenote": "Supprimer la note", + "edit": "Note éditée", + "new": "Nouvelle note", + "savetojobnotes": "" + }, + "errors": { + "inserting": "" + }, + "fields": { + "createdby": "Créé par", + "critical": "Critique", + "private": "privé", + "text": "Contenu", + "type": "", + "types": { + "customer": "", + "general": "", + "office": "", + "paint": "", + "parts": "", + "shop": "", + "supplement": "" + }, + "updatedat": "Mis à jour à" + }, + "labels": { + "addtorelatedro": "", + "newnoteplaceholder": "Ajouter une note...", + "notetoadd": "", + "systemnotes": "", + "usernotes": "" + }, + "successes": { + "create": "Remarque créée avec succès.", + "deleted": "Remarque supprimée avec succès.", + "updated": "Remarque mise à jour avec succès." + } + }, + "owner": { + "labels": { + "noownerinfo": "" + } + }, + "owners": { + "actions": { + "update": "" + }, + "errors": { + "deleting": "", + "noaccess": "L'enregistrement n'existe pas ou vous n'y avez pas accès.", + "saving": "", + "selectexistingornew": "" + }, + "fields": { + "accountingid": "", + "address": "Adresse", + "allow_text_message": "Autorisation de texte?", + "name": "Prénom", + "note": "", + "ownr_addr1": "Adresse", + "ownr_addr2": "Adresse 2 ", + "ownr_city": "Ville", + "ownr_co_nm": "", + "ownr_ctry": "Pays", + "ownr_ea": "Email", + "ownr_fn": "Prénom", + "ownr_ln": "Nom de famille", + "ownr_ph1": "Téléphone 1", + "ownr_ph2": "", + "ownr_st": "Etat / Province", + "ownr_title": "Titre", + "ownr_zip": "Zip / code postal", + "preferred_contact": "Méthode de contact préférée", + "tax_number": "" + }, + "forms": { + "address": "", + "contact": "", + "name": "" + }, + "labels": { + "create_new": "Créez un nouvel enregistrement de propriétaire.", + "deleteconfirm": "", + "existing_owners": "Propriétaires existants", + "fromclaim": "", + "fromowner": "", + "relatedjobs": "", + "updateowner": "" + }, + "successes": { + "delete": "", + "save": "Le propriétaire a bien enregistré." + } + }, + "parts": { + "actions": { + "order": "Commander des pièces", + "orderinhouse": "" + } + }, + "parts_dispatch": { + "actions": { + "accept": "" + }, + "errors": { + "accepting": "", + "creating": "" + }, + "fields": { + "number": "", + "percent_accepted": "" + }, + "labels": { + "notyetdispatched": "", + "parts_dispatch": "" + } + }, + "parts_dispatch_lines": { + "fields": { + "accepted_at": "" + } + }, + "parts_orders": { + "actions": { + "backordered": "", + "receive": "", + "receivebill": "" + }, + "errors": { + "associatedbills": "", + "backordering": "", + "creating": "Erreur rencontrée lors de la création de la commande de pièces.", + "oec": "", + "saving": "", + "updating": "" + }, + "fields": { + "act_price": "", + "backordered_eta": "", + "backordered_on": "", + "cm_received": "", + "comments": "", + "cost": "", + "db_price": "", + "deliver_by": "", + "job_line_id": "", + "line_desc": "", + "line_remarks": "", + "lineremarks": "Remarques sur la ligne", + "oem_partno": "", + "order_date": "", + "order_number": "", + "orderedby": "", + "part_type": "", + "quantity": "", + "return": "", + "status": "" + }, + "labels": { + "allpartsto": "", + "confirmdelete": "", + "custompercent": "", + "discount": "", + "email": "Envoyé par email", + "inthisorder": "Pièces dans cette commande", + "is_quote": "", + "mark_as_received": "", + "newpartsorder": "", + "notyetordered": "", + "oec": "", + "order_type": "", + "orderhistory": "Historique des commandes", + "parts_order": "", + "parts_orders": "", + "print": "Afficher le formulaire imprimé", + "receive": "", + "removefrompartsqueue": "", + "returnpartsorder": "", + "sublet_order": "" + }, + "successes": { + "created": "Commande de pièces créée avec succès.", + "line_updated": "", + "received": "", + "return_created": "" + } + }, + "payments": { + "actions": { + "generatepaymentlink": "" + }, + "errors": { + "exporting": "", + "exporting-partner": "", + "inserting": "" + }, + "fields": { + "amount": "", + "created_at": "", + "date": "", + "exportedat": "", + "memo": "", + "payer": "", + "paymentnum": "", + "stripeid": "", + "transactionid": "", + "type": "" + }, + "labels": { + "balance": "", + "ca_bc_etf_table": "", + "customer": "", + "edit": "", + "electronicpayment": "", + "external": "", + "findermodal": "", + "insurance": "", + "markexported": "", + "markforreexport": "", + "new": "", + "signup": "", + "smspaymentreminder": "", + "title": "", + "totalpayments": "" + }, + "successes": { + "exported": "", + "markexported": "", + "markreexported": "", + "payment": "", + "paymentupdate": "", + "stripe": "" + } + }, + "phonebook": { + "actions": { + "new": "" + }, + "errors": { + "adding": "", + "saving": "" + }, + "fields": { + "address1": "", + "address2": "", + "category": "", + "city": "", + "company": "", + "country": "", + "email": "", + "fax": "", + "firstname": "", + "lastname": "", + "phone1": "", + "phone2": "", + "state": "" + }, + "labels": { + "noneselected": "", + "onenamerequired": "", + "vendorcategory": "" + }, + "successes": { + "added": "", + "deleted": "", + "saved": "" + } + }, + "printcenter": { + "appointments": { + "appointment_confirmation": "" + }, + "bills": { + "inhouse_invoice": "" + }, + "courtesycarcontract": { + "courtesy_car_contract": "", + "courtesy_car_impound": "", + "courtesy_car_inventory": "", + "courtesy_car_terms": "" + }, + "errors": { + "nocontexttype": "" + }, + "jobs": { + "3rdpartyfields": { + "addr1": "", + "addr2": "", + "addr3": "", + "attn": "", + "city": "", + "custgst": "", + "ded_amt": "", + "depreciation": "", + "other": "", + "ponumber": "", + "refnumber": "", + "sendtype": "", + "state": "", + "zip": "" + }, + "3rdpartypayer": "", + "ab_proof_of_loss": "", + "appointment_confirmation": "", + "appointment_reminder": "", + "casl_authorization": "", + "committed_timetickets_ro": "", + "coversheet_landscape": "", + "coversheet_portrait": "", + "csi_invitation": "", + "csi_invitation_action": "", + "diagnostic_authorization": "", + "dms_posting_sheet": "", + "envelope_return_address": "", + "estimate": "", + "estimate_detail": "", + "estimate_followup": "", + "express_repair_checklist": "", + "filing_coversheet_landscape": "", + "filing_coversheet_portrait": "", + "final_invoice": "", + "fippa_authorization": "", + "folder_label_multiple": "", + "glass_express_checklist": "", + "guarantee": "", + "individual_job_note": "", + "invoice_customer_payable": "", + "invoice_total_payable": "", + "iou_form": "", + "job_costing_ro": "", + "job_lifecycle_ro": "", + "job_notes": "", + "job_tasks": "", + "key_tag": "", + "labels": { + "count": "", + "labels": "", + "position": "" + }, + "lag_time_ro": "", + "mechanical_authorization": "", + "mpi_animal_checklist": "", + "mpi_eglass_auth": "", + "mpi_final_acct_sheet": "", + "mpi_final_repair_acct_sheet": "", + "paint_grid": "", + "parts_dispatch": "", + "parts_invoice_label_single": "", + "parts_label_multiple": "", + "parts_label_single": "", + "parts_list": "", + "parts_order": "", + "parts_order_confirmation": "", + "parts_order_history": "", + "parts_return_slip": "", + "payment_receipt": "", + "payment_request": "", + "payments_by_job": "", + "purchases_by_ro_detail": "", + "purchases_by_ro_summary": "", + "qc_sheet": "", + "rental_reservation": "", + "ro_totals": "", + "ro_with_description": "", + "sgi_certificate_of_repairs": "", + "sgi_windshield_auth": "", + "stolen_recovery_checklist": "", + "sublet_order": "", + "supplement_request": "", + "thank_you_ro": "", + "thirdpartypayer": "", + "timetickets_ro": "", + "vehicle_check_in": "", + "vehicle_delivery_check": "", + "window_tag": "", + "window_tag_sublet": "", + "work_authorization": "", + "worksheet_by_line_number": "", + "worksheet_sorted_by_operation": "", + "worksheet_sorted_by_operation_no_hours": "", + "worksheet_sorted_by_operation_part_type": "", + "worksheet_sorted_by_operation_type": "", + "worksheet_sorted_by_team": "" + }, + "labels": { + "groups": { + "authorization": "", + "financial": "", + "post": "", + "pre": "", + "ro": "", + "worksheet": "" + }, + "misc": "", + "repairorder": "", + "reportcentermodal": "", + "speedprint": "", + "title": "" + }, + "payments": { + "ca_bc_etf_table": "", + "exported_payroll": "" + }, + "special": { + "attendance_detail_csv": "" + }, + "subjects": { + "jobs": { + "individual_job_note": "", + "parts_dispatch": "", + "parts_order": "", + "parts_return_slip": "", + "sublet_order": "" + } + }, + "vendors": { + "purchases_by_vendor_detailed": "", + "purchases_by_vendor_summary": "" + } + }, + "production": { + "actions": { + "addcolumns": "", + "bodypriority-clear": "", + "bodypriority-set": "", + "detailpriority-clear": "", + "detailpriority-set": "", + "paintpriority-clear": "", + "paintpriority-set": "", + "remove": "", + "removecolumn": "", + "saveconfig": "", + "suspend": "", + "unsuspend": "" + }, + "constants": { + "main_profile": "" + }, + "errors": { + "boardupdate": "", + "name_exists": "", + "name_required": "", + "removing": "", + "settings": "" + }, + "labels": { + "actual_in": "", + "addnewprofile": "", + "alert": "", + "alertoff": "", + "alerton": "", + "alerts": "", + "ats": "", + "bodyhours": "", + "bodypriority": "", + "bodyshop": { + "labels": { + "qbo_departmentid": "", + "qbo_usa": "" + } + }, + "card_size": "", + "cardcolor": "", + "cardsettings": "", + "clm_no": "", + "comment": "", + "compact": "", + "detailpriority": "", + "employeeassignments": "", + "employeesearch": "", + "estimator": "", + "horizontal": "", + "ins_co_nm": "", + "jobdetail": "", + "kiosk_mode": "", + "laborhrs": "", + "legend": "", + "model_info": "", + "note": "", + "off": "", + "on": "", + "orientation": "", + "ownr_nm": "", + "paintpriority": "", + "partsstatus": "", + "production_note": "", + "refinishhours": "", + "scheduled_completion": "", + "selectview": "", + "stickyheader": "", + "sublets": "", + "subtotal": "", + "tall": "", + "tasks": "", + "totalhours": "", + "touchtime": "", + "vertical": "", + "viewname": "", + "wide": "" + }, + "options": { + "horizontal": "", + "large": "", + "medium": "", + "small": "", + "vertical": "" + }, + "settings": { + "board_settings": "", + "filters": { + "md_estimators": "", + "md_ins_cos": "" + }, + "filters_title": "", + "information": "", + "layout": "", + "statistics": { + "jobs_in_production": "", + "tasks_in_production": "", + "tasks_in_view": "", + "tasks_on_board": "", + "total_amount_in_production": "", + "total_amount_in_view": "", + "total_amount_on_board": "", + "total_hours_in_production": "", + "total_hours_in_view": "", + "total_hours_on_board": "", + "total_jobs_in_view": "", + "total_jobs_on_board": "", + "total_lab_in_production": "", + "total_lab_in_view": "", + "total_lab_on_board": "", + "total_lar_in_production": "", + "total_lar_in_view": "", + "total_lar_on_board": "" + }, + "statistics_title": "" + }, + "statistics": { + "currency_symbol": "", + "hours": "", + "jobs": "", + "jobs_in_production": "", + "tasks": "", + "tasks_in_production": "", + "tasks_in_view": "", + "tasks_on_board": "", + "total_amount_in_production": "", + "total_amount_in_view": "", + "total_amount_on_board": "", + "total_hours_in_production": "", + "total_hours_in_view": "", + "total_hours_on_board": "", + "total_jobs_in_view": "", + "total_jobs_on_board": "", + "total_lab_in_production": "", + "total_lab_in_view": "", + "total_lab_on_board": "", + "total_lar_in_production": "", + "total_lar_in_view": "", + "total_lar_on_board": "" + }, + "successes": { + "removed": "" + } + }, + "profile": { + "errors": { + "state": "Erreur lors de la lecture de l'état de la page. Rafraichissez, s'il vous plait." + }, + "labels": { + "activeshop": "" + }, + "successes": { + "updated": "" + } + }, + "reportcenter": { + "actions": { + "generate": "" + }, + "labels": { + "advanced_filters": "", + "advanced_filters_false": "", + "advanced_filters_filter_field": "", + "advanced_filters_filter_operator": "", + "advanced_filters_filter_value": "", + "advanced_filters_filters": "", + "advanced_filters_hide": "", + "advanced_filters_show": "", + "advanced_filters_sorter_direction": "", + "advanced_filters_sorter_field": "", + "advanced_filters_sorters": "", + "advanced_filters_true": "", + "dates": "", + "employee": "", + "filterson": "", + "generateasemail": "", + "groups": { + "customers": "", + "jobs": "", + "payroll": "", + "purchases": "", + "sales": "" + }, + "key": "", + "objects": { + "appointments": "", + "bills": "", + "csi": "", + "exportlogs": "", + "jobs": "", + "parts_orders": "", + "payments": "", + "scoreboard": "", + "tasks": "", + "timetickets": "" + }, + "vendor": "" + }, + "templates": { + "adp_payroll_flat": "", + "adp_payroll_straight": "", + "anticipated_revenue": "", + "ar_aging": "", + "attendance_detail": "", + "attendance_employee": "", + "attendance_summary": "", + "committed_timetickets": "", + "committed_timetickets_employee": "", + "committed_timetickets_summary": "", + "credits_not_received_date": "", + "credits_not_received_date_vendorid": "", + "csi": "", + "customer_list": "", + "cycle_time_analysis": "", + "estimates_written_converted": "", + "estimator_detail": "", + "estimator_summary": "", + "export_payables": "", + "export_payments": "", + "export_receivables": "", + "exported_gsr_by_ro": "", + "exported_gsr_by_ro_labor": "", + "gsr_by_atp": "", + "gsr_by_ats": "", + "gsr_by_category": "", + "gsr_by_csr": "", + "gsr_by_delivery_date": "", + "gsr_by_estimator": "", + "gsr_by_exported_date": "", + "gsr_by_ins_co": "", + "gsr_by_make": "", + "gsr_by_referral": "", + "gsr_by_ro": "", + "gsr_labor_only": "", + "hours_sold_detail_closed": "", + "hours_sold_detail_closed_csr": "", + "hours_sold_detail_closed_estimator": "", + "hours_sold_detail_closed_ins_co": "", + "hours_sold_detail_closed_status": "", + "hours_sold_detail_open": "", + "hours_sold_detail_open_csr": "", + "hours_sold_detail_open_estimator": "", + "hours_sold_detail_open_ins_co": "", + "hours_sold_detail_open_status": "", + "hours_sold_summary_closed": "", + "hours_sold_summary_closed_csr": "", + "hours_sold_summary_closed_estimator": "", + "hours_sold_summary_closed_ins_co": "", + "hours_sold_summary_closed_status": "", + "hours_sold_summary_open": "", + "hours_sold_summary_open_csr": "", + "hours_sold_summary_open_estimator": "", + "hours_sold_summary_open_ins_co": "", + "hours_sold_summary_open_status": "", + "job_costing_ro_csr": "", + "job_costing_ro_date_detail": "", + "job_costing_ro_date_summary": "", + "job_costing_ro_estimator": "", + "job_costing_ro_ins_co": "", + "job_lifecycle_date_detail": "", + "job_lifecycle_date_summary": "", + "jobs_completed_not_invoiced": "", + "jobs_invoiced_not_exported": "", + "jobs_reconcile": "", + "jobs_scheduled_completion": "", + "lag_time": "", + "load_level": "", + "lost_sales": "", + "open_orders": "", + "open_orders_csr": "", + "open_orders_estimator": "", + "open_orders_excel": "", + "open_orders_ins_co": "", + "open_orders_referral": "", + "open_orders_specific_csr": "", + "open_orders_status": "", + "parts_backorder": "", + "parts_not_recieved": "", + "parts_not_recieved_vendor": "", + "parts_received_not_scheduled": "", + "payments_by_date": "", + "payments_by_date_payment": "", + "payments_by_date_type": "", + "production_by_category": "", + "production_by_category_one": "", + "production_by_csr": "", + "production_by_last_name": "", + "production_by_repair_status": "", + "production_by_repair_status_one": "", + "production_by_ro": "", + "production_by_target_date": "", + "production_by_technician": "", + "production_by_technician_one": "", + "production_not_production_status": "", + "production_over_time": "", + "psr_by_make": "", + "purchase_return_ratio_excel": "", + "purchase_return_ratio_grouped_by_vendor_detail": "", + "purchase_return_ratio_grouped_by_vendor_summary": "", + "purchases_by_cost_center_detail": "", + "purchases_by_cost_center_summary": "", + "purchases_by_date_range_detail": "", + "purchases_by_date_range_summary": "", + "purchases_by_ro_detail_date": "", + "purchases_by_ro_summary_date": "", + "purchases_by_vendor_detailed_date_range": "", + "purchases_by_vendor_summary_date_range": "", + "purchases_grouped_by_vendor_detailed": "", + "purchases_grouped_by_vendor_summary": "", + "returns_grouped_by_vendor_detailed": "", + "returns_grouped_by_vendor_summary": "", + "schedule": "", + "scheduled_parts_list": "", + "scoreboard_detail": "", + "scoreboard_summary": "", + "supplement_ratio_ins_co": "", + "tasks_date": "", + "tasks_date_employee": "", + "thank_you_date": "", + "timetickets": "", + "timetickets_employee": "", + "timetickets_summary": "", + "total_loss_jobs": "", + "unclaimed_hrs": "", + "void_ros": "", + "work_in_progress_committed_labour": "", + "work_in_progress_jobs": "", + "work_in_progress_labour": "", + "work_in_progress_payables": "" + } + }, + "schedule": { + "labels": { + "atssummary": "", + "employeevacation": "", + "estimators": "", + "ins_co_nm_filter": "", + "intake": "", + "manual": "", + "manualevent": "" + } + }, + "scoreboard": { + "actions": { + "edit": "" + }, + "errors": { + "adding": "", + "removing": "", + "updating": "" + }, + "fields": { + "bodyhrs": "", + "date": "", + "painthrs": "" + }, + "labels": { + "allemployeetimetickets": "", + "asoftodaytarget": "", + "body": "", + "bodyabbrev": "", + "bodycharttitle": "", + "calendarperiod": "", + "combinedcharttitle": "", + "dailyactual": "", + "dailytarget": "", + "efficiencyoverperiod": "", + "entries": "", + "jobs": "", + "jobscompletednotinvoiced": "", + "lastmonth": "", + "lastweek": "", + "monthlytarget": "", + "priorweek": "", + "productivestatistics": "", + "productivetimeticketsoverdate": "", + "refinish": "", + "refinishabbrev": "", + "refinishcharttitle": "", + "targets": "", + "thismonth": "", + "thisweek": "", + "timetickets": "", + "timeticketsemployee": "", + "todateactual": "", + "total": "", + "totalhrs": "", + "totaloverperiod": "", + "weeklyactual": "", + "weeklytarget": "", + "workingdays": "" + }, + "successes": { + "added": "", + "removed": "", + "updated": "" + } + }, + "tasks": { + "actions": { + "edit": "", + "new": "" + }, + "buttons": { + "allTasks": "", + "complete": "", + "create": "", + "delete": "", + "edit": "", + "myTasks": "", + "refresh": "" + }, + "date_presets": { + "completion": "", + "day": "", + "days": "", + "delivery": "", + "next_week": "", + "one_month": "", + "three_months": "", + "three_weeks": "", + "today": "", + "tomorrow": "", + "two_weeks": "" + }, + "failures": { + "completed": "", + "created": "", + "deleted": "", + "updated": "" + }, + "fields": { + "actions": "", + "assigned_to": "", + "bill": "", + "billid": "", + "completed": "", + "created_at": "", + "created_by": "", + "description": "", + "due_date": "", + "job": { + "ro_number": "" + }, + "jobid": "", + "jobline": "", + "joblineid": "", + "parts_order": "", + "partsorderid": "", + "priorities": { + "high": "", + "low": "", + "medium": "" + }, + "priority": "", + "related_items": "", + "remind_at": "", + "title": "" + }, + "placeholders": { + "assigned_to": "", + "billid": "", + "description": "", + "jobid": "", + "joblineid": "", + "partsorderid": "" + }, + "successes": { + "completed": "", + "created": "", + "deleted": "", + "updated": "" + }, + "titles": { + "all_tasks": "", + "completed": "", + "deleted": "", + "job_tasks": "", + "mine": "", + "my_tasks": "" + }, + "validation": { + "due_at_error_message": "", + "remind_at_error_message": "" + } + }, + "tech": { + "fields": { + "employeeid": "", + "pin": "" + }, + "labels": { + "loggedin": "", + "notloggedin": "" + } + }, + "templates": { + "errors": { + "updating": "" + }, + "successes": { + "updated": "" + } + }, + "timetickets": { + "actions": { + "claimtasks": "", + "clockin": "", + "clockout": "", + "commit": "", + "commitone": "", + "enter": "", + "payall": "", + "printemployee": "", + "uncommit": "" + }, + "errors": { + "clockingin": "", + "clockingout": "", + "creating": "", + "deleting": "", + "noemployeeforuser": "", + "noemployeeforuser_sub": "", + "payall": "", + "shiftalreadyclockedon": "" + }, + "fields": { + "actualhrs": "", + "ciecacode": "", + "clockhours": "", + "clockoff": "", + "clockon": "", + "committed": "", + "committed_at": "", + "cost_center": "", + "created_by": "", + "date": "", + "efficiency": "", + "employee": "", + "employee_team": "", + "flat_rate": "", + "memo": "", + "productivehrs": "", + "ro_number": "", + "task_name": "" + }, + "labels": { + "alreadyclockedon": "", + "ambreak": "", + "amshift": "", + "claimtaskpreview": "", + "clockhours": "", + "clockintojob": "", + "deleteconfirm": "", + "edit": "", + "efficiency": "", + "flat_rate": "", + "jobhours": "", + "lunch": "", + "new": "", + "payrollclaimedtasks": "", + "pmbreak": "", + "pmshift": "", + "shift": "", + "shiftalreadyclockedon": "", + "straight_time": "", + "task": "", + "timetickets": "", + "unassigned": "", + "zeroactualnegativeprod": "" + }, + "successes": { + "clockedin": "", + "clockedout": "", + "committed": "", + "created": "", + "deleted": "", + "payall": "" + }, + "validation": { + "clockoffmustbeafterclockon": "", + "clockoffwithoutclockon": "", + "hoursenteredmorethanavailable": "", + "unassignedlines": "" + } + }, + "titles": { + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "all_tasks": "", + "app": "", + "bc": { + "accounting-payables": "", + "accounting-payments": "", + "accounting-receivables": "", + "all_tasks": "", + "availablejobs": "", + "bills-list": "", + "contracts": "", + "contracts-create": "", + "contracts-detail": "", + "courtesycars": "", + "courtesycars-detail": "", + "courtesycars-new": "", + "dashboard": "", + "dms": "", + "export-logs": "", + "inventory": "", + "jobs": "", + "jobs-active": "", + "jobs-admin": "", + "jobs-all": "", + "jobs-checklist": "", + "jobs-close": "", + "jobs-deliver": "", + "jobs-detail": "", + "jobs-intake": "", + "jobs-new": "", + "jobs-ready": "", + "my_tasks": "", + "owner-detail": "", + "owners": "", + "parts-queue": "", + "payments-all": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "profile": "", + "schedule": "", + "scoreboard": "", + "shop": "", + "shop-csi": "", + "shop-templates": "", + "shop-vendors": "", + "tasks": "", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicle-details": "", + "vehicles": "" + }, + "bills-list": "", + "contracts": "", + "contracts-create": "", + "contracts-detail": "", + "courtesycars": "", + "courtesycars-create": "", + "courtesycars-detail": "", + "dashboard": "", + "dms": "", + "export-logs": "", + "imexonline": "", + "inventory": "", + "jobs": "Tous les emplois | {{app}}", + "jobs-admin": "", + "jobs-all": "", + "jobs-checklist": "", + "jobs-close": "", + "jobs-create": "", + "jobs-deliver": "", + "jobs-intake": "", + "jobsavailable": "Emplois disponibles | {{app}}", + "jobsdetail": "Travail {{ro_number}} | {{app}}", + "jobsdocuments": "Documents de travail {{ro_number}} | {{app}}", + "manageroot": "Accueil | {{app}}", + "my_tasks": "", + "owners": "Tous les propriétaires | {{app}}", + "owners-detail": "", + "parts-queue": "", + "payments-all": "", + "phonebook": "", + "productionboard": "", + "productionlist": "", + "profile": "Mon profil | {{app}}", + "readyjobs": "", + "resetpassword": "", + "resetpasswordvalidate": "", + "romeonline": "", + "schedule": "Horaire | {{app}}", + "scoreboard": "", + "shop": "Mon magasin | {{app}}", + "shop-csi": "", + "shop-templates": "", + "shop_vendors": "Vendeurs | {{app}}", + "tasks": "", + "techconsole": "{{app}}", + "techjobclock": "{{app}}", + "techjoblookup": "{{app}}", + "techshiftclock": "{{app}}", + "temporarydocs": "", + "timetickets": "", + "ttapprovals": "", + "vehicledetail": "Détails du véhicule {{vehicle} | {{app}}", + "vehicles": "Tous les véhicules | {{app}}" + }, + "trello": { + "labels": { + "add_card": "", + "add_lane": "", + "cancel": "", + "delete_lane": "", + "description": "", + "label": "", + "lane_actions": "", + "title": "" + } + }, + "tt_approvals": { + "actions": { + "approveselected": "" + }, + "labels": { + "approval_queue_in_use": "", + "calculate": "" + } + }, + "upsell": { + "cta": { + "learnmore": "" + }, + "messages": { + "accounting": { + "payables": { + "subtitle": "", + "title": "" + }, + "payments": { + "subtitle": "", + "title": "" + }, + "receivables": { + "subtitle": "", + "title": "" + } + }, + "audit": { + "general": { + "subtitle": "", + "title": "" + } + }, + "bills": { + "autoreconcile": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + } + }, + "checklist": { + "general": { + "subtitle": "", + "title": "" + } + }, + "courtesycars": { + "general": { + "subtitle": "", + "title": "" + } + }, + "csi": { + "general": { + "subtitle": "", + "title": "" + } + }, + "dashboard": { + "general": { + "subtitle": "", + "title": "" + } + }, + "lifecycle": { + "general": { + "subtitle": "", + "title": "" + } + }, + "media": { + "general": { + "subtitle": "", + "title": "" + }, + "mobile": { + "subtitle": "", + "title": "" + } + }, + "payments": { + "general": { + "subtitle": "", + "title": "" + } + }, + "scoreboard": { + "general": { + "subtitle": "", + "title": "" + } + }, + "smartscheduling": { + "datepicker": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + }, + "hrsdelta": { + "subtitle": "", + "title": "" + } + }, + "techconsole": { + "general": { + "subtitle": "", + "title": "" + } + }, + "timetickets": { + "allocations": { + "subtitle": "", + "title": "" + }, + "general": { + "subtitle": "", + "title": "" + } + }, + "visualboard": { + "general": { + "subtitle": "", + "title": "" + } + } + } + }, + "user": { + "actions": { + "changepassword": "", + "signout": "Déconnexion", + "updateprofile": "Mettre à jour le profil" + }, + "errors": { + "updating": "" + }, + "fields": { + "authlevel": "", + "displayname": "Afficher un nom", + "email": "", + "photourl": "URL de l'avatar" + }, + "labels": { + "actions": "", + "changepassword": "", + "profileinfo": "" + }, + "successess": { + "passwordchanged": "" + } + }, + "users": { + "errors": { + "signinerror": { + "auth/user-disabled": "", + "auth/user-not-found": "", + "auth/wrong-password": "" + } + } + }, + "vehicles": { + "errors": { + "deleting": "", + "noaccess": "Le véhicule n'existe pas ou vous n'y avez pas accès.", + "selectexistingornew": "", + "validation": "Veuillez vous assurer que tous les champs sont correctement entrés.", + "validationtitle": "Erreur de validation" + }, + "fields": { + "description": "Description du véhicule", + "notes": "", + "plate_no": "Plaque d'immatriculation", + "plate_st": "Juridiction de la plaque", + "trim_color": "Couleur de garniture", + "v_bstyle": "Style corporel", + "v_color": "Couleur", + "v_cond": "Etat", + "v_engine": "moteur", + "v_make_desc": "Faire", + "v_makecode": "Faire du code", + "v_mldgcode": "Code de moulage", + "v_model_desc": "Modèle", + "v_model_yr": "année", + "v_options": "Les options", + "v_paint_codes": "Codes de peinture", + "v_prod_dt": "Date de production", + "v_stage": "Étape", + "v_tone": "ton", + "v_trimcode": "Code de coupe", + "v_type": "Type", + "v_vin": "V.I.N." + }, + "forms": { + "detail": "", + "misc": "", + "registration": "" + }, + "labels": { + "deleteconfirm": "", + "fromvehicle": "", + "novehinfo": "", + "relatedjobs": "", + "updatevehicle": "" + }, + "successes": { + "delete": "", + "save": "Le véhicule a été enregistré avec succès." + } + }, + "vendors": { + "actions": { + "addtophonebook": "", + "new": "Nouveau vendeur", + "newpreferredmake": "" + }, + "errors": { + "deleting": "Erreur rencontrée lors de la suppression du fournisseur.", + "saving": "Erreur rencontrée lors de l'enregistrement du fournisseur." + }, + "fields": { + "active": "", + "am": "", + "city": "Ville", + "cost_center": "Centre de coûts", + "country": "Pays", + "discount": "Remise %", + "display_name": "Afficher un nom", + "dmsid": "", + "due_date": "Date limite de paiement", + "email": "Email du contact", + "favorite": "Préféré?", + "lkq": "", + "make": "", + "name": "Nom du vendeur", + "oem": "", + "phone": "", + "prompt_discount": "Remise rapide%", + "state": "Etat / Province", + "street1": "rue", + "street2": "Adresse 2 ", + "taxid": "Identifiant de taxe", + "terms": "Modalités de paiement", + "zip": "Zip / code postal" + }, + "labels": { + "noneselected": "Aucun fournisseur n'est sélectionné.", + "preferredmakes": "", + "search": "Tapez le nom d'un vendeur" + }, + "successes": { + "deleted": "Le fournisseur a bien été supprimé.", + "saved": "Le fournisseur a bien enregistré." + }, + "validation": { + "unique_vendor_name": "" + } + } + } } diff --git a/client/src/translations/i18n.js b/client/src/translations/i18n.js index b26f9c30d..db77ab567 100644 --- a/client/src/translations/i18n.js +++ b/client/src/translations/i18n.js @@ -18,6 +18,7 @@ i18n .use(initReactI18next) .init( { + //ns: ["translation"], resources, //lng: "en", detection: {}, diff --git a/client/src/utils/CleanAxios.js b/client/src/utils/CleanAxios.js index cfdb2134e..cf4737482 100644 --- a/client/src/utils/CleanAxios.js +++ b/client/src/utils/CleanAxios.js @@ -1,6 +1,5 @@ import axios from "axios"; import { auth } from "../firebase/firebase.utils"; -import InstanceRenderManager from "./instanceRenderMgr"; axios.defaults.baseURL = import.meta.env.DEV ? "/api/" @@ -13,15 +12,6 @@ export const axiosAuthInterceptorId = axios.interceptors.request.use( if (token) { config.headers.Authorization = `Bearer ${token}`; } - InstanceRenderManager({ - executeFunction: true, - args: [], - promanager: () => { - if (!config.url.startsWith("http://localhost:1337")) { - config.headers["Convenient-Company"] = "promanager"; - } - } - }); } return config; diff --git a/client/src/utils/RegisterSw.js b/client/src/utils/RegisterSw.js index 3f0c5712c..ad701bcc4 100644 --- a/client/src/utils/RegisterSw.js +++ b/client/src/utils/RegisterSw.js @@ -49,15 +49,13 @@ const onServiceWorkerUpdate = (registration) => { message: i18n.t("general.messages.newversiontitle", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }), description: i18n.t("general.messages.newversionmessage", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }), duration: 0, diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js index 1deb8e76d..fd6eb6e44 100644 --- a/client/src/utils/RenderTemplate.js +++ b/client/src/utils/RenderTemplate.js @@ -72,8 +72,8 @@ export default async function RenderTemplate( ...contextData, ...templateObject.variables, ...templateObject.context, - headerpath: `/${InstanceRenderManager({ imex: bodyshop.imexshopid, rome: bodyshop.imexshopid, promanager: "GENERIC" })}/header.html`, - footerpath: `/${InstanceRenderManager({ imex: bodyshop.imexshopid, rome: bodyshop.imexshopid, promanager: "GENERIC" })}/footer.html`, + headerpath: `/${InstanceRenderManager({ imex: bodyshop.imexshopid, rome: bodyshop.imexshopid })}/header.html`, + footerpath: `/${InstanceRenderManager({ imex: bodyshop.imexshopid, rome: bodyshop.imexshopid })}/footer.html`, bodyshop: bodyshop, filters: templateObject?.filters, sorters: templateObject?.sorters, diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js index 9e40624c0..80edfdb8d 100644 --- a/client/src/utils/TemplateConstants.js +++ b/client/src/utils/TemplateConstants.js @@ -5,13 +5,11 @@ import InstanceRenderManager from "./instanceRenderMgr"; export const EmailSettings = { fromNameDefault: InstanceRenderManager({ imex: "ImEX Online", - rome: "Rome Online", - promanager: "ProManager" + rome: "Rome Online" }), fromAddress: InstanceRenderManager({ imex: "noreply@imex.online", - rome: "noreply@romeonline.io", - promanager: "noreply@promanager.web-est.com" + rome: "noreply@romeonline.io" }) }; diff --git a/client/src/utils/instanceRenderMgr.js b/client/src/utils/instanceRenderMgr.js index cb436dd0d..4ee0f204e 100644 --- a/client/src/utils/instanceRenderMgr.js +++ b/client/src/utils/instanceRenderMgr.js @@ -12,6 +12,11 @@ export default function InstanceRenderManager({ executeFunction, rome, promanager, imex, debug, instance, args }) { let propToReturn = null; + //TODO: Remove after debugging. + if (promanager) { + console.trace("ProManager Prop was used"); + } + switch (instance || import.meta.env.VITE_APP_INSTANCE) { case "IMEX": propToReturn = imex; diff --git a/client/vite.config.js b/client/vite.config.js index 7bb200e23..09fd1088c 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -32,13 +32,13 @@ export default defineConfig({ instance: process.env.VITE_APP_INSTANCE, imex: "ImEX Online", rome: "Rome Online", - promanager: "ProManager" + }), name: InstanceRenderManager({ instance: process.env.VITE_APP_INSTANCE, imex: "ImEX Online", rome: "Rome Online", - promanager: "ProManager" + }), description: "The ultimate bodyshop management system.", icons: [ @@ -47,7 +47,6 @@ export default defineConfig({ instance: process.env.VITE_APP_INSTANCE, imex: "favicon.png", rome: "ro-favicon.png", - promanager: "/pm/pm-favicon.ico" }), sizes: "64x64 32x32 24x24 16x16", type: "image/x-icon" @@ -57,7 +56,6 @@ export default defineConfig({ instance: process.env.VITE_APP_INSTANCE, imex: "logo192.png", rome: "logo192.png", - promanager: "/pm/pm-icon-192.png" }), type: "image/png", sizes: "192x192" @@ -67,7 +65,6 @@ export default defineConfig({ instance: process.env.VITE_APP_INSTANCE, imex: "logo512.png", rome: "ro-favicon.png", - promanager: "/pm/pm-icon-512.png" }), type: "image/png", sizes: "512x512" @@ -77,7 +74,6 @@ export default defineConfig({ instance: process.env.VITE_APP_INSTANCE, imex: "#1890ff", rome: "#fff", - promanager: "#1d69a6" }), background_color: "#fff", gcm_sender_id: "103953800507" diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..bdafeda31 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,10 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; + + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + {files: ["**/*.js"], languageOptions: {sourceType: "commonjs"}}, + {languageOptions: { globals: globals.node }}, + pluginJs.configs.recommended, +]; diff --git a/package-lock.json b/package-lock.json index 43476030d..4705bef33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,8 +67,12 @@ "xmlbuilder2": "^3.1.1" }, "devDependencies": { + "@eslint/js": "^9.15.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "concurrently": "^8.2.2", + "eslint": "^9.15.0", + "eslint-plugin-react": "^7.37.2", + "globals": "^15.12.0", "p-limit": "^3.1.0", "prettier": "^3.3.3", "source-map-explorer": "^2.5.2" @@ -159,6 +163,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "^5.2.0", "@aws-crypto/supports-web-crypto": "^5.2.0", @@ -173,6 +178,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" }, @@ -184,6 +190,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" @@ -196,6 +203,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" @@ -208,6 +216,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", @@ -221,6 +230,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" } @@ -229,6 +239,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", "@smithy/util-utf8": "^2.0.0", @@ -239,6 +250,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" }, @@ -250,6 +262,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" @@ -262,6 +275,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" @@ -271,53 +285,53 @@ } }, "node_modules/@aws-sdk/client-cloudwatch-logs": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.693.0.tgz", - "integrity": "sha512-ZJIzTqRSQmvBjGSYeE38mUO0Y70ioBAbokrIqQZdY7N+hQNU6xPWgZBURWdkC+yLfjCpbN9mSR4MPc/w6Tu+LQ==", + "version": "3.703.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudwatch-logs/-/client-cloudwatch-logs-3.703.0.tgz", + "integrity": "sha512-KkLMwrNhkLZr3OCRWakJY16OF8pUZCoexxZkWzHfR/Pw3WBcDtBMEiEO13P6oHlGAn1VvIDxxMBSxeg/89xyJA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/eventstream-serde-browser": "^3.0.12", - "@smithy/eventstream-serde-config-resolver": "^3.0.9", - "@smithy/eventstream-serde-node": "^3.0.11", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/client-sts": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/eventstream-serde-browser": "^3.0.13", + "@smithy/eventstream-serde-config-resolver": "^3.0.10", + "@smithy/eventstream-serde-node": "^3.0.12", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "@types/uuid": "^9.0.1", "tslib": "^2.6.2", @@ -341,52 +355,52 @@ } }, "node_modules/@aws-sdk/client-elasticache": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.693.0.tgz", - "integrity": "sha512-ofdENKhzBcDjIRS6i7CDwvQetqTRn9v8BFFo1uqrmJVs5qLW6wuKDL7oI4ESXV2I1t9jJsobboKBj9naMxCciQ==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-elasticache/-/client-elasticache-3.699.0.tgz", + "integrity": "sha512-KaQEnSmbZe2zK608cJYSspOTm0OzCtRXdjaMu85ehVBgGwqcB/clq9jTK2hlEKRipmK1cbJ27283kiT6EJ+aow==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/client-sts": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.8", + "@smithy/util-waiter": "^3.1.9", "tslib": "^2.6.2" }, "engines": { @@ -394,68 +408,68 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.693.0.tgz", - "integrity": "sha512-vgGI2e0Q6pzyhqfrSysi+sk/i+Nl+lMon67oqj/57RcCw9daL1/inpS+ADuwHpiPWkrg+U0bOXnmHjkLeTslJg==", + "version": "3.705.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.705.0.tgz", + "integrity": "sha512-Fm0Cbc4zr0yG0DnNycz7ywlL5tQFdLSb7xCIPfzrxJb3YQiTXWxH5eu61SSsP/Z6RBNRolmRPvst/iNgX0fWvA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-bucket-endpoint": "3.693.0", - "@aws-sdk/middleware-expect-continue": "3.693.0", - "@aws-sdk/middleware-flexible-checksums": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-location-constraint": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-sdk-s3": "3.693.0", - "@aws-sdk/middleware-ssec": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/signature-v4-multi-region": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@aws-sdk/xml-builder": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/eventstream-serde-browser": "^3.0.12", - "@smithy/eventstream-serde-config-resolver": "^3.0.9", - "@smithy/eventstream-serde-node": "^3.0.11", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-blob-browser": "^3.1.8", - "@smithy/hash-node": "^3.0.9", - "@smithy/hash-stream-node": "^3.1.8", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/md5-js": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/client-sts": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-bucket-endpoint": "3.696.0", + "@aws-sdk/middleware-expect-continue": "3.696.0", + "@aws-sdk/middleware-flexible-checksums": "3.701.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-location-constraint": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-sdk-s3": "3.696.0", + "@aws-sdk/middleware-ssec": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/signature-v4-multi-region": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@aws-sdk/xml-builder": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/eventstream-serde-browser": "^3.0.13", + "@smithy/eventstream-serde-config-resolver": "^3.0.10", + "@smithy/eventstream-serde-node": "^3.0.12", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-blob-browser": "^3.1.9", + "@smithy/hash-node": "^3.0.10", + "@smithy/hash-stream-node": "^3.1.9", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/md5-js": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.8", + "@smithy/util-waiter": "^3.1.9", "tslib": "^2.6.2" }, "engines": { @@ -463,50 +477,50 @@ } }, "node_modules/@aws-sdk/client-secrets-manager": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.693.0.tgz", - "integrity": "sha512-PiXkl64LYhwZQ2zPQhxwpnLwGS7Lw8asFCj29SxEaYRnYra3ajE5d+Yvv68qC+diUNkeZh6k6zn7nEOZ4rWEwA==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.699.0.tgz", + "integrity": "sha512-DWBOvozaWG/qZGuzPVs2wdguprkX7FSsjoH0bSPJ0oirGFEBq5d33HSJ3PmN8HzaLknWS+s5EdDLoB6NYzy7og==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/client-sts": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "@types/uuid": "^9.0.1", "tslib": "^2.6.2", @@ -524,57 +538,58 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/@aws-sdk/client-ses": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.693.0.tgz", - "integrity": "sha512-5/bq6eqM/TEoMxzw2R1iD9cuOp5IABsc4wnabN6QwuOqXM0NVC0VopwWh+QKkUU+uzoQV4imLK8AlJ3rLSThfg==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.699.0.tgz", + "integrity": "sha512-prpkr2jnhD2KsinQMBdX2wvSpNxFm9d02EUR4L78yxjg2oppXmu/cBjWdlVrSkqqE2EYfcHo0JV2WmRZZC1VyQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/client-sts": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/client-sts": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.8", + "@smithy/util-waiter": "^3.1.9", "tslib": "^2.6.2" }, "engines": { @@ -582,47 +597,47 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.693.0.tgz", - "integrity": "sha512-QEynrBC26x6TG9ZMzApR/kZ3lmt4lEIs2D+cHuDxt6fDGzahBUsQFBwJqhizzsM97JJI5YvmJhmihoYjdSSaXA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.696.0.tgz", + "integrity": "sha512-q5TTkd08JS0DOkHfUL853tuArf7NrPeqoS5UOvqJho8ibV9Ak/a/HO4kNvy9Nj3cib/toHYHsQIEtecUPSUUrQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -631,48 +646,48 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.693.0.tgz", - "integrity": "sha512-UEDbYlYtK/e86OOMyFR4zEPyenIxDzO2DRdz3fwVW7RzZ94wfmSwBh/8skzPTuY1G7sI064cjHW0b0QG01Sdtg==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.699.0.tgz", + "integrity": "sha512-u8a1GorY5D1l+4FQAf4XBUC1T10/t7neuwT21r0ymrtMFSK2a9QqVHKMoLkvavAwyhJnARSBM9/UQC797PFOFw==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -680,53 +695,53 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.699.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.693.0.tgz", - "integrity": "sha512-4S2y7VEtvdnjJX4JPl4kDQlslxXEZFnC50/UXVUYSt/AMc5A/GgspFNA5FVz4E3Gwpfobbf23hR2NBF8AGvYoQ==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.699.0.tgz", + "integrity": "sha512-++lsn4x2YXsZPIzFVwv3fSUVM55ZT0WRFmPeNilYIhZClxHLmVAWKH4I55cY9ry60/aTKYjzOXkWwyBKGsGvQg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-node": "3.693.0", - "@aws-sdk/middleware-host-header": "3.693.0", - "@aws-sdk/middleware-logger": "3.693.0", - "@aws-sdk/middleware-recursion-detection": "3.693.0", - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/region-config-resolver": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@aws-sdk/util-user-agent-browser": "3.693.0", - "@aws-sdk/util-user-agent-node": "3.693.0", - "@smithy/config-resolver": "^3.0.11", - "@smithy/core": "^2.5.2", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/hash-node": "^3.0.9", - "@smithy/invalid-dependency": "^3.0.9", - "@smithy/middleware-content-length": "^3.0.11", - "@smithy/middleware-endpoint": "^3.2.2", - "@smithy/middleware-retry": "^3.0.26", - "@smithy/middleware-serde": "^3.0.9", - "@smithy/middleware-stack": "^3.0.9", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/node-http-handler": "^3.3.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/url-parser": "^3.0.9", + "@aws-sdk/client-sso-oidc": "3.699.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-node": "3.699.0", + "@aws-sdk/middleware-host-header": "3.696.0", + "@aws-sdk/middleware-logger": "3.696.0", + "@aws-sdk/middleware-recursion-detection": "3.696.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/region-config-resolver": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@aws-sdk/util-user-agent-browser": "3.696.0", + "@aws-sdk/util-user-agent-node": "3.696.0", + "@smithy/config-resolver": "^3.0.12", + "@smithy/core": "^2.5.3", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/hash-node": "^3.0.10", + "@smithy/invalid-dependency": "^3.0.10", + "@smithy/middleware-content-length": "^3.0.12", + "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/middleware-retry": "^3.0.27", + "@smithy/middleware-serde": "^3.0.10", + "@smithy/middleware-stack": "^3.0.10", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/node-http-handler": "^3.3.1", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/url-parser": "^3.0.10", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.26", - "@smithy/util-defaults-mode-node": "^3.0.26", - "@smithy/util-endpoints": "^2.1.5", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-retry": "^3.0.9", + "@smithy/util-defaults-mode-browser": "^3.0.27", + "@smithy/util-defaults-mode-node": "^3.0.27", + "@smithy/util-endpoints": "^2.1.6", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-retry": "^3.0.10", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -735,20 +750,20 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.693.0.tgz", - "integrity": "sha512-v6Z/kWmLFqRLDPEwl9hJGhtTgIFHjZugSfF1Yqffdxf4n1AWgtHS7qSegakuMyN5pP4K2tvUD8qHJ+gGe2Bw2A==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.696.0.tgz", + "integrity": "sha512-3c9III1k03DgvRZWg8vhVmfIXPG6hAciN9MzQTzqGngzWAELZF/WONRTRQuDFixVtarQatmLHYVw/atGeA2Byw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/core": "^2.5.2", - "@smithy/node-config-provider": "^3.1.10", + "@aws-sdk/types": "3.696.0", + "@smithy/core": "^2.5.3", + "@smithy/node-config-provider": "^3.1.11", "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.6", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/util-middleware": "^3.0.9", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/util-middleware": "^3.0.10", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -757,15 +772,15 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.693.0.tgz", - "integrity": "sha512-hMUZaRSF7+iBKZfBHNLihFs9zvpM1CB8MBOTnTp5NGCVkRYF3SB2LH+Kcippe0ats4qCyB1eEoyQX99rERp2iQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.696.0.tgz", + "integrity": "sha512-T9iMFnJL7YTlESLpVFT3fg1Lkb1lD+oiaIC8KMpepb01gDUBIpj9+Y+pA/cgRWW0yRxmkDXNazAE2qQTVFGJzA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -773,20 +788,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.693.0.tgz", - "integrity": "sha512-sL8MvwNJU7ZpD7/d2VVb3by1GknIJUxzTIgYtVkDVA/ojo+KRQSSHxcj0EWWXF5DTSh2Tm+LrEug3y1ZyKHsDA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.696.0.tgz", + "integrity": "sha512-GV6EbvPi2eq1+WgY/o2RFA3P7HGmnkIzCNmhwtALFlqMroLYWKE7PSeHw66Uh1dFQeVESn0/+hiUNhu1mB0emA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/fetch-http-handler": "^4.1.0", - "@smithy/node-http-handler": "^3.3.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/fetch-http-handler": "^4.1.1", + "@smithy/node-http-handler": "^3.3.1", "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.6", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", - "@smithy/util-stream": "^3.3.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", + "@smithy/util-stream": "^3.3.1", "tslib": "^2.6.2" }, "engines": { @@ -794,48 +809,48 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.693.0.tgz", - "integrity": "sha512-kvaa4mXhCCOuW7UQnBhYqYfgWmwy7WSBSDClutwSLPZvgrhYj2l16SD2lN4IfYdxARYMJJ1lFYp3/jJG/9Yk4Q==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.699.0.tgz", + "integrity": "sha512-dXmCqjJnKmG37Q+nLjPVu22mNkrGHY8hYoOt3Jo9R2zr5MYV7s/NHsCHr+7E+BZ+tfZYLRPeB1wkpTeHiEcdRw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/credential-provider-env": "3.693.0", - "@aws-sdk/credential-provider-http": "3.693.0", - "@aws-sdk/credential-provider-process": "3.693.0", - "@aws-sdk/credential-provider-sso": "3.693.0", - "@aws-sdk/credential-provider-web-identity": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/credential-provider-env": "3.696.0", + "@aws-sdk/credential-provider-http": "3.696.0", + "@aws-sdk/credential-provider-process": "3.696.0", + "@aws-sdk/credential-provider-sso": "3.699.0", + "@aws-sdk/credential-provider-web-identity": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/credential-provider-imds": "^3.2.6", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.699.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.693.0.tgz", - "integrity": "sha512-42WMsBjTNnjYxYuM3qD/Nq+8b7UdMopUq5OduMDxoM3mFTV6PXMMnfI4Z1TNnR4tYRvPXAnuNltF6xmjKbSJRA==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.699.0.tgz", + "integrity": "sha512-MmEmNDo1bBtTgRmdNfdQksXu4uXe66s0p1hi1YPrn1h59Q605eq/xiWbGL6/3KdkViH6eGUuABeV2ODld86ylg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.693.0", - "@aws-sdk/credential-provider-http": "3.693.0", - "@aws-sdk/credential-provider-ini": "3.693.0", - "@aws-sdk/credential-provider-process": "3.693.0", - "@aws-sdk/credential-provider-sso": "3.693.0", - "@aws-sdk/credential-provider-web-identity": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/credential-provider-env": "3.696.0", + "@aws-sdk/credential-provider-http": "3.696.0", + "@aws-sdk/credential-provider-ini": "3.699.0", + "@aws-sdk/credential-provider-process": "3.696.0", + "@aws-sdk/credential-provider-sso": "3.699.0", + "@aws-sdk/credential-provider-web-identity": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/credential-provider-imds": "^3.2.6", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -843,16 +858,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.693.0.tgz", - "integrity": "sha512-cvxQkrTWHHjeHrPlj7EWXPnFSq8x7vMx+Zn1oTsMpCY445N9KuzjfJTkmNGwU2GT6rSZI9/0MM02aQvl5bBBTQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.696.0.tgz", + "integrity": "sha512-mL1RcFDe9sfmyU5K1nuFkO8UiJXXxLX4JO1gVaDIOvPqwStpUAwi3A1BoeZhWZZNQsiKI810RnYGo0E0WB/hUA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -860,18 +875,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.693.0.tgz", - "integrity": "sha512-479UlJxY+BFjj3pJFYUNC0DCMrykuG7wBAXfsvZqQxKUa83DnH5Q1ID/N2hZLkxjGd4ZW0AC3lTOMxFelGzzpQ==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.699.0.tgz", + "integrity": "sha512-Ekp2cZG4pl9D8+uKWm4qO1xcm8/MeiI8f+dnlZm8aQzizeC+aXYy9GyoclSf6daK8KfRPiRfM7ZHBBL5dAfdMA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.693.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/token-providers": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/client-sso": "3.696.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/token-providers": "3.699.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -879,35 +894,35 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.693.0.tgz", - "integrity": "sha512-8LB210Pr6VeCiSb2hIra+sAH4KUBLyGaN50axHtIgufVK8jbKIctTZcVY5TO9Se+1107TsruzeXS7VeqVdJfFA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.696.0.tgz", + "integrity": "sha512-XJ/CVlWChM0VCoc259vWguFUjJDn/QwDqHwbx+K9cg3v6yrqXfK5ai+p/6lx0nQpnk4JzPVeYYxWRpaTsGC9rg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.693.0" + "@aws-sdk/client-sts": "^3.696.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.693.0.tgz", - "integrity": "sha512-cPIa+lxMYiFRHtxKfNIVSFGO6LSgZCk42pu3d7KGwD6hu6vXRD5B2/DD3rPcEH1zgl2j0Kx1oGAV7SRXKHSFag==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.696.0.tgz", + "integrity": "sha512-V07jishKHUS5heRNGFpCWCSTjRJyQLynS/ncUeE8ZYtG66StOOQWftTwDfFOSoXlIqrXgb4oT9atryzXq7Z4LQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", + "@aws-sdk/types": "3.696.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -916,14 +931,14 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.693.0.tgz", - "integrity": "sha512-MuK/gsJWpHz6Tv0CqTCS+QNOxLa2RfPh1biVCu/uO3l7kA0TjQ/C+tfgKvLXeH103tuDrOVINK+bt2ENmI3SWg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.696.0.tgz", + "integrity": "sha512-vpVukqY3U2pb+ULeX0shs6L0aadNep6kKzjme/MyulPjtUDJpD3AekHsXRrCCGLmOqSKqRgQn5zhV9pQhHsb6Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -931,22 +946,22 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.693.0.tgz", - "integrity": "sha512-xkS6zjuE11ob93H9t65kHzphXcUMnN2SmIm2wycUPg+hi8Q6DJA6U2p//6oXkrr9oHy1QvwtllRd7SAd63sFKQ==", + "version": "3.701.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.701.0.tgz", + "integrity": "sha512-adNaPCyTT+CiVM0ufDiO1Fe7nlRmJdI9Hcgj0M9S6zR7Dw70Ra5z8Lslkd7syAccYvZaqxLklGjPQH/7GNxwTA==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -955,14 +970,14 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.693.0.tgz", - "integrity": "sha512-BCki6sAZ5jYwIN/t3ElCiwerHad69ipHwPsDCxJQyeiOnJ8HG+lEpnVIfrnI8A0fLQNSF3Gtx6ahfBpKiv1Oug==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.696.0.tgz", + "integrity": "sha512-zELJp9Ta2zkX7ELggMN9qMCgekqZhFC5V2rOr4hJDEb/Tte7gpfKSObAnw/3AYiVqt36sjHKfdkoTsuwGdEoDg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -970,13 +985,13 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.693.0.tgz", - "integrity": "sha512-eDAExTZ9uNIP7vs2JCVCOuWJauGueisBSn+Ovt7UvvuEUp6KOIJqn8oFxWmyUQu2GvbG4OcaTLgbqD95YHTB0Q==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.696.0.tgz", + "integrity": "sha512-FgH12OB0q+DtTrP2aiDBddDKwL4BPOrm7w3VV9BJrSdkqQCNBPz8S1lb0y5eVH4tBG+2j7gKPlOv1wde4jF/iw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -984,13 +999,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.693.0.tgz", - "integrity": "sha512-dXnXDPr+wIiJ1TLADACI1g9pkSB21KkMIko2u4CJ2JCBoxi5IqeTnVoa6YcC8GdFNVRl+PorZ3Zqfmf1EOTC6w==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.696.0.tgz", + "integrity": "sha512-KhkHt+8AjCxcR/5Zp3++YPJPpFQzxpr+jmONiT/Jw2yqnSngZ0Yspm5wGoRx2hS1HJbyZNuaOWEGuJoxLeBKfA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -998,14 +1013,14 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.693.0.tgz", - "integrity": "sha512-0LDmM+VxXp0u3rG0xQRWD/q6Ubi7G8I44tBPahevD5CaiDZTkmNTrVUf0VEJgVe0iCKBppACMBDkLB0/ETqkFw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.696.0.tgz", + "integrity": "sha512-si/maV3Z0hH7qa99f9ru2xpS5HlfSVcasRlNUXKSDm611i7jFMWwGNLUOXFAOLhXotPX5G3Z6BLwL34oDeBMug==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1013,23 +1028,23 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.693.0.tgz", - "integrity": "sha512-5A++RBjJ3guyq5pbYs+Oq5hMlA8CK2OWaHx09cxVfhHWl/RoaY8DXrft4gnhoUEBrrubyMw7r9j7RIMLvS58kg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.696.0.tgz", + "integrity": "sha512-M7fEiAiN7DBMHflzOFzh1I2MNSlLpbiH2ubs87bdRc2wZsDPSbs4l3v6h3WLhxoQK0bq6vcfroudrLBgvCuX3Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/core": "^2.5.2", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/protocol-http": "^4.1.6", + "@smithy/core": "^2.5.3", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.3", - "@smithy/types": "^3.7.0", + "@smithy/smithy-client": "^3.4.4", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.9", - "@smithy/util-stream": "^3.3.0", + "@smithy/util-middleware": "^3.0.10", + "@smithy/util-stream": "^3.3.1", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1038,13 +1053,13 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.693.0.tgz", - "integrity": "sha512-Ro5vzI7SRgEeuoMk3fKqFjGv6mG4c7VsSCDwnkiasmafQFBTPvUIpgmu2FXMHqW/OthvoiOzpSrlJ9Bwlx2f8A==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.696.0.tgz", + "integrity": "sha512-w/d6O7AOZ7Pg3w2d3BxnX5RmGNWb5X4RNxF19rJqcgu/xqxxE/QwZTNd5a7eTsqLXAUIfbbR8hh0czVfC1pJLA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1052,17 +1067,17 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.693.0.tgz", - "integrity": "sha512-/KUq/KEpFFbQmNmpp7SpAtFAdViquDfD2W0QcG07zYBfz9MwE2ig48ALynXm5sMpRmnG7sJXjdvPtTsSVPfkiw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.696.0.tgz", + "integrity": "sha512-Lvyj8CTyxrHI6GHd2YVZKIRI5Fmnugt3cpJo0VrKKEgK5zMySwEZ1n4dqPK6czYRWKd5+WnYHYAuU+Wdk6Jsjw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@aws-sdk/util-endpoints": "3.693.0", - "@smithy/core": "^2.5.2", - "@smithy/protocol-http": "^4.1.6", - "@smithy/types": "^3.7.0", + "@aws-sdk/core": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@aws-sdk/util-endpoints": "3.696.0", + "@smithy/core": "^2.5.3", + "@smithy/protocol-http": "^4.1.7", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1070,16 +1085,16 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.693.0.tgz", - "integrity": "sha512-YLUkMsUY0GLW/nfwlZ69cy1u07EZRmsv8Z9m0qW317/EZaVx59hcvmcvb+W4bFqj5E8YImTjoGfE4cZ0F9mkyw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.696.0.tgz", + "integrity": "sha512-7EuH142lBXjI8yH6dVS/CZeiK/WZsmb/8zP6bQbVYpMrppSTgB3MzZZdxVZGzL5r8zPQOU10wLC4kIMy0qdBVQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/types": "^3.7.1", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.9", + "@smithy/util-middleware": "^3.0.10", "tslib": "^2.6.2" }, "engines": { @@ -1087,16 +1102,16 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.693.0.tgz", - "integrity": "sha512-s7zbbsoVIriTR4ZGaateKuTqz6ddpazAyHvjk7I9kd+NvGNPiuAI18UdbuiiRI6K5HuYKf1ah6mKWFGPG15/kQ==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.696.0.tgz", + "integrity": "sha512-ijPkoLjXuPtgxAYlDoYls8UaG/VKigROn9ebbvPL/orEY5umedd3iZTcS9T+uAf4Ur3GELLxMQiERZpfDKaz3g==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/protocol-http": "^4.1.6", + "@aws-sdk/middleware-sdk-s3": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/protocol-http": "^4.1.7", "@smithy/signature-v4": "^4.2.2", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1104,31 +1119,31 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.693.0.tgz", - "integrity": "sha512-nDBTJMk1l/YmFULGfRbToOA2wjf+FkQT4dMgYCv+V9uSYsMzQj8A7Tha2dz9yv4vnQgYaEiErQ8d7HVyXcVEoA==", + "version": "3.699.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.699.0.tgz", + "integrity": "sha512-kuiEW9DWs7fNos/SM+y58HCPhcIzm1nEZLhe2/7/6+TvAYLuEWURYsbK48gzsxXlaJ2k/jGY3nIsA7RptbMOwA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", + "@aws-sdk/types": "3.696.0", "@smithy/property-provider": "^3.1.9", "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.693.0" + "@aws-sdk/client-sso-oidc": "^3.699.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.692.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.692.0.tgz", - "integrity": "sha512-RpNvzD7zMEhiKgmlxGzyXaEcg2khvM7wd5sSHVapOcrde1awQSOMGI4zKBQ+wy5TnDfrm170ROz/ERLYtrjPZA==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.696.0.tgz", + "integrity": "sha512-9rTvUJIAj5d3//U5FDPWGJ1nFJLuWb30vugGOrWk7aNZ6y9tuA3PI7Cc9dP8WEXKVyK1vuuk8rSFP2iqXnlgrw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1148,14 +1163,14 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.693.0.tgz", - "integrity": "sha512-eo4F6DRQ/kxS3gxJpLRv+aDNy76DxQJL5B3DPzpr9Vkq0ygVoi4GT5oIZLVaAVIJmi6k5qq9dLsYZfWLUxJJSg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.696.0.tgz", + "integrity": "sha512-T5s0IlBVX+gkb9g/I6CLt4yAZVzMSiGnbUqWihWsHvQR1WOoIcndQy/Oz/IJXT9T2ipoy7a80gzV6a5mglrioA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", - "@smithy/util-endpoints": "^2.1.5", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", + "@smithy/util-endpoints": "^2.1.6", "tslib": "^2.6.2" }, "engines": { @@ -1163,9 +1178,10 @@ } }, "node_modules/@aws-sdk/util-locate-window": { - "version": "3.568.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", - "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "version": "3.693.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.693.0.tgz", + "integrity": "sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" }, @@ -1174,27 +1190,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.693.0.tgz", - "integrity": "sha512-6EUfuKOujtddy18OLJUaXfKBgs+UcbZ6N/3QV4iOkubCUdeM1maIqs++B9bhCbWeaeF5ORizJw5FTwnyNjE/mw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.696.0.tgz", + "integrity": "sha512-Z5rVNDdmPOe6ELoM5AhF/ja5tSjbe6ctSctDPb0JdDf4dT0v2MfwhJKzXju2RzX8Es/77Glh7MlaXLE0kCB9+Q==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.692.0", - "@smithy/types": "^3.7.0", + "@aws-sdk/types": "3.696.0", + "@smithy/types": "^3.7.1", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.693.0.tgz", - "integrity": "sha512-td0OVX8m5ZKiXtecIDuzY3Y3UZIzvxEr57Hp21NOwieqKCG2UeyQWWeGPv0FQaU7dpTkvFmVNI+tx9iB8V/Nhg==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.696.0.tgz", + "integrity": "sha512-KhKqcfyXIB0SCCt+qsu4eJjsfiOrNzK5dCV7RAW2YIpp+msxGUUX0NdRE9rkzjiv+3EMktgJm3eEIS+yxtlVdQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.693.0", - "@aws-sdk/types": "3.692.0", - "@smithy/node-config-provider": "^3.1.10", - "@smithy/types": "^3.7.0", + "@aws-sdk/middleware-user-agent": "3.696.0", + "@aws-sdk/types": "3.696.0", + "@smithy/node-config-provider": "^3.1.11", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1210,12 +1226,12 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.693.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.693.0.tgz", - "integrity": "sha512-C/rPwJcqnV8VDr2/VtcQnymSpcfEEgH1Jm6V0VmfXNZFv4Qzf1eCS8nsec0gipYgZB+cBBjfXw5dAk6pJ8ubpw==", + "version": "3.696.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.696.0.tgz", + "integrity": "sha512-dn1mX+EeqivoLYnY7p2qLrir0waPnCgS/0YdRCAVU2x14FgfUYCH6Im3w3oi2dMwhxfKY5lYVB5NKvZu7uI9lQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.0", + "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, "engines": { @@ -1223,85 +1239,26 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/generator": { "version": "7.17.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.17.0", "jsesc": "^2.5.1", @@ -1311,202 +1268,144 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.3" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -1514,11 +1413,26 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", + "node_modules/@babel/parser/node_modules/@babel/types": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dev": true, + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1527,28 +1441,29 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1559,6 +1474,7 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.23.0", @@ -1576,39 +1492,65 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/types": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" @@ -1630,6 +1572,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", @@ -1668,15 +1611,6 @@ "node": ">= 10" } }, - "node_modules/@datadog/native-iast-rewriter/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/@datadog/native-iast-rewriter/node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -1744,10 +1678,150 @@ "integrity": "sha512-d5RjycE+MObE/hU+8OM5Zp4VjTwiPLRa8299fj7muOmR16fb942z8byoMbCErnGh0lBevvgkGrLclQDvINbIyg==", "license": "Apache-2.0" }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@fastify/busboy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.0.0.tgz", - "integrity": "sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.0.tgz", + "integrity": "sha512-yHmUtGwEbW6HsKpPqT140/L6GpHtquHogRLgtanJFep3UAfDkE0fQfC49U+F9irCAoJVlv3M7VSp4rrtO4LnfA==", "license": "MIT" }, "node_modules/@firebase/app-check-interop-types": { @@ -1851,9 +1925,9 @@ } }, "node_modules/@google-cloud/firestore": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.10.0.tgz", - "integrity": "sha512-VFNhdHvfnmqcHHs6YhmSNHHxQqaaD64GwiL0c+e1qz85S8SWZPC2XFRf8p9yHRTF40Kow424s1KBU9f0fdQa+Q==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-7.11.0.tgz", + "integrity": "sha512-88uZ+jLsp1aVMj7gh3EKYH1aulTAMFAp8sH/v5a9w8q8iqSG27RiWLoxSAFr/XocZ9hGiWH1kEnBw+zl3xAgNA==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -1942,14 +2016,15 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "license": "MIT", "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.2.tgz", - "integrity": "sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg==", + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.4.tgz", + "integrity": "sha512-NBhrxEWnFh0FxeA0d//YP95lRFsSx2TNLEUQg4/W+5f/BMxcCjgOOIT24iD+ZB/tZw057j44DaIxja7w4XMrhg==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -1979,6 +2054,72 @@ "node": ">=6" } }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@ioredis/commands": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", @@ -1989,6 +2130,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2002,9 +2144,10 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -2012,26 +2155,17 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2048,6 +2182,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2058,22 +2193,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/@isaacs/ttlcache": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", @@ -2086,13 +2205,15 @@ "node_modules/@jonkemp/package-utils": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.8.tgz", - "integrity": "sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA==" + "integrity": "sha512-bIcKnH5YmtTYr7S6J3J86dn/rFiklwRpOqbTOQ9C0WMmR9FKHVb3bxs2UYfqEmNb93O4nbA97sb6rtz33i9SyA==", + "license": "MIT" }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2107,6 +2228,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -2116,21 +2238,24 @@ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2148,14 +2273,16 @@ } }, "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", + "integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==", + "license": "MIT" }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -2171,20 +2298,12 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/@mapbox/node-pre-gyp/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2200,22 +2319,12 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2230,6 +2339,7 @@ "version": "1.15.10", "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", + "license": "MIT", "dependencies": { "@oozcitak/infra": "1.0.8", "@oozcitak/url": "1.0.4", @@ -2243,6 +2353,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", + "license": "MIT", "dependencies": { "@oozcitak/util": "8.3.8" }, @@ -2254,6 +2365,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", + "license": "MIT", "dependencies": { "@oozcitak/infra": "1.0.8", "@oozcitak/util": "8.3.8" @@ -2266,6 +2378,7 @@ "version": "8.3.8", "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", + "license": "MIT", "engines": { "node": ">=8.0" } @@ -2289,11 +2402,10 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", - "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", + "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", "license": "Apache-2.0", - "optional": true, "engines": { "node": ">=8.0.0" } @@ -2322,15 +2434,6 @@ "node": ">=14" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -2503,9 +2606,9 @@ } }, "node_modules/@smithy/core": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.3.tgz", - "integrity": "sha512-96uW8maifUSmehaeW7uydWn7wBc98NEeNI3zN8vqakGpyCQgzyJaA64Z4FCOUmAdCJkhppd/7SZ798Fo4Xx37g==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.4.tgz", + "integrity": "sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==", "license": "Apache-2.0", "dependencies": { "@smithy/middleware-serde": "^3.0.10", @@ -2672,6 +2775,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" }, @@ -2705,12 +2809,12 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.3.tgz", - "integrity": "sha512-Hdl9296i/EMptaX7agrSzJZDiz5Y8XPUeBbctTmMtnCguGpqfU3jVsTUan0VLaOhsnquqWLL8Bl5HrlbVGT1og==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.4.tgz", + "integrity": "sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.3", + "@smithy/core": "^2.5.4", "@smithy/middleware-serde": "^3.0.10", "@smithy/node-config-provider": "^3.1.11", "@smithy/shared-ini-file-loader": "^3.1.11", @@ -2724,15 +2828,15 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.27", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.27.tgz", - "integrity": "sha512-H3J/PjJpLL7Tt+fxDKiOD25sMc94YetlQhCnYeNmina2LZscAdu0ZEZPas/kwePHABaEtqp7hqa5S4UJgMs1Tg==", + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.28.tgz", + "integrity": "sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==", "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^3.1.11", "@smithy/protocol-http": "^4.1.7", "@smithy/service-error-classification": "^3.0.10", - "@smithy/smithy-client": "^3.4.4", + "@smithy/smithy-client": "^3.4.5", "@smithy/types": "^3.7.1", "@smithy/util-middleware": "^3.0.10", "@smithy/util-retry": "^3.0.10", @@ -2911,13 +3015,13 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.4.tgz", - "integrity": "sha512-dPGoJuSZqvirBq+yROapBcHHvFjChoAQT8YPWJ820aPHHiowBlB3RL1Q4kPT1hx0qKgJuf+HhyzKi5Gbof4fNA==", + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.5.tgz", + "integrity": "sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.3", - "@smithy/middleware-endpoint": "^3.2.3", + "@smithy/core": "^2.5.4", + "@smithy/middleware-endpoint": "^3.2.4", "@smithy/middleware-stack": "^3.0.10", "@smithy/protocol-http": "^4.1.7", "@smithy/types": "^3.7.1", @@ -2955,6 +3059,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", @@ -2968,6 +3073,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" } @@ -2976,6 +3082,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" }, @@ -2987,6 +3094,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", "tslib": "^2.6.2" @@ -3008,13 +3116,13 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.27", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.27.tgz", - "integrity": "sha512-GV8NvPy1vAGp7u5iD/xNKUxCorE4nQzlyl057qRac+KwpH5zq8wVq6rE3lPPeuFLyQXofPN6JwxL1N9ojGapiQ==", + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.28.tgz", + "integrity": "sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==", "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.4", + "@smithy/smithy-client": "^3.4.5", "@smithy/types": "^3.7.1", "bowser": "^2.11.0", "tslib": "^2.6.2" @@ -3024,16 +3132,16 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.27", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.27.tgz", - "integrity": "sha512-7+4wjWfZqZxZVJvDutO+i1GvL6bgOajEkop4FuR6wudFlqBiqwxw3HoH6M9NgeCd37km8ga8NPp2JacQEtAMPg==", + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.28.tgz", + "integrity": "sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==", "license": "Apache-2.0", "dependencies": { "@smithy/config-resolver": "^3.0.12", "@smithy/credential-provider-imds": "^3.2.7", "@smithy/node-config-provider": "^3.1.11", "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.4", + "@smithy/smithy-client": "^3.4.5", "@smithy/types": "^3.7.1", "tslib": "^2.6.2" }, @@ -3129,6 +3237,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^3.0.0", "tslib": "^2.6.2" @@ -3165,10 +3274,28 @@ "socket.io": ">=3.1.0" } }, + "node_modules/@socket.io/admin-ui/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" }, "node_modules/@socket.io/redis-adapter": { "version": "8.3.0", @@ -3187,12 +3314,31 @@ "socket.io-adapter": "^2.5.4" } }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "node_modules/@socket.io/redis-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": ">= 6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 10" } }, "node_modules/@trivago/prettier-plugin-sort-imports": { @@ -3200,6 +3346,7 @@ "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/generator": "7.17.7", "@babel/parser": "^7.20.5", @@ -3228,6 +3375,7 @@ "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -3244,6 +3392,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3263,10 +3412,18 @@ "@types/node": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -3275,9 +3432,10 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3288,12 +3446,21 @@ "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/jsonwebtoken": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.5.tgz", - "integrity": "sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", + "integrity": "sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3308,26 +3475,29 @@ "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "version": "22.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", + "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.8" + "undici-types": "~6.20.0" } }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==" + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" }, "node_modules/@types/request": { "version": "2.48.12", @@ -3358,44 +3528,25 @@ "node": ">= 0.12" } }, - "node_modules/@types/request/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/tough-cookie": { @@ -3421,6 +3572,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", "integrity": "sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==", + "license": "MIT", "engines": { "node": ">= 16" } @@ -3429,6 +3581,7 @@ "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -3436,7 +3589,8 @@ "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" }, "node_modules/abort-controller": { "version": "3.0.0", @@ -3455,6 +3609,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -3463,10 +3618,20 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3483,18 +3648,21 @@ "acorn": "^8" } }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "engines": { - "node": ">=0.4.0" + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -3502,6 +3670,23 @@ "node": ">= 6.0.0" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -3515,6 +3700,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3523,6 +3709,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3536,18 +3723,21 @@ "node_modules/append-field": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", + "license": "MIT" }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC" }, "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -3556,10 +3746,155 @@ "node": ">=10" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/arrify": { "version": "2.0.1", @@ -3574,31 +3909,23 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" }, "node_modules/asn1": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", "dependencies": { "safer-buffer": "~2.1.0" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" }, "node_modules/async-retry": { "version": "1.3.3", @@ -3613,12 +3940,14 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" }, @@ -3626,6 +3955,22 @@ "node": ">= 4.5.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/aws4": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", @@ -3633,9 +3978,9 @@ "license": "MIT" }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -3647,6 +3992,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/axios-ntlm/-/axios-ntlm-1.4.2.tgz", "integrity": "sha512-8mS/uhmSWiRBiFKQvysPbX1eDBp6e+eXskmasuAXRHrn1Zjgji3O/oGXzXLw7tOhyD9nho1vGjZ2OYOD3cCvHg==", + "license": "MIT", "dependencies": { "axios": "^1.6.1", "des.js": "^1.1.0", @@ -3657,7 +4003,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3691,12 +4038,14 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", "dependencies": { "tweetnacl": "^0.14.3" } @@ -3711,6 +4060,7 @@ "version": "3.8.12", "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.12.tgz", "integrity": "sha512-D9KZ+Us+2AyaCz693/9AyjTg0s8hEmkiM/MB3i09cs4MdK1KgTSGJluXRYmOulR69oLZVo2XDFtqsExDt8oiLA==", + "license": "MIT", "dependencies": { "better-queue-memory": "^1.0.1", "node-eta": "^0.9.0", @@ -3720,7 +4070,8 @@ "node_modules/better-queue-memory": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz", - "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==" + "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==", + "license": "MIT" }, "node_modules/better-queue/node_modules/uuid": { "version": "9.0.1", @@ -3730,6 +4081,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -3738,6 +4090,7 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", + "license": "MIT", "engines": { "node": "*" } @@ -3745,7 +4098,8 @@ "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" }, "node_modules/body-parser": { "version": "1.20.3", @@ -3775,6 +4129,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -3782,12 +4137,14 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/bowser": { "version": "2.11.0", @@ -3796,11 +4153,13 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/btoa": { @@ -3808,6 +4167,7 @@ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true, + "license": "(MIT OR Apache-2.0)", "bin": { "btoa": "bin/btoa.js" }, @@ -3818,12 +4178,14 @@ "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/buildcheck": { "version": "0.0.6", @@ -3849,21 +4211,21 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -3872,11 +4234,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz", + "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/canvas": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@mapbox/node-pre-gyp": "^1.0.0", "nan": "^2.17.0", @@ -3899,6 +4285,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3914,6 +4301,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3922,9 +4310,9 @@ } }, "node_modules/chart.js": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.6.tgz", - "integrity": "sha512-8Y406zevUPbbIBA/HRk33khEmQPk5+cxeflWE/2rx1NJsjVWMPw/9mSP9rxHP5eqi6LNoPBVMfZHxbwLSgldYA==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.7.tgz", + "integrity": "sha512-pwkcKfdzTMAU/+jNosKhNL2bHtJc/sSmYgVbuGTEDhzkrhmyihmP7vUc/5ZK9WopidMDHNe3Wm7jOd/WhuHWuw==", "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.0" @@ -3934,20 +4322,25 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -3957,6 +4350,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -3973,6 +4367,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { "node": ">=10" } @@ -3988,6 +4383,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "devOptional": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3997,6 +4393,24 @@ "node": ">=12" } }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/cloudinary": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.5.1.tgz", @@ -4023,6 +4437,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -4032,6 +4447,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4042,12 +4458,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -4057,6 +4475,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "bin": { "color-support": "bin.js" } @@ -4065,6 +4484,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -4072,12 +4492,14 @@ "node_modules/color/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/colorspace": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", "dependencies": { "color": "^3.1.3", "text-hex": "1.0.x" @@ -4087,6 +4509,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -4103,18 +4526,11 @@ "node": ">=18" } }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -4144,6 +4560,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -4151,41 +4568,14 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -4194,6 +4584,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -4205,6 +4596,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4215,10 +4607,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -4228,6 +4627,7 @@ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "date-fns": "^2.30.0", @@ -4253,12 +4653,14 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC" }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -4266,29 +4668,11 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4297,12 +4681,14 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4320,34 +4706,23 @@ "node": ">= 0.8.0" } }, - "node_modules/cookie-parser/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", "dependencies": { "object-assign": "^4", "vary": "^1" @@ -4357,14 +4732,14 @@ } }, "node_modules/cpu-features": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.9.tgz", - "integrity": "sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz", + "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==", "hasInstallScript": true, "optional": true, "dependencies": { "buildcheck": "~0.0.6", - "nan": "^2.17.0" + "nan": "^2.19.0" }, "engines": { "node": ">=10.0.0" @@ -4383,14 +4758,16 @@ "version": "3.1.8", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "license": "MIT", "dependencies": { "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4410,6 +4787,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", "integrity": "sha512-uTqEnCvWRk042asU6JtapDTcJeeailFy4ydOQS28bj1hcLnYRiqi8SsD2jS412AY1I/4qdOwWZun774iqywf9w==", + "license": "MIT", "dependencies": { "rndm": "1.2.0", "tsscmp": "1.0.6", @@ -4423,6 +4801,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/css-rules/-/css-rules-1.1.0.tgz", "integrity": "sha512-7L6krLIRwAEVCaVKyCEL6PQjQXUmf8DM9bWYKutlZd0DqOe0SiKIGQOkFb59AjDBb+3If7SDp3X8UlzDAgYSow==", + "license": "MIT", "dependencies": { "cssom": "^0.5.0" } @@ -4431,6 +4810,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -4446,6 +4826,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -4456,14 +4837,61 @@ "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "license": "MIT" }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/date-fns": { @@ -4471,6 +4899,7 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -4483,9 +4912,10 @@ } }, "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, "node_modules/dc-polyfill": { "version": "0.1.6", @@ -4540,28 +4970,10 @@ "node": ">=18" } }, - "node_modules/dd-trace/node_modules/@opentelemetry/api": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", - "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", - "license": "Apache-2.0", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dd-trace/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -4579,6 +4991,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { "node": ">=0.10" } @@ -4587,6 +5000,7 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "license": "MIT", "dependencies": { "mimic-response": "^2.0.0" }, @@ -4598,6 +5012,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/deeks/-/deeks-3.1.0.tgz", "integrity": "sha512-e7oWH1LzIdv/prMQ7pmlDlaVoL64glqzvNgkgQNgyec9ORPHrT2jaOqMtRyqJuwWjtfb6v+2rk9pmaHj+F137A==", + "license": "MIT", "engines": { "node": ">= 16" } @@ -4605,7 +5020,9 @@ "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", @@ -4624,18 +5041,22 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/degenerator": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.4.tgz", - "integrity": "sha512-Z66uPeBfHZAHVmue3HPfyKu2Q0rC2cRxbTOsvmU/po5fvvcx27W4mIu9n0PUlQih4oUYvcG1BsbtVv8x7KDOSw==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.17" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/delay": { @@ -4654,6 +5075,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -4661,7 +5083,8 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" }, "node_modules/denque": { "version": "2.1.0", @@ -4676,6 +5099,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4684,6 +5108,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -4693,6 +5118,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -4702,6 +5128,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", "engines": { "node": ">=8" } @@ -4718,12 +5145,14 @@ "node_modules/dev-null": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dev-null/-/dev-null-0.1.1.tgz", - "integrity": "sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ==" + "integrity": "sha512-nMNZG0zfMgmdv8S5O0TM5cpwNbGKRGPCxVsr0SmA3NZZy9CYBbuNLL0PD3Acx9e5LIUgwONXtM9kM6RlawPxEQ==", + "license": "MIT" }, "node_modules/dezalgo": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -4733,6 +5162,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/dinero.js/-/dinero.js-1.9.1.tgz", "integrity": "sha512-1HXiF2vv3ZeRQ23yr+9lFxj/PbZqutuYWJnE0qfCB9xYBPnuaJ8lXtli1cJM0TvUXW1JTOaePldmqN5JVNxKSA==", + "license": "MIT", "engines": { "node": "*" } @@ -4741,14 +5171,29 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/doc-path/-/doc-path-4.1.1.tgz", "integrity": "sha512-h1ErTglQAVv2gCnOpD3sFS6uolDbOKHDU1BZq+Kl3npPqroU3dYL42lUgMfd5UimlwtRgp7C9dLGwqQ5D2HYgQ==", + "license": "MIT", "engines": { "node": ">=16" } }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -4767,12 +5212,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -4787,6 +5234,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -4797,9 +5245,10 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -4807,11 +5256,26 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", + "integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/duplexify": { "version": "4.1.3", @@ -4829,12 +5293,14 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" } @@ -4842,13 +5308,15 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -4862,12 +5330,14 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" }, "node_modules/encodeurl": { "version": "2.0.0", @@ -4914,9 +5384,9 @@ } }, "node_modules/engine.io": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.1.tgz", - "integrity": "sha512-NEpDCw9hrvBW+hVEOK4T7v0jFJ++KgtPl4jKFwsZVfG1XhS0dCrSb3VMb9gPAd7VAdW52VT1EnaNiU2vM8C0og==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", "license": "MIT", "dependencies": { "@types/cookie": "^0.4.1", @@ -4924,7 +5394,7 @@ "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", - "cookie": "~0.4.1", + "cookie": "~0.7.2", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", @@ -4943,10 +5413,28 @@ "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -4957,16 +5445,75 @@ "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "license": "MIT" }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4" + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4980,11 +5527,95 @@ "node": ">= 0.4" } }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5004,50 +5635,178 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "node_modules/eslint": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "dev": true, + "license": "MIT", "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", - "optionator": "^0.8.1" + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" }, "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=4.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "source-map": "~0.6.1" + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, "engines": { - "node": ">=4.0" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5056,10 +5815,48 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -5090,9 +5887,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -5114,7 +5911,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -5129,6 +5926,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/cookie": { @@ -5144,6 +5945,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -5151,26 +5953,8 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/extend": { "version": "3.0.2", @@ -5182,6 +5966,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/extract-css/-/extract-css-3.0.1.tgz", "integrity": "sha512-mLNcMxYX7JVPcGUw7pgjczasLnvimYGlXFWuSx2YQ421sZDlBq4Dh0UzsSeXutf80Z0P2BtV5ZZt0FbaWTOxsQ==", + "license": "MIT", "dependencies": { "batch": "^0.6.1", "href-content": "^2.0.2", @@ -5193,6 +5978,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/farmhash-modern/-/farmhash-modern-1.1.0.tgz", "integrity": "sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==", + "license": "MIT", "engines": { "node": ">=18.0.0" } @@ -5201,18 +5987,28 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT", - "optional": true + "devOptional": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" }, "node_modules/fast-xml-parser": { "version": "4.4.1", @@ -5254,12 +6050,17 @@ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, "engines": { - "node": ">= 6" + "node": ">=16.0.0" } }, "node_modules/filelist": { @@ -5267,14 +6068,39 @@ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/filter-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5312,10 +6138,27 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/firebase-admin": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.0.0.tgz", - "integrity": "sha512-tgm4+NT051tv237g4rLz6L5TJ4l1QwPjzysBJKnukP8fvdJQuXUNpqQONptNbNeLEUkRAroGNuEg5v3aVPzkbw==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-13.0.1.tgz", + "integrity": "sha512-sKQ/Yw8o/WdC9qTKvuLMBjTbdcBISIXW4+M9PXk0bNjxEbZf1Er7EVq47eRb5+bnKof10xlns6zAIbj4tmSexg==", "license": "Apache-2.0", "dependencies": { "@fastify/busboy": "^3.0.0", @@ -5350,26 +6193,50 @@ "uuid": "dist/esm/bin/uuid" } }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/flat-util": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/flat-util/-/flat-util-1.1.9.tgz", - "integrity": "sha512-BOTMw/6rbbxVjv5JQvwgGMc2/6wWGd2VeyTvnzvvE49VRjS0tTxLbry/QVP1yPw8SaAOBYsnixmzruXoqjdUHA==" + "integrity": "sha512-BOTMw/6rbbxVjv5JQvwgGMc2/6wWGd2VeyTvnzvvE49VRjS0tTxLbry/QVP1yPw8SaAOBYsnixmzruXoqjdUHA==", + "license": "MIT" + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -5379,10 +6246,21 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -5394,10 +6272,23 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -5408,12 +6299,13 @@ } }, "node_modules/formidable": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", - "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.2.tgz", + "integrity": "sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==", + "license": "MIT", "dependencies": { "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", + "hexoid": "^2.0.0", "once": "^1.4.0" }, "funding": { @@ -5424,6 +6316,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5437,23 +6330,11 @@ "node": ">= 0.6" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -5465,6 +6346,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -5475,40 +6357,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ftp/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/ftp/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ftp/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.2", @@ -5519,6 +6369,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -5526,11 +6395,22 @@ "license": "MIT", "optional": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -5546,11 +6426,6 @@ "node": ">=10" } }, - "node_modules/gauge/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/gaxios": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", @@ -5632,21 +6507,25 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "devOptional": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz", + "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -5659,6 +6538,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5666,26 +6546,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/glob": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", @@ -5704,10 +6587,33 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/glob/node_modules/minimatch": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5719,12 +6625,33 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/google-auth-library": { @@ -5783,26 +6710,22 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, "node_modules/graphql": { "version": "16.9.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } @@ -5811,6 +6734,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", "cross-fetch": "^3.1.5" @@ -5837,6 +6761,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -5847,10 +6772,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5868,10 +6804,14 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5880,9 +6820,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -5891,10 +6831,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC" }, "node_modules/hasown": { "version": "2.0.2", @@ -5909,9 +6866,10 @@ } }, "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-2.0.0.tgz", + "integrity": "sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5920,16 +6878,18 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/href-content": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/href-content/-/href-content-2.0.2.tgz", - "integrity": "sha512-f/e40VYI+KciPGfFzfdw1wu8dptpUA9rYQJNbpYVRI217lyuo7nBNO7BjYfTiQMhU/AthfvPDMvj46uAgzUccQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/href-content/-/href-content-2.0.3.tgz", + "integrity": "sha512-ikrAoI1l5ihN5Be2cR9nozFfivVJxPQDpa4+sb6PLt/uaNE/a7A05rHbnJEUduoHddbB3GyT5tdqzXMUmPgJYA==", + "license": "MIT", "dependencies": { - "remote-content": "^3.0.1" + "remote-content": "^4.0.0" } }, "node_modules/html-entities": { @@ -5950,9 +6910,9 @@ "optional": true }, "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -5960,17 +6920,19 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -5989,11 +6951,13 @@ "license": "MIT" }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", + "optional": true, "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -6005,6 +6969,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -6017,6 +6982,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -6053,6 +7019,23 @@ "node": ">= 4" } }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-in-the-middle": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.2.tgz", @@ -6065,10 +7048,22 @@ "module-details-from-path": "^1.0.3" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6077,12 +7072,17 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/inline-css": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/inline-css/-/inline-css-4.0.2.tgz", "integrity": "sha512-o8iZBpVRCs+v8RyEWKxB+4JRi6A4Wop6f3zzqEi0xVx2eIevbgcjXIKYDmQR2ZZ+DD5IVZ6JII0dt2GhJh8etw==", + "license": "MIT", + "workspaces": [ + "./packages/*" + ], "dependencies": { "cheerio": "^1.0.0-rc.12", "css-rules": "^1.1.0", @@ -6102,6 +7102,21 @@ "integrity": "sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==", "license": "MIT" }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/intuit-oauth": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/intuit-oauth/-/intuit-oauth-4.1.3.tgz", @@ -6144,29 +7159,154 @@ "url": "https://opencollective.com/ioredis" } }, - "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", + "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -6177,18 +7317,166 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", + "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", + "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", + "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "gopd": "^1.1.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6196,11 +7484,106 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", + "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", + "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "has-symbols": "^1.0.3", + "safe-regex-test": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -6211,12 +7594,14 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -6227,10 +7612,28 @@ "node": ">=8" } }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -6239,16 +7642,14 @@ }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -6262,33 +7663,12 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/javascript-natural-sort": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jest-docblock": { "version": "29.7.0", @@ -6303,9 +7683,10 @@ } }, "node_modules/jose": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", - "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/panva" } @@ -6313,39 +7694,35 @@ "node_modules/js-md4": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", - "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==" + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -6354,9 +7731,9 @@ } }, "node_modules/json-2-csv": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/json-2-csv/-/json-2-csv-5.5.6.tgz", - "integrity": "sha512-N673XbJgHwUq9JreKpk530jSywPF/rEAQ08dV99QQpkluP/4HTwshpoP9hmDz26iSFqu7eNAPgyJfu/77HvPGA==", + "version": "5.5.7", + "resolved": "https://registry.npmjs.org/json-2-csv/-/json-2-csv-5.5.7.tgz", + "integrity": "sha512-aZ0EOadeNnO4ifF60oXXTH8P177WeHhFLbRLqILW1Kk1gNHlgAOuvddMwEIaxbLpCzx+vXo49whK6AILdg8qLg==", "license": "MIT", "dependencies": { "deeks": "3.1.0", @@ -6370,10 +7747,32 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/json11": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/json11/-/json11-2.0.0.tgz", @@ -6383,18 +7782,11 @@ "json11": "dist/cli.mjs" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", @@ -6416,6 +7808,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", @@ -6426,11 +7819,28 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/juice": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/juice/-/juice-11.0.0.tgz", @@ -6450,50 +7860,6 @@ "node": ">=18.17" } }, - "node_modules/juice/node_modules/cheerio": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", - "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "encoding-sniffer": "^0.2.0", - "htmlparser2": "^9.1.0", - "parse5": "^7.1.2", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "parse5-parser-stream": "^7.1.2", - "undici": "^6.19.5", - "whatwg-mimetype": "^4.0.0" - }, - "engines": { - "node": ">=18.17" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/juice/node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" - } - }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -6509,6 +7875,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-3.1.0.tgz", "integrity": "sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg==", + "license": "MIT", "dependencies": { "@types/express": "^4.17.17", "@types/jsonwebtoken": "^9.0.2", @@ -6531,6 +7898,16 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/koalas": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/koalas/-/koalas-1.0.2.tgz", @@ -6543,15 +7920,18 @@ "node_modules/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" }, "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -6566,15 +7946,73 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/list-stylesheets/-/list-stylesheets-2.0.1.tgz", "integrity": "sha512-UUEFowqvgRKT1+OJ59Ga5gTfVOP3hkbFo7DwNIZcMuXzJRWndYMHyDYbuqKe6lrw8KCY7c/GN5mEoLx0c54HAw==", + "license": "MIT", "dependencies": { "cheerio": "1.0.0-rc.12", "pick-util": "^1.1.5" } }, + "node_modules/list-stylesheets/node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/list-stylesheets/node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.assign": { "version": "4.2.0", @@ -6592,7 +8030,8 @@ "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==" + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", @@ -6609,7 +8048,8 @@ "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" }, "node_modules/lodash.isarguments": { "version": "3.1.0", @@ -6620,7 +8060,8 @@ "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" }, "node_modules/lodash.isempty": { "version": "4.4.0", @@ -6637,27 +8078,39 @@ "node_modules/lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" }, "node_modules/lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" }, "node_modules/lodash.sortby": { "version": "4.7.0", @@ -6688,10 +8141,43 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "license": "Apache-2.0" }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/lru-memoizer": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.3.0.tgz", + "integrity": "sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==", + "license": "MIT", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "lru-cache": "6.0.0" + } + }, + "node_modules/lru-memoizer/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6699,33 +8185,11 @@ "node": ">=10" } }, - "node_modules/lru-memoizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.2.0.tgz", - "integrity": "sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw==", - "dependencies": { - "lodash.clonedeep": "^4.5.0", - "lru-cache": "~4.0.0" - } - }, - "node_modules/lru-memoizer/node_modules/lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw==", - "dependencies": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "node_modules/lru-memoizer/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -6740,6 +8204,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -6748,6 +8213,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6756,6 +8222,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/mediaquery-text/-/mediaquery-text-1.2.0.tgz", "integrity": "sha512-cJyRqgYQi+hsYhRkyd5le0s4LsEPvOB7r+6X3jdEELNqVlM9mRIgyUPg9BzF+PuTqQH1ZekgIjYVOeWSXWq35Q==", + "license": "MIT", "dependencies": { "cssom": "^0.5.0" } @@ -6779,6 +8246,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6797,9 +8265,10 @@ } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6808,6 +8277,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -6815,10 +8285,20 @@ "node": ">= 0.6" } }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-response": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6829,24 +8309,26 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, + "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": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" + "node": "*" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6855,6 +8337,7 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -6863,6 +8346,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -6875,6 +8359,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -6886,6 +8371,7 @@ "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" }, @@ -6903,6 +8389,7 @@ "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", "engines": { "node": "*" } @@ -6922,7 +8409,8 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/msgpack-lite": { "version": "0.1.26", @@ -6943,6 +8431,7 @@ "version": "1.4.5-lts.1", "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "license": "MIT", "dependencies": { "append-field": "^1.0.0", "busboy": "^1.0.0", @@ -6957,26 +8446,27 @@ } }, "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", @@ -6986,12 +8476,14 @@ "node_modules/node-eta": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", - "integrity": "sha512-mTCTZk29tmX1OGfVkPt63H3c3VqXrI2Kvua98S7iUIB/Gbp0MNw05YtUomxQIxnnKMyRIIuY9izPcFixzhSBrA==" + "integrity": "sha512-mTCTZk29tmX1OGfVkPt63H3c3VqXrI2Kvua98S7iUIB/Gbp0MNw05YtUomxQIxnnKMyRIIuY9izPcFixzhSBrA==", + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -7011,6 +8503,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -7074,6 +8567,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", "dependencies": { "abbrev": "1" }, @@ -7095,6 +8589,7 @@ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "deprecated": "This package is no longer supported.", + "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -7106,6 +8601,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -7117,6 +8613,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7132,9 +8629,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -7143,10 +8640,92 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -7158,6 +8737,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7166,6 +8746,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -7174,6 +8755,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", "dependencies": { "fn.name": "1.x.x" } @@ -7183,6 +8765,7 @@ "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -7204,16 +8787,18 @@ } }, "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -7234,42 +8819,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pac-proxy-agent": { + "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "dependencies": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", - "netmask": "^2.0.2" + "node": ">=10" }, - "engines": { - "node": ">= 8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, "node_modules/parenthesis": { "version": "3.1.8", @@ -7278,22 +8861,24 @@ "license": "MIT" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" }, "funding": { @@ -7327,10 +8912,21 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "license": "MIT" }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7339,14 +8935,23 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, "node_modules/path-scurry": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" @@ -7359,23 +8964,24 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "license": "ISC", "engines": { "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", "license": "MIT" }, "node_modules/phone": { - "version": "3.1.53", - "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.53.tgz", - "integrity": "sha512-+0sMjlxjcm1rjUDRLzXW06vRg/SePwa+MubuSt9WhHoUziGrGHjuC/tfFYfh2oXKU/dcckwCyMUMDAOaVArb6w==", + "version": "3.1.55", + "resolved": "https://registry.npmjs.org/phone/-/phone-3.1.55.tgz", + "integrity": "sha512-tl34PREeFWwjBGa1mumtBrrSOb6v2cWkFz50n+nsb7aTFsvEyRPw8uGdd+kHOh9Z3SpbHIUZcHOuLA4hXNgEiQ==", "license": "MIT", "engines": { "node": ">=12" @@ -7385,10 +8991,28 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/pick-util/-/pick-util-1.1.5.tgz", "integrity": "sha512-H0MaM8T7wpQ/azvB12ChZw7kpSFzjsgv3Z+N7fUWnL1McTGSEeroCngcK4eOPiFQq08rAyKX3hadcAB1kUqfXA==", + "license": "MIT", "dependencies": { "@jonkemp/package-utils": "^1.0.8" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/pprof-format": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pprof-format/-/pprof-format-2.1.0.tgz", @@ -7396,18 +9020,21 @@ "license": "MIT" }, "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -7421,12 +9048,14 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -7439,10 +9068,23 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/proto3-json-serializer": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", @@ -7484,6 +9126,7 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -7492,51 +9135,28 @@ "node": ">= 0.10" } }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + "node_modules/punycode": { + "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" + } }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" @@ -7561,6 +9181,7 @@ "version": "6.14.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "license": "MIT", "dependencies": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -7577,12 +9198,14 @@ "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7600,6 +9223,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -7610,10 +9234,18 @@ "node": ">= 0.8" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7626,7 +9258,8 @@ "node_modules/recursive-diff": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/recursive-diff/-/recursive-diff-1.0.9.tgz", - "integrity": "sha512-5mqpskzvXDo5Vy29Vj8tH30a0+XBmY11aqWGoN/uB94UHRwndX2EuPvH+WtbqOYkrwAF718/lDo6U4CB1qSSqQ==" + "integrity": "sha512-5mqpskzvXDo5Vy29Vj8tH30a0+XBmY11aqWGoN/uB94UHRwndX2EuPvH+WtbqOYkrwAF718/lDo6U4CB1qSSqQ==", + "license": "MIT" }, "node_modules/redis": { "version": "4.7.0", @@ -7666,20 +9299,63 @@ "node": ">=4" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz", + "integrity": "sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "dunder-proto": "^1.0.0", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", - "dev": true + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/remote-content": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remote-content/-/remote-content-3.0.1.tgz", - "integrity": "sha512-zEMsvb4GgxVKBBTHgy2tte67RYBZx2Kyg9mTYpg+JfATHDqYJqhuC3zG1VoiYhDVP5JaB5+mPKcAvdnT0n3jxA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remote-content/-/remote-content-4.0.0.tgz", + "integrity": "sha512-9EKiAXe8KwgNaMnIEfjxCclU4Mt4o9i2UxJdoahx+cRZTjLkjQdrVJ7PUhU26qmZQjSuf6HdJYtlLq6Uj4umVg==", + "license": "MIT", "dependencies": { - "proxy-from-env": "^1.1.0", - "superagent": "^8.0.9", - "superagent-proxy": "^3.0.0" + "axios": "^1.6.2", + "proxy-from-env": "^1.1.0" } }, "node_modules/require-directory": { @@ -7687,6 +9363,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7694,7 +9371,36 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, "node_modules/retry": { "version": "0.13.1", @@ -7730,6 +9436,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", + "license": "ISC", "dependencies": { "glob": "^11.0.0", "package-json-from-dist": "^1.0.0" @@ -7747,26 +9454,88 @@ "node_modules/rndm": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", - "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==" + "integrity": "sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==", + "license": "MIT" }, "node_modules/rsa-pem-from-mod-exp": { "version": "0.8.6", "resolved": "https://registry.npmjs.org/rsa-pem-from-mod-exp/-/rsa-pem-from-mod-exp-0.8.6.tgz", - "integrity": "sha512-c5ouQkOvGHF1qomUUDJGFcXsomeSO2gbEs6hVhMAtlkE1CuaZase/WzoaKFG/EZQuNmq6pw/EMCeEnDvOgCJYQ==" + "integrity": "sha512-c5ouQkOvGHF1qomUUDJGFcXsomeSO2gbEs6hVhMAtlkE1CuaZase/WzoaKFG/EZQuNmq6pw/EMCeEnDvOgCJYQ==", + "license": "MIT" }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safe-stable-stringify": { "version": "2.5.0", @@ -7780,30 +9549,32 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" }, "node_modules/scmp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", - "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" + "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==", + "license": "BSD-3-Clause" }, "node_modules/secure-json-parse": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==" + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -7889,7 +9660,8 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.2", @@ -7908,15 +9680,33 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7928,14 +9718,19 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7959,15 +9754,10 @@ } }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/simple-concat": { "version": "1.0.1", @@ -7986,12 +9776,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "license": "MIT", "dependencies": { "decompress-response": "^4.2.0", "once": "^1.3.1", @@ -8002,6 +9794,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -8077,19 +9870,11 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", "integrity": "sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A==", + "license": "MIT (http://mootools.net/license.txt)", "engines": { "node": "*" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/soap": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/soap/-/soap-1.1.6.tgz", @@ -8139,10 +9924,28 @@ "ws": "~8.17.1" } }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -8151,42 +9954,46 @@ "node": ">=10.0.0" } }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" + "ms": "^2.1.3" }, "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + "ms": "^2.1.3" }, "engines": { - "node": ">= 6" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -8196,6 +10003,7 @@ "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-2.5.3.tgz", "integrity": "sha512-qfUGs7UHsOBE5p/lGfQdaAj/5U/GWYBw2imEpD6UQNkqElYonkow8t+HBL1qqIl3CuGZx7n8/CQo4x1HwSHhsg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "btoa": "^1.2.1", "chalk": "^4.1.0", @@ -8218,21 +10026,12 @@ "node": ">=12" } }, - "node_modules/source-map-explorer/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/source-map-explorer/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -8243,7 +10042,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8259,32 +10060,40 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/source-map-explorer/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/source-map-explorer/node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, + "node_modules/source-map-explorer/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/source-map-explorer/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -8303,6 +10112,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -8317,6 +10127,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "license": "MIT", "bin": { "specificity": "bin/specificity" } @@ -8325,6 +10136,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -8332,12 +10144,13 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/ssh2": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz", - "integrity": "sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.16.0.tgz", + "integrity": "sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==", "hasInstallScript": true, "dependencies": { "asn1": "^0.2.6", @@ -8347,8 +10160,8 @@ "node": ">=10.16.0" }, "optionalDependencies": { - "cpu-features": "~0.0.9", - "nan": "^2.18.0" + "cpu-features": "~0.0.10", + "nan": "^2.20.0" } }, "node_modules/ssh2-sftp-client": { @@ -8376,6 +10189,7 @@ "engines": [ "node >= 6.0" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -8387,6 +10201,7 @@ "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", "engines": { "node": "*" } @@ -8401,6 +10216,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -8434,6 +10250,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -8442,29 +10259,11 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-split-by": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", @@ -8478,6 +10277,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8492,6 +10292,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -8501,10 +10302,101 @@ "node": ">=8" } }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8517,6 +10409,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -8528,10 +10421,24 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strnum": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", @@ -8549,77 +10456,19 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/style-data/-/style-data-2.0.1.tgz", "integrity": "sha512-frUbteLGDoNEJhbMIWtyNE1VRduZXmZozhct4F+qN++OzIQZNZJ8KToZlDEl3eaedRYlDfKvUoMFMyrZj4x/sg==", + "license": "MIT", "dependencies": { "cheerio": "^1.0.0-rc.12", "mediaquery-text": "^1.2.0", "pick-util": "^1.1.5" } }, - "node_modules/superagent": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.1.2", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz", - "integrity": "sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==", - "dependencies": { - "debug": "^4.3.2", - "proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "superagent": ">= 0.15.4 || 1 || 2 || 3" - } - }, - "node_modules/superagent/node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", - "dependencies": { - "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8630,10 +10479,24 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -8650,6 +10513,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } @@ -8658,6 +10522,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -8682,31 +10547,6 @@ "node": ">=14" } }, - "node_modules/teeny-request/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/teeny-request/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "optional": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/teeny-request/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -8726,6 +10566,7 @@ "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, + "license": "MIT", "dependencies": { "mkdirp": "^0.5.1", "rimraf": "~2.6.2" @@ -8734,21 +10575,13 @@ "node": ">=6.0.0" } }, - "node_modules/temp/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/temp/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8764,23 +10597,13 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/temp/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -8791,7 +10614,8 @@ "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" }, "node_modules/tlhunter-sorted-set": { "version": "0.1.0", @@ -8804,6 +10628,7 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -8812,6 +10637,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -8819,13 +10645,15 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -8840,14 +10668,16 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tsscmp": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", "engines": { "node": ">=0.6.x" } @@ -8855,12 +10685,14 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, "node_modules/twilio": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/twilio/-/twilio-4.23.0.tgz", "integrity": "sha512-LdNBQfOe0dY2oJH2sAsrxazpgfFQo5yXGxe96QA8UWB5uu+433PrUbkv8gQ5RmrRCqUTPQ0aOrIyAdBr1aB03Q==", + "license": "MIT", "dependencies": { "axios": "^1.6.0", "dayjs": "^1.11.9", @@ -8876,11 +10708,13 @@ } }, "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" @@ -8890,6 +10724,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -8898,15 +10733,95 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", + "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" }, "node_modules/uid-safe": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", "dependencies": { "random-bytes": "~1.0.0" }, @@ -8923,6 +10838,22 @@ "node": ">= 4.0.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", @@ -8933,36 +10864,41 @@ } }, "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "license": "MIT" }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/uri-js": { + "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" + } + }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "license": "MIT" }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -8971,12 +10907,14 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -8989,6 +10927,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -9006,26 +10945,11 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/vm2": { - "version": "3.9.19", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.19.tgz", - "integrity": "sha512-J637XF0DHDMV57R6JyVsTak7nIL8gy5KH4r1HiwWLf/4GBbb5MKL5y7LpmF4A8E2nR6XmzpmMFQ7V7ppPTmUQg==", - "deprecated": "The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm.", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, "node_modules/web-resource-inliner": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-7.0.0.tgz", @@ -9154,7 +11078,8 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/websocket-driver": { "version": "0.7.4", @@ -9207,6 +11132,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", "engines": { "node": ">=18" } @@ -9215,6 +11141,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -9224,6 +11151,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -9234,10 +11162,105 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", + "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.0", + "is-number-object": "^1.1.0", + "is-string": "^1.1.0", + "is-symbol": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", + "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } @@ -9301,22 +11324,24 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "devOptional": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -9327,6 +11352,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9339,10 +11365,73 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { "version": "8.17.1", @@ -9369,6 +11458,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.0.0.tgz", "integrity": "sha512-L3RgnkaDrHaYcCnoENv4Idzt1ZRj5U1z1BDH98QdDTQfssScx8adgxhd9qwyYo+E3fXbQZjEQH7aiXHLVgxGvw==", + "license": "MIT", "dependencies": { "@xmldom/is-dom-node": "^1.0.1", "@xmldom/xmldom": "^0.8.10", @@ -9382,6 +11472,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -9394,6 +11485,7 @@ "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", "engines": { "node": ">=4.0" } @@ -9402,6 +11494,7 @@ "version": "13.0.2", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -9410,6 +11503,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", + "license": "MIT", "dependencies": { "@oozcitak/dom": "1.15.10", "@oozcitak/infra": "1.0.8", @@ -9420,26 +11514,42 @@ "node": ">=12.0" } }, + "node_modules/xmlbuilder2/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/xmlbuilder2/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/xpath": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", + "license": "MIT", "engines": { "node": ">=0.6.0" } }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "engines": { - "node": "*" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -9449,6 +11559,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "devOptional": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -9456,13 +11567,15 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "devOptional": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -9481,6 +11594,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "devOptional": true, + "license": "ISC", "engines": { "node": ">=12" } diff --git a/package.json b/package.json index a54cf08a1..cd9ec1870 100644 --- a/package.json +++ b/package.json @@ -77,8 +77,12 @@ "xmlbuilder2": "^3.1.1" }, "devDependencies": { + "@eslint/js": "^9.15.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "concurrently": "^8.2.2", + "eslint": "^9.15.0", + "eslint-plugin-react": "^7.37.2", + "globals": "^15.12.0", "p-limit": "^3.1.0", "prettier": "^3.3.3", "source-map-explorer": "^2.5.2" diff --git a/server.js b/server.js index 5ea5bd428..5327d2998 100644 --- a/server.js +++ b/server.js @@ -58,7 +58,7 @@ const SOCKETIO_CORS_ORIGIN = [ "https://beta.test.imex.online", "https://www.beta.test.imex.online", "https://beta.imex.online", - "https://www.beta.imex.online", + "https://www.beta.imex.online", "https://www.test.promanager.web-est.com", "https://test.promanager.web-est.com", "https://www.promanager.web-est.com", diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js index bed94f1d7..a7ecc30ec 100644 --- a/server/accounting/qb-receivables-lines.js +++ b/server/accounting/qb-receivables-lines.js @@ -4,8 +4,7 @@ const Dinero = require("dinero.js"); const InstanceManager = require("../utils/instanceMgr").default; const { DiscountNotAlreadyCounted } = InstanceManager({ imex: require("../job/job-totals"), - rome: require("../job/job-totals-USA"), - promanager: "USE_ROME" + rome: require("../job/job-totals-USA") }); const logger = require("../utils/logger"); @@ -609,7 +608,7 @@ exports.default = function ({ bodyshop, jobs_by_pk, qbo = false, items, taxCodes const state_tax = Dinero(job_totals.totals.state_tax); const local_tax = Dinero(job_totals.totals.local_tax); - const RulesetToUse = InstanceManager({ imex: "CANADA", rome: "US", promanager: "US" }); + const RulesetToUse = InstanceManager({ imex: "CANADA", rome: "US" }); if (RulesetToUse === "CANADA") { if (federal_tax.getAmount() > 0) { diff --git a/server/cdk/cdk-calculate-allocations.js b/server/cdk/cdk-calculate-allocations.js index 03f7addae..81600707c 100644 --- a/server/cdk/cdk-calculate-allocations.js +++ b/server/cdk/cdk-calculate-allocations.js @@ -12,8 +12,7 @@ const _ = require("lodash"); const InstanceManager = require("../utils/instanceMgr").default; const { DiscountNotAlreadyCounted } = InstanceManager({ imex: require("../job/job-totals"), - rome: require("../job/job-totals-USA"), - promanager: "USE_ROME" + rome: require("../job/job-totals-USA") }); exports.defaultRoute = async function (req, res) { diff --git a/server/email/generateTemplate.js b/server/email/generateTemplate.js index 7168d435e..9d2815851 100644 --- a/server/email/generateTemplate.js +++ b/server/email/generateTemplate.js @@ -14,8 +14,7 @@ const { header, end, start } = require("./html"); const defaultFooter = () => { return RenderInstanceManager({ imex: "ImEX Online Collision Repair Management System", - rome: "Rome Technologies", - promanager: "ProManager" + rome: "Rome Technologies" }); }; diff --git a/server/email/sendemail.js b/server/email/sendemail.js index 9d103ef81..48fa94968 100644 --- a/server/email/sendemail.js +++ b/server/email/sendemail.js @@ -53,8 +53,7 @@ const sendServerEmail = async ({ subject, text }) => { { from: InstanceManager({ imex: `ImEX Online API - ${process.env.NODE_ENV} `, - rome: `Rome Online API - ${process.env.NODE_ENV} `, - promanager: `ProManager API - ${process.env.NODE_ENV} ` + rome: `Rome Online API - ${process.env.NODE_ENV} ` }), to: ["patrick@imexsystems.ca", "support@thinkimex.com"], subject: subject, @@ -78,27 +77,13 @@ const sendServerEmail = async ({ subject, text }) => { } }; -const sendProManagerWelcomeEmail = async ({ to, subject, html }) => { - try { - await mailer.sendMail({ - from: `ProManager `, - to, - subject, - html - }); - } catch (error) { - logger.log("server-email-failure", "error", null, null, { error }); - } -}; - const sendTaskEmail = async ({ to, subject, type = "text", html, text, attachments }) => { try { mailer.sendMail( { from: InstanceManager({ imex: `ImEX Online `, - rome: `Rome Online `, - promanager: `ProManager ` + rome: `Rome Online ` }), to: to, subject: subject, @@ -247,8 +232,7 @@ const emailBounce = async (req, res) => { replyTo === InstanceManager({ imex: "noreply@imex.online", - rome: "noreply@romeonline.io", - promanager: "noreply@promanager.web-est.com" + rome: "noreply@romeonline.io" }) ) { res.sendStatus(200); @@ -270,13 +254,11 @@ const emailBounce = async (req, res) => { //bcc: "patrick@snapt.ca", subject: `${InstanceMgr({ imex: "ImEX Online", - rome: "Rome Online", - promanager: "ProManager" + rome: "Rome Online" })} Bounced Email - RE: ${subject}`, text: `${InstanceMgr({ imex: "ImEX Online", - rome: "Rome Online", - promanager: "ProManager" + rome: "Rome Online" })} has tried to deliver an email with the subject: ${subject} to the intended recipients but encountered an error. ${body.bounce?.bouncedRecipients.map( @@ -305,6 +287,5 @@ module.exports = { sendEmail, sendServerEmail, sendTaskEmail, - sendProManagerWelcomeEmail, emailBounce }; diff --git a/server/email/tasksEmails.js b/server/email/tasksEmails.js index c05185b6b..6d787811a 100644 --- a/server/email/tasksEmails.js +++ b/server/email/tasksEmails.js @@ -87,14 +87,7 @@ const formatPriority = (priority) => { const getEndpoints = (bodyshop) => InstanceManager({ imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online", - rome: - bodyshop?.convenient_company === "promanager" - ? process.env?.NODE_ENV === "test" - ? "https//test.promanager.web-est.com" - : "https://promanager.web-est.com" - : process.env?.NODE_ENV === "test" - ? "https//test.romeonline.io" - : "https://romeonline.io" + rome: process.env?.NODE_ENV === "test" ? "https//test.romeonline.io" : "https://romeonline.io" }); const generateTemplateArgs = (title, priority, description, dueDate, bodyshop, job, taskId, dateLine, createdBy) => { @@ -120,10 +113,7 @@ const generateTemplateArgs = (title, priority, description, dueDate, bodyshop, j const sendMail = (type, to, subject, html, taskIds, successCallback, requestInstance) => { const fromEmails = InstanceManager({ imex: "ImEX Online ", - rome: - requestInstance === "promanager" - ? "ProManager " - : "Rome Online " + rome: "Rome Online " }); mailer.sendMail( @@ -239,10 +229,7 @@ const tasksRemindEmail = async (req, res) => { recipientCounts.forEach((recipient) => { const fromEmails = InstanceManager({ imex: "ImEX Online ", - rome: - tasksRequest?.tasks[0].bodyshop.convenient_company === "promanager" - ? "ProManager " - : "Rome Online " + rome: "Rome Online " }); const emailData = { @@ -279,14 +266,7 @@ const tasksRemindEmail = async (req, res) => { else { const endPoints = InstanceManager({ imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online", - rome: - tasksRequest?.tasks[0].bodyshop.convenient_company === "promanager" - ? process.env?.NODE_ENV === "test" - ? "https//test.promanager.web-est.com" - : "https://promanager.web-est.com" - : process.env?.NODE_ENV === "test" - ? "https//test.romeonline.io" - : "https://romeonline.io" + rome: process.env?.NODE_ENV === "test" ? "https//test.romeonline.io" : "https://romeonline.io" }); const allTasks = groupedTasks[recipient.email]; diff --git a/server/firebase/firebase-handler.js b/server/firebase/firebase-handler.js index 6cd952783..c60a04fab 100644 --- a/server/firebase/firebase-handler.js +++ b/server/firebase/firebase-handler.js @@ -5,10 +5,10 @@ require("dotenv").config({ const admin = require("firebase-admin"); const logger = require("../utils/logger"); -const { sendProManagerWelcomeEmail } = require("../email/sendemail"); +//const { sendProManagerWelcomeEmail } = require("../email/sendemail"); const client = require("../graphql-client/graphql-client").client; const serviceAccount = require(process.env.FIREBASE_ADMINSDK_JSON); -const generateEmailTemplate = require("../email/generateTemplate"); +//const generateEmailTemplate = require("../email/generateTemplate"); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), @@ -57,109 +57,6 @@ const createUser = async (req, res) => { } }; -const sendPromanagerWelcomeEmail = (req, res) => { - const { authid, email } = req.body; - - // Fetch user from Firebase - admin - .auth() - .getUser(authid) - .then((userRecord) => { - if (!userRecord) { - return Promise.reject({ status: 404, message: "User not found in Firebase." }); - } - - // Fetch user data from the database using GraphQL - return client.request( - ` - query GET_USER_BY_EMAIL($email: String!) { - users(where: { email: { _eq: $email } }) { - email - validemail - associations { - id - shopid - bodyshop { - id - convenient_company - } - } - } - }`, - { email: email.toLowerCase() } - ); - }) - .then((dbUserResult) => { - const dbUser = dbUserResult?.users?.[0]; - if (!dbUser) { - return Promise.reject({ status: 404, message: "User not found in database." }); - } - - // Validate email before proceeding - if (!dbUser.validemail) { - logger.log("admin-send-welcome-email-skip", "debug", req.user.email, null, { - message: "User email is not valid, skipping email.", - email - }); - return res.status(200).json({ message: "User email is not valid, email not sent." }); - } - - // Check if the user's company is ProManager - const convenientCompany = dbUser.associations?.[0]?.bodyshop?.convenient_company; - if (convenientCompany !== "promanager") { - logger.log("admin-send-welcome-email-skip", "debug", req.user.email, null, { - message: 'convenient_company is not "promanager", skipping email.', - convenientCompany - }); - return res.status(200).json({ message: `convenient_company is not "promanager", email not sent.` }); - } - - // Generate password reset link - return admin - .auth() - .generatePasswordResetLink(dbUser.email) - .then((resetLink) => ({ dbUser, resetLink })); - }) - .then(({ dbUser, resetLink }) => { - // Send welcome email (replace with your actual email-sending service) - return sendProManagerWelcomeEmail({ - to: dbUser.email, - subject: "Welcome to the ProManager platform.", - html: generateEmailTemplate({ - header: "", - subHeader: "", - body: ` -

Welcome to the ProManager platform. Please click the link below to reset your password:

-

Reset your password

-

User Details:

-
    -
  • Email: ${dbUser.email}
  • -
- ` - }) - }); - }) - .then(() => { - // Log success and return response - logger.log("admin-send-welcome-email", "debug", req.user.email, null, { - request: req.body, - ioadmin: true, - emailSentTo: email - }); - res.status(200).json({ message: "Welcome email sent successfully." }); - }) - .catch((error) => { - logger.log("admin-send-welcome-email-error", "ERROR", req.user.email, null, { error }); - - if (!res.headersSent) { - res.status(error.status || 500).json({ - message: error.message || "Error sending welcome email.", - error - }); - } - }); -}; - const updateUser = (req, res) => { logger.log("admin-update-user", "debug", req.user.email, null, { request: req.body, @@ -299,6 +196,7 @@ const unsubscribe = async (req, res) => { res.json(result); } catch (error) { + logger.log("admin-unsubscribe-error", "ERROR", req.user.email, null, { error: error.message }); res.sendStatus(500); } }; @@ -308,7 +206,6 @@ module.exports = { createUser, updateUser, getUser, - sendPromanagerWelcomeEmail, sendNotification, subscribe, unsubscribe diff --git a/server/job/job-costing.js b/server/job/job-costing.js index 7be3abffc..1210b92e9 100644 --- a/server/job/job-costing.js +++ b/server/job/job-costing.js @@ -5,8 +5,7 @@ const logger = require("../utils/logger"); const InstanceManager = require("../utils/instanceMgr").default; const { DiscountNotAlreadyCounted } = InstanceManager({ imex: require("../job/job-totals"), - rome: require("../job/job-totals-USA"), - promanager: "USE_ROME" + rome: require("../job/job-totals-USA") }); // Dinero.defaultCurrency = "USD"; @@ -406,7 +405,7 @@ function GenerateCostingData(job) { ) { const discountRate = Math.abs(job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp) > 1 - ? parts_tajob.parts_tax_rates_rates[val.part_type.toUpperCase()].prt_discp + ? job.parts_tax_rates_rates[val.part_type.toUpperCase()].prt_discp : job.parts_tax_rates[val.part_type.toUpperCase()].prt_discp * 100; const disc = partsAmount.percentage(discountRate).multiply(-1); partsAmount = partsAmount.add(disc); diff --git a/server/job/job-totals-USA.js b/server/job/job-totals-USA.js index 906d024b3..be43131d7 100644 --- a/server/job/job-totals-USA.js +++ b/server/job/job-totals-USA.js @@ -10,7 +10,7 @@ const InstanceMgr = require("../utils/instanceMgr").default; //****************************************************** */ //****************************************************** */ //****************************************************** */ -//THIS IS THE USA/PROMANAGER/ROME REQUIRED JOB TOTALS CALCULATION. +//THIS IS THE USA/ROME REQUIRED JOB TOTALS CALCULATION. //****************************************************** */ //****************************************************** */ //****************************************************** */ @@ -1047,8 +1047,7 @@ function CalculateTaxesTotals(job, otherTotals) { thresholdAmount === 9999.99 || InstanceMgr({ imex: false, - rome: thresholdAmount === 0 && parseInt(tyCounter) === 1, - promanager: "USE_ROME" + rome: thresholdAmount === 0 && parseInt(tyCounter) === 1 }) ) { // diff --git a/server/job/job.js b/server/job/job.js index dc8640a98..c088d7623 100644 --- a/server/job/job.js +++ b/server/job/job.js @@ -2,13 +2,11 @@ const RenderInstanceManager = require("../utils/instanceMgr").default; exports.totals = RenderInstanceManager({ imex: require("./job-totals").default, - rome: require("./job-totals-USA").default, - promanager: require("./job-totals-USA").default + rome: require("./job-totals-USA").default }); exports.totalsSsu = RenderInstanceManager({ imex: require("./job-totals").totalsSsu, - rome: require("./job-totals-USA").totalsSsu, - promanager: require("./job-totals-USA").totalsSsu + rome: require("./job-totals-USA").totalsSsu }); exports.costing = require("./job-costing").JobCosting; exports.costingmulti = require("./job-costing").JobCostingMulti; diff --git a/server/routes/adminRoutes.js b/server/routes/adminRoutes.js index ac0ebb6fb..0d62d27a6 100644 --- a/server/routes/adminRoutes.js +++ b/server/routes/adminRoutes.js @@ -2,7 +2,7 @@ const express = require("express"); const router = express.Router(); const validateFirebaseIdTokenMiddleware = require("../middleware/validateFirebaseIdTokenMiddleware"); const { createAssociation, createShop, updateShop, updateCounter } = require("../admin/adminops"); -const { updateUser, getUser, createUser, sendPromanagerWelcomeEmail } = require("../firebase/firebase-handler"); +const { updateUser, getUser, createUser } = require("../firebase/firebase-handler"); const validateAdminMiddleware = require("../middleware/validateAdminMiddleware"); router.use(validateFirebaseIdTokenMiddleware); @@ -15,6 +15,5 @@ router.post("/updatecounter", updateCounter); router.post("/updateuser", updateUser); router.post("/getuser", getUser); router.post("/createuser", createUser); -router.post("/promanagerwelcome", sendPromanagerWelcomeEmail); module.exports = router; diff --git a/server/sms/receive.js b/server/sms/receive.js index 99ff90af6..f08cf727e 100644 --- a/server/sms/receive.js +++ b/server/sms/receive.js @@ -138,7 +138,6 @@ exports.receive = async (req, res) => { title: InstanceManager({ imex: `ImEX Online Message - ${message.conversation.phone_num}`, rome: `Rome Online Message - ${message.conversation.phone_num}`, - promanager: `ProManager Message - ${message.conversation.phone_num}` }), body: message.image_path ? `Image ${message.text}` : message.text }, diff --git a/server/utils/instanceMgr.js b/server/utils/instanceMgr.js index 6a01e6904..b94408fe6 100644 --- a/server/utils/instanceMgr.js +++ b/server/utils/instanceMgr.js @@ -11,12 +11,20 @@ function InstanceManager({ args, instance, debug, executeFunction, rome, promanager, imex }) { let propToReturn = null; + //TODO: Remove after debugging. + if (promanager) { + console.trace("ProManager Prop was used"); + } switch (instance || process.env.INSTANCE) { case "IMEX": propToReturn = imex; break; case "ROME": - propToReturn = rome; //TODO:AIO Implement USE_IMEX + if (rome === "USE_IMEX") { + propToReturn = imex; + } else { + propToReturn = rome; + } break; case "PROMANAGER": //Return the rome prop if USE_ROME.