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/_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 236f677e0..009d49e56 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.json b/client/package.json index 38d148706..e362eade1 100644 --- a/client/package.json +++ b/client/package.json @@ -90,16 +90,12 @@ "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 .", 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/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/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/feature-wrapper.component.jsx b/client/src/components/feature-wrapper/feature-wrapper.component.jsx index 4b71318b7..8f2336369 100644 --- a/client/src/components/feature-wrapper/feature-wrapper.component.jsx +++ b/client/src/components/feature-wrapper/feature-wrapper.component.jsx @@ -22,8 +22,7 @@ function FeatureWrapper({ bodyshop, featureName, noauth, children, ...restProps message={t("general.messages.nofeatureaccess", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) })} type="warning" diff --git a/client/src/components/header/header.component.jsx b/client/src/components/header/header.component.jsx index 341e19ba0..6457de46d 100644 --- a/client/src/components/header/header.component.jsx +++ b/client/src/components/header/header.component.jsx @@ -130,9 +130,8 @@ function Header({ if ( InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "bills", bodyshop }) + imex: HasFeatureAccess({ featureName: "bills", bodyshop }), + rome: "USE_IMEX" }) ) { accountingChildren.push( @@ -172,9 +171,8 @@ function Header({ } if ( InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "payments", bodyshop }) + imex: HasFeatureAccess({ featureName: "payments", bodyshop }), + rome: "USE_IMEX" }) ) { accountingChildren.push( @@ -219,9 +217,8 @@ function Header({ if ( InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) + imex: HasFeatureAccess({ featureName: "timetickets", bodyshop }), + rome: "USE_IMEX" }) ) { accountingChildren.push( @@ -304,9 +301,8 @@ function Header({ if ( InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "export", bodyshop }) + imex: HasFeatureAccess({ featureName: "export", bodyshop }), + rome: "USE_IMEX" }) ) { accountingChildren.push({ @@ -386,9 +382,8 @@ function Header({ label: {t("menus.header.productionlist")} }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "visualboard", bodyshop }) + imex: HasFeatureAccess({ featureName: "visualboard", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -401,9 +396,8 @@ function Header({ : []), ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "scoreboard", bodyshop }) + imex: HasFeatureAccess({ featureName: "scoreboard", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -440,9 +434,8 @@ function Header({ ] }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: false // HasFeatureAccess({ featureName: 'courtesycars', bodyshop }), + imex: HasFeatureAccess({ featureName: "courtesycars", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -492,9 +485,8 @@ function Header({ label: {t("menus.header.phonebook")} }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "media", bodyshop }) + imex: HasFeatureAccess({ featureName: "media", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -571,9 +563,8 @@ function Header({ label: {t("menus.header.shop_vendors")} }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "csi", bodyshop }) + imex: HasFeatureAccess({ featureName: "csi", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -607,8 +598,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 +607,7 @@ function Header({ }, ...(InstanceRenderManager({ imex: true, - rome: false, - promanager: false + rome: false }) ? [ { @@ -633,9 +622,8 @@ function Header({ : []), ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) + imex: HasFeatureAccess({ featureName: "timetickets", bodyshop }), + rome: "USE_IMEX" }) ? [ { diff --git a/client/src/components/job-bills-total/job-bills-total.component.jsx b/client/src/components/job-bills-total/job-bills-total.component.jsx index d38e9781e..ed123fa9c 100644 --- a/client/src/components/job-bills-total/job-bills-total.component.jsx +++ b/client/src/components/job-bills-total/job-bills-total.component.jsx @@ -98,7 +98,6 @@ export default function JobBillsTotalComponent({ InstanceRenderManager({ imex: Dinero(), rome: Dinero(totals.additional.additionalCosts), - promanager: "USE_ROME" }) ); // Additional costs were captured for Rome, but not imex. diff --git a/client/src/components/job-detail-lines/job-lines-part-price-change.component.jsx b/client/src/components/job-detail-lines/job-lines-part-price-change.component.jsx index a7548542c..34b82ade8 100644 --- a/client/src/components/job-detail-lines/job-lines-part-price-change.component.jsx +++ b/client/src/components/job-detail-lines/job-lines-part-price-change.component.jsx @@ -60,24 +60,21 @@ export function JobLinesPartPriceChange({ job, line, refetch, technician }) { } }; - const popcontent = !technician && InstanceRenderManager({ - imex: null, - rome: ( -
- - - - -
- ), - promanager: null - }); + const popcontent = + !technician && + InstanceRenderManager({ + imex: null, + rome: ( +
+ + + + +
+ ) + }); 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-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 301fec91f..891867fbb 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 @@ -50,7 +50,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 ? [ { @@ -149,7 +148,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 d9964d090..27f76ad82 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,8 +110,7 @@ export function JobsAvailableContainer({ bodyshop, currentUser, insertAuditTrail InstanceRenderManager({ executeFunction: true, rome: ResolveCCCLineIssues, - args: [estData.est_data, bodyshop], - promanager: ResolveCCCLineIssues + args: [estData.est_data, bodyshop] }); // } else { @@ -121,7 +120,7 @@ export function JobsAvailableContainer({ bodyshop, currentUser, insertAuditTrail 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] }); @@ -585,14 +584,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 - + //TODO: How do we merge these 2 functions together and have it function properly for Rome? InstanceRenderManager({ executeFunction: true, args: [], 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 c9c3b8fb7..3aca43488 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 @@ -670,48 +670,50 @@ export function JobsDetailHeaderActions({ }, ...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")} - } + ...(HasFeatureAccess({ featureName: "checklist", bodyshop }) + ? [ + { + 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: + } + ]) ], - rome: "USE_IMEX", - promanager: [ - { - key: "toggleproduction", - id: "job-actions-toggleproduction", - disabled: !job.converted || jobRO, - label: - } - ] + rome: "USE_IMEX" }), ...(InstanceRenderManager({ - imex: true, - rome: "USE_IMEX", - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) + imex: HasFeatureAccess({ featureName: "timetickets", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -881,9 +883,8 @@ export function JobsDetailHeaderActions({ ] }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "bills", bodyshop }) + imex: HasFeatureAccess({ featureName: "bills", bodyshop }), + rome: "USE_IMEX" }) ? [ { @@ -964,9 +965,8 @@ export function JobsDetailHeaderActions({ if ( InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "export", bodyshop }) + imex: HasFeatureAccess({ featureName: "export", bodyshop }), + rome: "USE_IMEX" }) ) { menuItems.push({ 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/production-board-kanban/settings/defaultKanbanSettings.js b/client/src/components/production-board-kanban/settings/defaultKanbanSettings.js index c9a8c59c6..ff48e00ba 100644 --- a/client/src/components/production-board-kanban/settings/defaultKanbanSettings.js +++ b/client/src/components/production-board-kanban/settings/defaultKanbanSettings.js @@ -12,8 +12,7 @@ const statisticsItems = [ name: "totalHrsOnBoard", label: InstanceRenderManager({ imex: "total_hours_in_view", - rome: "total_hours_on_board", - promanager: "total_hours_on_board" + rome: "total_hours_on_board" }) }, { @@ -21,8 +20,7 @@ const statisticsItems = [ name: "totalAmountOnBoard", label: InstanceRenderManager({ imex: "total_amount_in_view", - rome: "total_amount_on_board", - promanager: "total_amount_on_board" + rome: "total_amount_on_board" }) }, { @@ -30,8 +28,7 @@ const statisticsItems = [ name: "totalLABOnBoard", label: InstanceRenderManager({ imex: "total_lab_in_view", - rome: "total_lab_on_board", - promanager: "total_lab_on_board" + rome: "total_lab_on_board" }) }, { @@ -39,8 +36,7 @@ const statisticsItems = [ name: "totalLAROnBoard", label: InstanceRenderManager({ imex: "total_lar_in_view", - rome: "total_lar_on_board", - promanager: "total_lar_on_board" + rome: "total_lar_on_board" }) }, { @@ -48,8 +44,7 @@ const statisticsItems = [ name: "jobsOnBoard", label: InstanceRenderManager({ imex: "total_jobs_in_view", - rome: "total_jobs_on_board", - promanager: "total_jobs_on_board" + rome: "total_jobs_on_board" }) }, { @@ -57,8 +52,7 @@ const statisticsItems = [ name: "tasksOnBoard", label: InstanceRenderManager({ imex: "tasks_in_view", - rome: "tasks_on_board", - promanager: "tasks_on_board" + rome: "tasks_on_board" }) }, { id: 11, name: "tasksInProduction", label: "tasks_in_production" } diff --git a/client/src/components/production-list-columns/production-list-columns.data.jsx b/client/src/components/production-list-columns/production-list-columns.data.jsx index 950d956af..d120e6ce2 100644 --- a/client/src/components/production-list-columns/production-list-columns.data.jsx +++ b/client/src/components/production-list-columns/production-list-columns.data.jsx @@ -466,8 +466,7 @@ const r = ({ technician, state, activeStatuses, data, bodyshop, refetch, treatme title: i18n.t( InstanceRenderManager({ imex: "jobs.fields.employee_csr", - rome: "jobs.fields.employee_csr_writer", - promanager: "USE_ROME" + rome: "jobs.fields.employee_csr_writer" }) ), dataIndex: "employee_csr", 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..c77cd9ce6 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 @@ -17,6 +17,7 @@ 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 { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -60,8 +61,7 @@ export function ScheduleCalendarHeaderComponent({ loadData.allJobsOut.map((j) => ( - {j.ro_number} ( - {j.status}) + {j.ro_number} ({j.status}) @@ -69,23 +69,18 @@ export function ScheduleCalendarHeaderComponent({ {`(${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.labhrs.aggregate?.sum?.mod_lb_hrs + j.larhrs.aggregate?.sum?.mod_lb_hrs).toFixed( + 1 + )} ${t("general.labels.hours")})`} - - {j.scheduled_completion} - + {j.scheduled_completion} )) ) : ( - - {t("appointments.labels.nocompletingjobs")} - + {t("appointments.labels.nocompletingjobs")} )} @@ -109,10 +104,9 @@ export function ScheduleCalendarHeaderComponent({ {`(${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.labhrs?.aggregate?.sum?.mod_lb_hrs + j.larhrs?.aggregate?.sum?.mod_lb_hrs).toFixed( + 1 + )} ${t("general.labels.hours")})`} {j.scheduled_in} @@ -121,9 +115,7 @@ export function ScheduleCalendarHeaderComponent({ )) ) : ( - - {t("appointments.labels.noarrivingjobs")} - + {t("appointments.labels.noarrivingjobs")} )} @@ -133,33 +125,30 @@ 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.allHoursOut || 0) && loadData.allHoursOut.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)} + + + +
    {Object.keys(ATSToday).map((key, idx) => ( @@ -208,9 +197,16 @@ export function ScheduleCalendarHeaderComponent({
    {label} {InstanceRenderMgr({ - imex: calculating ? : LoadComponent, - rome: "USE_IMEX", - promanager: <> + imex: HasFeatureAccess({ featureName: "smartscheduling", bodyshop }) ? ( + calculating ? ( + + ) : ( + LoadComponent + ) + ) : ( + <> + ), + rome: "USE_IMEX" })}
    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..50cbdd8de 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 @@ -15,6 +15,7 @@ import { Alert, Collapse, Space } from "antd"; import { Trans, useTranslation } from "react-i18next"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; import local from "./localizer"; +import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, @@ -54,58 +55,58 @@ 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 - }} - /> - } - /> - ))} - - ), + {HasFeatureAccess({ featureName: "smartscheduling", bodyshop }) && + 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: - })} + rome: "USE_IMEX" + })} - {InstanceRenderManager({ - imex: ( - <> - {t("appointments.labels.smartscheduling")} - - + {smartOptions.map((d, idx) => ( + - {smartOptions.map((d, idx) => ( - - ))} - - - ), - rome: "USE_IMEX", - promanager: <> - })} - + ))} + + + )} + , diff --git a/client/src/components/shop-info/shop-info.component.jsx b/client/src/components/shop-info/shop-info.component.jsx index fe09d2220..4903348ca 100644 --- a/client/src/components/shop-info/shop-info.component.jsx +++ b/client/src/components/shop-info/shop-info.component.jsx @@ -21,6 +21,7 @@ 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"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -87,18 +88,16 @@ 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: [] - }), + ...(HasFeatureAccess({ featureName: "checklists", bodyshop }) + ? [ + { + key: "checklists", + label: t("bodyshop.labels.checklists"), + children: , + id: "tab-shop-checklists" + } + ] + : []), { key: "laborrates", label: t("bodyshop.labels.laborrates"), @@ -125,29 +124,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 ( - ), - promanager: "USE_ROME" + ) })} {/**/} 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/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/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/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..9f864272f 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" //TODO:AIO Add in the sentry tracker for proman. }), 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..0a9e53ba8 100644 --- a/client/src/pages/accounting-payables/accounting-payables.container.jsx +++ b/client/src/pages/accounting-payables/accounting-payables.container.jsx @@ -31,8 +31,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"); diff --git a/client/src/pages/accounting-payments/accounting-payments.container.jsx b/client/src/pages/accounting-payments/accounting-payments.container.jsx index 77c6157fa..b89c05a09 100644 --- a/client/src/pages/accounting-payments/accounting-payments.container.jsx +++ b/client/src/pages/accounting-payments/accounting-payments.container.jsx @@ -31,8 +31,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"); diff --git a/client/src/pages/accounting-receivables/accounting-receivables.container.jsx b/client/src/pages/accounting-receivables/accounting-receivables.container.jsx index e1485a3a9..67f70837c 100644 --- a/client/src/pages/accounting-receivables/accounting-receivables.container.jsx +++ b/client/src/pages/accounting-receivables/accounting-receivables.container.jsx @@ -31,8 +31,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"); diff --git a/client/src/pages/bills/bills.page.container.jsx b/client/src/pages/bills/bills.page.container.jsx index bf2dde4d5..fe4a6d26c 100644 --- a/client/src/pages/bills/bills.page.container.jsx +++ b/client/src/pages/bills/bills.page.container.jsx @@ -28,8 +28,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"); diff --git a/client/src/pages/contract-create/contract-create.page.container.jsx b/client/src/pages/contract-create/contract-create.page.container.jsx index 7487780ab..57b06a7aa 100644 --- a/client/src/pages/contract-create/contract-create.page.container.jsx +++ b/client/src/pages/contract-create/contract-create.page.container.jsx @@ -5,14 +5,14 @@ import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { useLocation, useNavigate } from "react-router-dom"; import { createStructuredSelector } from "reselect"; +import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import { INSERT_NEW_CONTRACT } from "../../graphql/cccontracts.queries"; import { UPDATE_JOB } from "../../graphql/jobs.queries"; import { setBreadcrumbs, setSelectedHeader } from "../../redux/application/application.actions"; import { selectBodyshop } from "../../redux/user/user.selectors"; -import ContractCreatePageComponent from "./contract-create.page.component"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; -import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component"; +import ContractCreatePageComponent from "./contract-create.page.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop @@ -102,8 +102,7 @@ export function ContractCreatePageContainer({ bodyshop, setBreadcrumbs, setSelec document.title = t("titles.contracts-create", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("newcontract"); diff --git a/client/src/pages/contract-detail/contract-detail.page.container.jsx b/client/src/pages/contract-detail/contract-detail.page.container.jsx index 4b6bd8d84..d4234f76d 100644 --- a/client/src/pages/contract-detail/contract-detail.page.container.jsx +++ b/client/src/pages/contract-detail/contract-detail.page.container.jsx @@ -41,14 +41,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) || "" diff --git a/client/src/pages/contracts/contracts.page.container.jsx b/client/src/pages/contracts/contracts.page.container.jsx index 4653f654d..9865220d1 100644 --- a/client/src/pages/contracts/contracts.page.container.jsx +++ b/client/src/pages/contracts/contracts.page.container.jsx @@ -41,8 +41,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"); diff --git a/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx b/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx index 105d001c2..9d85dc62a 100644 --- a/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx +++ b/client/src/pages/courtesy-car-create/courtesy-car-create.page.container.jsx @@ -55,8 +55,7 @@ export function CourtesyCarCreateContainer({ bodyshop, setBreadcrumbs, setSelect document.title = t("titles.courtesycars-create", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setBreadcrumbs([ @@ -72,11 +71,7 @@ export function CourtesyCarCreateContainer({ bodyshop, setBreadcrumbs, setSelect
- +
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..953bf952e 100644 --- a/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx +++ b/client/src/pages/courtesy-cars/courtesy-cars.page.container.jsx @@ -25,8 +25,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"); 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..b608019ad 100644 --- a/client/src/pages/dashboard/dashboard.container.jsx +++ b/client/src/pages/dashboard/dashboard.container.jsx @@ -19,8 +19,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"); 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..0d0845c99 100644 --- a/client/src/pages/export-logs/export-logs.page.container.jsx +++ b/client/src/pages/export-logs/export-logs.page.container.jsx @@ -19,8 +19,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"); 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..c9eda5480 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 @@ -37,8 +37,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"); 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..44f82fd21 100644 --- a/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx +++ b/client/src/pages/jobs-deliver/jobs-delivery.page.container.jsx @@ -35,8 +35,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"); 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..3592b46ad 100644 --- a/client/src/pages/jobs-detail/jobs-detail.page.component.jsx +++ b/client/src/pages/jobs-detail/jobs-detail.page.component.jsx @@ -390,9 +390,8 @@ export function JobsDetailPage({ ) }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "timetickets", bodyshop }) + rome: "USE_IMEX", + imex: HasFeatureAccess({ featureName: "timetickets", bodyshop }) }) ? [ { @@ -420,9 +419,8 @@ export function JobsDetailPage({ children: }, ...(InstanceRenderManager({ - imex: true, - rome: true, - promanager: HasFeatureAccess({ featureName: "media", bodyshop }) + rome: "USE_IMEX", + imex: HasFeatureAccess({ featureName: "media", bodyshop }) }) ? [ { 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..507a23cf7 100644 --- a/client/src/pages/jobs-intake/jobs-intake.page.container.jsx +++ b/client/src/pages/jobs-intake/jobs-intake.page.container.jsx @@ -37,8 +37,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"); 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 6dfd8af6e..c08f86556 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..2aa77422e 100644 --- a/client/src/pages/payments-all/payments-all.container.page.jsx +++ b/client/src/pages/payments-all/payments-all.container.page.jsx @@ -49,8 +49,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"); diff --git a/client/src/pages/phonebook/phonebook.page.container.jsx b/client/src/pages/phonebook/phonebook.page.container.jsx index fe407cec3..b71e06bf4 100644 --- a/client/src/pages/phonebook/phonebook.page.container.jsx +++ b/client/src/pages/phonebook/phonebook.page.container.jsx @@ -22,8 +22,7 @@ export function PhonebookContainer({ setBreadcrumbs, setSelectedHeader }) { document.title = t("titles.phonebook", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("phonebook"); diff --git a/client/src/pages/production-board/production-board.container.jsx b/client/src/pages/production-board/production-board.container.jsx index f646d16c1..711f9fdc0 100644 --- a/client/src/pages/production-board/production-board.container.jsx +++ b/client/src/pages/production-board/production-board.container.jsx @@ -25,8 +25,7 @@ export function ProductionBoardContainer({ setBreadcrumbs, bodyshop, setSelected document.title = t("titles.productionboard", { app: InstanceRenderManager({ imex: "$t(titles.imexonline)", - rome: "$t(titles.romeonline)", - promanager: "$t(titles.promanager)" + rome: "$t(titles.romeonline)" }) }); setSelectedHeader("productionboard"); 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..3072b7bb4 100644 --- a/client/src/pages/scoreboard/scoreboard.page.container.jsx +++ b/client/src/pages/scoreboard/scoreboard.page.container.jsx @@ -50,8 +50,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"); 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..67f9e2ef2 100644 --- a/client/src/pages/shop-csi/shop-csi.container.page.jsx +++ b/client/src/pages/shop-csi/shop-csi.container.page.jsx @@ -34,8 +34,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"); 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..f8be46b4a 100644 --- a/client/src/pages/tech/tech.page.component.jsx +++ b/client/src/pages/tech/tech.page.component.jsx @@ -50,8 +50,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,8 +76,7 @@ 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..2960a9bba 100644 --- a/client/src/pages/temporary-docs/temporary-docs.container.jsx +++ b/client/src/pages/temporary-docs/temporary-docs.container.jsx @@ -25,8 +25,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"); diff --git a/client/src/pages/time-tickets/time-tickets.container.jsx b/client/src/pages/time-tickets/time-tickets.container.jsx index 766bd62e0..a14c150c1 100644 --- a/client/src/pages/time-tickets/time-tickets.container.jsx +++ b/client/src/pages/time-tickets/time-tickets.container.jsx @@ -58,8 +58,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"); 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..d96734eac 100644 --- a/client/src/pages/tt-approvals/tt-approvals.page.container.jsx +++ b/client/src/pages/tt-approvals/tt-approvals.page.container.jsx @@ -25,8 +25,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"); 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/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 b743b209a..f3e4d30bf 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1257,7 +1257,7 @@ "sunday": "Sunday", "text": "Text", "thursday": "Thursday", - "time": "Select Time", + "time": "Select Time", "total": "Total", "totals": "Totals", "tuesday": "Tuesday", @@ -1342,8 +1342,8 @@ }, "job_lifecycle": { "columns": { - "average_human_readable": "Average Human Readable", - "average_value": "Average Value", + "average_human_readable": "Average Human Readable", + "average_value": "Average Value", "duration": "Duration", "end": "End", "human_readable": "Human Readable", @@ -1877,7 +1877,7 @@ "tax_str_rt": "Storage Tax Rate", "tax_sub_rt": "Sublet Tax Rate", "tax_tow_rt": "Towing Tax Rate", - "tlos_ind": "Total Loss Indicator", + "tlos_ind": "Total Loss Indicator", "towin": "Tow In", "towing_payable": "Towing Payable", "unitnumber": "Unit #", @@ -3432,7 +3432,6 @@ "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", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 4a5a39a9f..8c5cd5f38 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1257,7 +1257,7 @@ "sunday": "", "text": "", "thursday": "", - "time": "", + "time": "", "total": "", "totals": "", "tuesday": "", @@ -1342,8 +1342,8 @@ }, "job_lifecycle": { "columns": { - "average_human_readable": "", - "average_value": "", + "average_human_readable": "", + "average_value": "", "duration": "", "end": "", "human_readable": "", @@ -1877,7 +1877,7 @@ "tax_str_rt": "", "tax_sub_rt": "", "tax_tow_rt": "", - "tlos_ind": "", + "tlos_ind": "", "towin": "", "towing_payable": "Remolque a pagar", "unitnumber": "Unidad #", @@ -3432,7 +3432,6 @@ "productionboard": "", "productionlist": "", "profile": "Mi perfil | {{app}}", - "promanager": "", "readyjobs": "", "resetpassword": "", "resetpasswordvalidate": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index df418a823..67e3f9369 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1257,7 +1257,7 @@ "sunday": "", "text": "", "thursday": "", - "time": "", + "time": "", "total": "", "totals": "", "tuesday": "", @@ -1342,8 +1342,8 @@ }, "job_lifecycle": { "columns": { - "average_human_readable": "", - "average_value": "", + "average_human_readable": "", + "average_value": "", "duration": "", "end": "", "human_readable": "", @@ -1877,7 +1877,7 @@ "tax_str_rt": "", "tax_sub_rt": "", "tax_tow_rt": "", - "tlos_ind": "", + "tlos_ind": "", "towin": "", "towing_payable": "Remorquage à payer", "unitnumber": "Unité #", @@ -3432,7 +3432,6 @@ "productionboard": "", "productionlist": "", "profile": "Mon profil | {{app}}", - "promanager": "", "readyjobs": "", "resetpassword": "", "resetpasswordvalidate": "", 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 9f80986d2..fcf10422d 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 03f56c538..edc9d5683 100644 --- a/client/vite.config.js +++ b/client/vite.config.js @@ -57,13 +57,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: [ @@ -72,7 +72,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" @@ -82,7 +81,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" @@ -92,7 +90,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" @@ -102,7 +99,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/package-lock.json b/package-lock.json index d95191db5..648b3eae6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,8 +63,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", "prettier": "^3.3.3", "source-map-explorer": "^2.5.2" }, @@ -2703,6 +2707,16 @@ "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/types": { "version": "7.17.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", @@ -2735,6 +2749,241 @@ "kuler": "^2.0.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.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "license": "Apache-2.0", + "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/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/eslintrc/node_modules/js-yaml": { + "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": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "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": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "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.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/levn": { + "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.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/prelude-ls": { + "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/@eslint/plugin-kit/node_modules/type-check": { + "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.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/@fastify/busboy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.0.0.tgz", @@ -2939,6 +3188,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", @@ -4191,6 +4506,13 @@ "@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", @@ -4218,6 +4540,13 @@ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" }, + "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", @@ -4364,9 +4693,10 @@ } }, "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" }, @@ -4374,6 +4704,16 @@ "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/acorn-walk": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", @@ -4393,6 +4733,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-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -4438,11 +4795,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==" }, + "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", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -4506,6 +5007,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", @@ -4775,6 +5292,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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", @@ -5236,9 +5763,10 @@ } }, "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", @@ -5308,6 +5836,60 @@ "node": ">= 6" } }, + "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": ">= 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": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", @@ -5395,6 +5977,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/degenerator": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.4.tgz", @@ -5495,6 +6095,19 @@ "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", @@ -5688,6 +6301,67 @@ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" }, + "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": { + "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.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -5709,6 +6383,89 @@ "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.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "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", @@ -5761,6 +6518,273 @@ "node": ">=4.0" } }, + "node_modules/eslint": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", + "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@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.15.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", + "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": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "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" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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/eslint/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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "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": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/levn": { + "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.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/optionator": { + "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.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "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/eslint/node_modules/type-check": { + "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.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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", @@ -5773,6 +6797,42 @@ "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", @@ -5919,7 +6979,14 @@ "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==", - "optional": true + "devOptional": true + }, + "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", @@ -5970,6 +7037,19 @@ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, + "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": ">=16.0.0" + } + }, "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", @@ -6028,6 +7108,23 @@ "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": "12.6.0", "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-12.6.0.tgz", @@ -6052,11 +7149,32 @@ "@google-cloud/storage": "^7.7.0" } }, + "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==" }, + "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", @@ -6081,6 +7199,16 @@ } } }, + "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", @@ -6221,12 +7349,41 @@ "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", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "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", @@ -6353,6 +7510,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-uri": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", @@ -6391,6 +7566,19 @@ "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/minimatch": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", @@ -6406,12 +7594,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.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": { + "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": { @@ -6532,6 +7741,16 @@ "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", @@ -6576,6 +7795,22 @@ "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", @@ -6711,6 +7946,43 @@ ], "license": "BSD-3-Clause" }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "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/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", @@ -6742,6 +8014,21 @@ "node": ">=8" } }, + "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.2", "resolved": "https://registry.npmjs.org/intuit-oauth/-/intuit-oauth-4.1.2.tgz", @@ -6796,11 +8083,135 @@ "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==" }, + "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.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "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", @@ -6816,6 +8227,29 @@ "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.0.2", + "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" + }, + "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", @@ -6824,6 +8258,123 @@ "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.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "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", @@ -6835,6 +8386,97 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "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", @@ -6857,6 +8499,23 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, + "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", @@ -6992,6 +8651,27 @@ "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": "1.1.2", "resolved": "https://registry.npmjs.org/json11/-/json11-1.1.2.tgz", @@ -7048,6 +8728,22 @@ "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/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -7085,6 +8781,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/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", @@ -7116,6 +8822,22 @@ "pick-util": "^1.1.5" } }, + "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", @@ -7198,6 +8920,13 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" }, + "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", @@ -7226,6 +8955,19 @@ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", "optional": true }, + "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": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7471,6 +9213,13 @@ "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==" }, + "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", @@ -7624,9 +9373,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" @@ -7635,6 +9384,87 @@ "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", @@ -7706,7 +9536,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "optional": true, + "devOptional": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7717,6 +9547,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-locate": { + "version": "5.0.0", + "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": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/pac-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", @@ -7754,6 +9600,19 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, + "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/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -7786,6 +9645,16 @@ "node": ">= 0.8" } }, + "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", @@ -7802,6 +9671,13 @@ "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", @@ -7848,6 +9724,16 @@ "@jonkemp/package-utils": "^1.0.8" } }, + "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/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -7905,6 +9791,18 @@ "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", @@ -7994,6 +9892,16 @@ "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", @@ -8071,6 +9979,13 @@ "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", @@ -8127,12 +10042,53 @@ "node": ">=4" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "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", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "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 }, + "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", @@ -8157,6 +10113,34 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "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", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -8217,11 +10201,55 @@ "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==" }, + "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", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", @@ -8362,6 +10390,22 @@ "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", @@ -8877,6 +10921,96 @@ "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", @@ -8908,6 +11042,19 @@ "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", @@ -9004,6 +11151,19 @@ "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", @@ -9262,6 +11422,83 @@ "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.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "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", + "possible-typed-array-names": "^1.0.0" + }, + "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", @@ -9287,6 +11524,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-types": { "version": "6.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", @@ -9309,6 +11562,16 @@ "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", @@ -9429,6 +11692,96 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "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.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "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.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "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", @@ -9700,7 +12053,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "optional": true, + "devOptional": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index f51af45b5..39ee7592b 100644 --- a/package.json +++ b/package.json @@ -73,8 +73,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", "prettier": "^3.3.3", "source-map-explorer": "^2.5.2" } diff --git a/server.js b/server.js index f98ec67da..cd4a8064f 100644 --- a/server.js +++ b/server.js @@ -48,10 +48,6 @@ const SOCKETIO_CORS_ORIGIN = [ "https://www.beta.test.imex.online", "https://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", - "https://promanager.web-est.com", "https://old.imex.online", "https://www.old.imex.online", "https://wsadmin.imex.online", diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js index 043dc8e89..df653e07f 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"); @@ -554,7 +553,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 f78c48b91..6f66d4c6f 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 e24c86174..60b864413 100644 --- a/server/firebase/firebase-handler.js +++ b/server/firebase/firebase-handler.js @@ -57,108 +57,108 @@ const createUser = async (req, res) => { } }; -const sendPromanagerWelcomeEmail = (req, res) => { - const { authid, email } = req.body; +// 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 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." }); - } +// // 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." }); - } +// // 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.` }); - } +// // 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 }); +// // 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 - }); - } - }); -}; +// 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, { diff --git a/server/utils/instanceMgr.js b/server/utils/instanceMgr.js index 6a01e6904..fceb2c786 100644 --- a/server/utils/instanceMgr.js +++ b/server/utils/instanceMgr.js @@ -10,7 +10,11 @@ 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;