feature/IO-3614-March-2026-Tech-Debt - GraphQL-Request backend package bump
This commit is contained in:
3719
client/package-lock.json
generated
3719
client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -2,60 +2,60 @@
|
|||||||
"name": "bodyshop",
|
"name": "bodyshop",
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.12.0"
|
"node": ">=22.0.0"
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"proxy": "http://localhost:4000",
|
"proxy": "http://localhost:4000",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@amplitude/analytics-browser": "^2.36.5",
|
"@amplitude/analytics-browser": "^2.35.3",
|
||||||
"@ant-design/pro-layout": "^7.22.6",
|
"@ant-design/pro-layout": "^7.22.6",
|
||||||
"@apollo/client": "^4.1.6",
|
"@apollo/client": "^4.1.6",
|
||||||
"@dnd-kit/core": "^6.3.1",
|
"@dnd-kit/core": "^6.3.1",
|
||||||
"@dnd-kit/modifiers": "^9.0.0",
|
"@dnd-kit/modifiers": "^9.0.0",
|
||||||
"@dnd-kit/sortable": "^10.0.0",
|
"@dnd-kit/sortable": "^10.0.0",
|
||||||
"@dnd-kit/utilities": "^3.2.2",
|
"@dnd-kit/utilities": "^3.2.2",
|
||||||
"@documenso/embed-react": "^0.6.0",
|
"@documenso/embed-react": "^0.5.1",
|
||||||
"@emotion/is-prop-valid": "^1.4.0",
|
"@emotion/is-prop-valid": "^1.4.0",
|
||||||
"@fingerprintjs/fingerprintjs": "^5.1.0",
|
"@fingerprintjs/fingerprintjs": "^5.0.1",
|
||||||
"@firebase/analytics": "^0.10.20",
|
"@firebase/analytics": "^0.10.19",
|
||||||
"@firebase/app": "^0.14.9",
|
"@firebase/app": "^0.14.8",
|
||||||
"@firebase/auth": "^1.12.1",
|
"@firebase/auth": "^1.12.0",
|
||||||
"@firebase/firestore": "^4.12.0",
|
"@firebase/firestore": "^4.11.0",
|
||||||
"@firebase/messaging": "^0.12.24",
|
"@firebase/messaging": "^0.12.22",
|
||||||
"@jsreport/browser-client": "^3.1.0",
|
"@jsreport/browser-client": "^3.1.0",
|
||||||
"@reduxjs/toolkit": "^2.11.2",
|
"@reduxjs/toolkit": "^2.11.2",
|
||||||
"@sentry/cli": "^3.3.3",
|
"@sentry/cli": "^3.2.2",
|
||||||
"@sentry/react": "^10.43.0",
|
"@sentry/react": "^10.40.0",
|
||||||
"@sentry/vite-plugin": "^4.9.1",
|
"@sentry/vite-plugin": "^4.9.1",
|
||||||
"@splitsoftware/splitio-react": "^2.6.1",
|
"@splitsoftware/splitio-react": "^2.6.1",
|
||||||
"@tanem/react-nprogress": "^5.0.63",
|
"@tanem/react-nprogress": "^5.0.63",
|
||||||
"antd": "^6.3.3",
|
"antd": "^6.3.1",
|
||||||
"apollo-link-logger": "^3.0.0",
|
"apollo-link-logger": "^3.0.0",
|
||||||
"autosize": "^6.0.1",
|
"autosize": "^6.0.1",
|
||||||
"axios": "^1.13.6",
|
"axios": "^1.13.5",
|
||||||
"classnames": "^2.5.1",
|
"classnames": "^2.5.1",
|
||||||
"css-box-model": "^1.2.1",
|
"css-box-model": "^1.2.1",
|
||||||
"dayjs": "^1.11.20",
|
"dayjs": "^1.11.19",
|
||||||
"dayjs-business-days2": "^1.3.2",
|
"dayjs-business-days2": "^1.3.2",
|
||||||
"dinero.js": "^1.9.1",
|
"dinero.js": "^1.9.1",
|
||||||
"dotenv": "^17.3.1",
|
"dotenv": "^17.3.1",
|
||||||
"env-cmd": "^11.0.0",
|
"env-cmd": "^11.0.0",
|
||||||
"exifr": "^7.1.3",
|
"exifr": "^7.1.3",
|
||||||
"graphql": "^16.13.1",
|
"graphql": "^16.13.0",
|
||||||
"graphql-ws": "^6.0.7",
|
"graphql-ws": "^6.0.7",
|
||||||
"i18next": "^25.8.18",
|
"i18next": "^25.8.13",
|
||||||
"i18next-browser-languagedetector": "^8.2.1",
|
"i18next-browser-languagedetector": "^8.2.1",
|
||||||
"immutability-helper": "^3.1.1",
|
"immutability-helper": "^3.1.1",
|
||||||
"libphonenumber-js": "^1.12.40",
|
"libphonenumber-js": "^1.12.38",
|
||||||
"lightningcss": "^1.32.0",
|
"lightningcss": "^1.31.1",
|
||||||
"logrocket": "^12.1.0",
|
"logrocket": "^12.0.0",
|
||||||
"markerjs2": "^2.32.7",
|
"markerjs2": "^2.32.7",
|
||||||
"memoize-one": "^6.0.0",
|
"memoize-one": "^6.0.0",
|
||||||
"normalize-url": "^8.1.1",
|
"normalize-url": "^8.1.1",
|
||||||
"object-hash": "^3.0.0",
|
"object-hash": "^3.0.0",
|
||||||
"phone": "^3.1.71",
|
"phone": "^3.1.71",
|
||||||
"posthog-js": "^1.360.2",
|
"posthog-js": "^1.355.0",
|
||||||
"prop-types": "^15.8.1",
|
"prop-types": "^15.8.1",
|
||||||
"query-string": "^9.3.1",
|
"query-string": "^9.3.1",
|
||||||
"raf-schd": "^4.0.3",
|
"raf-schd": "^4.0.3",
|
||||||
@@ -66,8 +66,8 @@
|
|||||||
"react-dom": "^19.2.4",
|
"react-dom": "^19.2.4",
|
||||||
"react-grid-gallery": "^1.0.1",
|
"react-grid-gallery": "^1.0.1",
|
||||||
"react-grid-layout": "^2.2.2",
|
"react-grid-layout": "^2.2.2",
|
||||||
"react-i18next": "^16.5.8",
|
"react-i18next": "^16.5.4",
|
||||||
"react-icons": "^5.6.0",
|
"react-icons": "^5.5.0",
|
||||||
"react-image-lightbox": "^5.1.4",
|
"react-image-lightbox": "^5.1.4",
|
||||||
"react-markdown": "^10.1.0",
|
"react-markdown": "^10.1.0",
|
||||||
"react-number-format": "^5.4.3",
|
"react-number-format": "^5.4.3",
|
||||||
@@ -77,8 +77,8 @@
|
|||||||
"react-resizable": "^3.1.3",
|
"react-resizable": "^3.1.3",
|
||||||
"react-router-dom": "^7.13.1",
|
"react-router-dom": "^7.13.1",
|
||||||
"react-sticky": "^6.0.3",
|
"react-sticky": "^6.0.3",
|
||||||
"react-virtuoso": "^4.18.3",
|
"react-virtuoso": "^4.18.1",
|
||||||
"recharts": "^3.8.0",
|
"recharts": "^3.7.0",
|
||||||
"redux": "^5.0.1",
|
"redux": "^5.0.1",
|
||||||
"redux-actions": "^3.0.3",
|
"redux-actions": "^3.0.3",
|
||||||
"redux-persist": "^6.0.0",
|
"redux-persist": "^6.0.0",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"redux-state-sync": "^3.1.4",
|
"redux-state-sync": "^3.1.4",
|
||||||
"reselect": "^5.1.1",
|
"reselect": "^5.1.1",
|
||||||
"rxjs": "^7.8.2",
|
"rxjs": "^7.8.2",
|
||||||
"sass": "^1.98.0",
|
"sass": "^1.97.3",
|
||||||
"socket.io-client": "^4.8.3",
|
"socket.io-client": "^4.8.3",
|
||||||
"styled-components": "^6.3.11",
|
"styled-components": "^6.3.11",
|
||||||
"vite-plugin-ejs": "^1.7.0",
|
"vite-plugin-ejs": "^1.7.0",
|
||||||
@@ -141,16 +141,15 @@
|
|||||||
"@ant-design/icons": "^6.1.0",
|
"@ant-design/icons": "^6.1.0",
|
||||||
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
||||||
"@babel/preset-react": "^7.28.5",
|
"@babel/preset-react": "^7.28.5",
|
||||||
"@dotenvx/dotenvx": "^1.55.1",
|
"@dotenvx/dotenvx": "^1.52.0",
|
||||||
"@emotion/babel-plugin": "^11.13.5",
|
"@emotion/babel-plugin": "^11.13.5",
|
||||||
"@emotion/react": "^11.14.0",
|
"@emotion/react": "^11.14.0",
|
||||||
"@eslint/js": "^9.39.2",
|
"@eslint/js": "^9.39.2",
|
||||||
"@playwright/test": "^1.58.2",
|
"@playwright/test": "^1.58.2",
|
||||||
"@rolldown/plugin-babel": "^0.2.1",
|
|
||||||
"@testing-library/dom": "^10.4.1",
|
"@testing-library/dom": "^10.4.1",
|
||||||
"@testing-library/jest-dom": "^6.9.1",
|
"@testing-library/jest-dom": "^6.9.1",
|
||||||
"@testing-library/react": "^16.3.2",
|
"@testing-library/react": "^16.3.2",
|
||||||
"@vitejs/plugin-react": "^6.0.1",
|
"@vitejs/plugin-react": "^5.1.4",
|
||||||
"babel-plugin-react-compiler": "^1.0.0",
|
"babel-plugin-react-compiler": "^1.0.0",
|
||||||
"browserslist": "^4.28.1",
|
"browserslist": "^4.28.1",
|
||||||
"browserslist-to-esbuild": "^2.1.1",
|
"browserslist-to-esbuild": "^2.1.1",
|
||||||
@@ -158,18 +157,21 @@
|
|||||||
"eslint": "^9.39.2",
|
"eslint": "^9.39.2",
|
||||||
"eslint-plugin-react": "^7.37.5",
|
"eslint-plugin-react": "^7.37.5",
|
||||||
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
|
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
|
||||||
"globals": "^17.4.0",
|
"globals": "^17.3.0",
|
||||||
"jsdom": "^28.1.0",
|
"jsdom": "^28.1.0",
|
||||||
"memfs": "^4.56.11",
|
"memfs": "^4.56.10",
|
||||||
"os-browserify": "^0.3.0",
|
"os-browserify": "^0.3.0",
|
||||||
"playwright": "^1.58.2",
|
"playwright": "^1.58.2",
|
||||||
"react-error-overlay": "^6.1.0",
|
"react-error-overlay": "^6.1.0",
|
||||||
"redux-logger": "^3.0.6",
|
"redux-logger": "^3.0.6",
|
||||||
"source-map-explorer": "^2.5.3",
|
"source-map-explorer": "^2.5.3",
|
||||||
"vite": "^8.0.0",
|
"vite": "^7.3.1",
|
||||||
|
"vite-plugin-babel": "^1.5.1",
|
||||||
"vite-plugin-eslint": "^1.8.1",
|
"vite-plugin-eslint": "^1.8.1",
|
||||||
|
"vite-plugin-node-polyfills": "^0.25.0",
|
||||||
"vite-plugin-pwa": "^1.2.0",
|
"vite-plugin-pwa": "^1.2.0",
|
||||||
"vitest": "^4.1.0",
|
"vite-plugin-style-import": "^2.0.0",
|
||||||
|
"vitest": "^4.0.18",
|
||||||
"workbox-window": "^7.4.0"
|
"workbox-window": "^7.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { DownOutlined, UpOutlined } from "@ant-design/icons";
|
import { DownOutlined, UpOutlined } from "@ant-design/icons";
|
||||||
import { Space } from "antd";
|
import { Space } from "antd";
|
||||||
|
|
||||||
export default function FormListMoveArrows({ move, index, total }) {
|
export default function FormListMoveArrows({ move, index, total, orientation = "vertical" }) {
|
||||||
const upDisabled = index === 0;
|
const upDisabled = index === 0;
|
||||||
const downDisabled = index === total - 1;
|
const downDisabled = index === total - 1;
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ export default function FormListMoveArrows({ move, index, total }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Space orientation="vertical">
|
<Space orientation={orientation}>
|
||||||
<UpOutlined disabled={upDisabled} onClick={handleUp} />
|
<UpOutlined disabled={upDisabled} onClick={handleUp} />
|
||||||
<DownOutlined disabled={downDisabled} onClick={handleDown} />
|
<DownOutlined disabled={downDisabled} onClick={handleDown} />
|
||||||
</Space>
|
</Space>
|
||||||
|
|||||||
@@ -52,6 +52,23 @@ const getSplitTotal = (teamMembers = []) =>
|
|||||||
|
|
||||||
const hasExactSplitTotal = (teamMembers = []) => Math.abs(getSplitTotal(teamMembers) - 100) < 0.00001;
|
const hasExactSplitTotal = (teamMembers = []) => Math.abs(getSplitTotal(teamMembers) - 100) < 0.00001;
|
||||||
|
|
||||||
|
const getEmployeeDisplayName = (employees = [], employeeId) => {
|
||||||
|
const employee = employees.find((currentEmployee) => currentEmployee.id === employeeId);
|
||||||
|
if (!employee) return null;
|
||||||
|
|
||||||
|
const fullName = [employee.first_name, employee.last_name].filter(Boolean).join(" ").trim();
|
||||||
|
return fullName || employee.employee_number || null;
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatAllocationPercentage = (percentage) => {
|
||||||
|
if (percentage === null || percentage === undefined || percentage === "") return null;
|
||||||
|
|
||||||
|
const numericValue = Number(percentage);
|
||||||
|
if (!Number.isFinite(numericValue)) return null;
|
||||||
|
|
||||||
|
return `${numericValue.toFixed(2).replace(/\.?0+$/, "")}%`;
|
||||||
|
};
|
||||||
|
|
||||||
export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
@@ -80,6 +97,18 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
|||||||
label: t(labelKey),
|
label: t(labelKey),
|
||||||
value
|
value
|
||||||
}));
|
}));
|
||||||
|
const teamName = Form.useWatch("name", form);
|
||||||
|
const teamMembers = Form.useWatch(["employee_team_members"], form) || [];
|
||||||
|
const teamCardTitle = teamName?.trim() || t("employee_teams.fields.name");
|
||||||
|
|
||||||
|
const getTeamMemberTitle = (teamMember = {}) => {
|
||||||
|
const employeeName = getEmployeeDisplayName(bodyshop.employees, teamMember.employeeid) || t("employee_teams.fields.employeeid");
|
||||||
|
const allocation = formatAllocationPercentage(teamMember.percentage) || t("employee_teams.fields.allocation_percentage");
|
||||||
|
const payoutMethod =
|
||||||
|
payoutMethodOptions.find((option) => option.value === teamMember.payout_method)?.label || t("employee_teams.fields.payout_method");
|
||||||
|
|
||||||
|
return `${employeeName} | ${allocation} | ${payoutMethod}`;
|
||||||
|
};
|
||||||
|
|
||||||
const handleFinish = async ({ employee_team_members = [], ...values }) => {
|
const handleFinish = async ({ employee_team_members = [], ...values }) => {
|
||||||
const normalizedTeamMembers = employee_team_members.map((teamMember) => {
|
const normalizedTeamMembers = employee_team_members.map((teamMember) => {
|
||||||
@@ -172,6 +201,7 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
|
title={teamCardTitle}
|
||||||
extra={
|
extra={
|
||||||
<Button type="primary" onClick={() => form.submit()}>
|
<Button type="primary" onClick={() => form.submit()}>
|
||||||
{t("general.actions.save")}
|
{t("general.actions.save")}
|
||||||
@@ -210,86 +240,97 @@ export function ShopEmployeeTeamsFormComponent({ bodyshop }) {
|
|||||||
{(fields, { add, remove, move }) => {
|
{(fields, { add, remove, move }) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{fields.map((field, index) => (
|
{fields.map((field, index) => {
|
||||||
<Form.Item key={field.key} style={{ padding: 0, margin: 2 }}>
|
const teamMember = normalizeTeamMember(teamMembers[field.name]);
|
||||||
<Form.Item label={t("employees.fields.id")} key={`${index}`} name={[field.name, "id"]} hidden>
|
|
||||||
<Input type="hidden" />
|
|
||||||
</Form.Item>
|
|
||||||
<LayoutFormRow grow>
|
|
||||||
<Form.Item
|
|
||||||
label={t("employee_teams.fields.employeeid")}
|
|
||||||
key={`${index}`}
|
|
||||||
name={[field.name, "employeeid"]}
|
|
||||||
rules={[
|
|
||||||
{
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
<EmployeeSearchSelectComponent options={bodyshop.employees} />
|
|
||||||
</Form.Item>
|
|
||||||
<Form.Item
|
|
||||||
label={t("employee_teams.fields.allocation_percentage")}
|
|
||||||
key={`${index}`}
|
|
||||||
name={[field.name, "percentage"]}
|
|
||||||
rules={[
|
|
||||||
{
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
<InputNumber min={0} max={100} precision={2} />
|
|
||||||
</Form.Item>
|
|
||||||
<Form.Item
|
|
||||||
label={t("employee_teams.fields.payout_method")}
|
|
||||||
key={`${index}-payout-method`}
|
|
||||||
name={[field.name, "payout_method"]}
|
|
||||||
initialValue="hourly"
|
|
||||||
rules={[
|
|
||||||
{
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
<Select options={payoutMethodOptions} />
|
|
||||||
</Form.Item>
|
|
||||||
<Form.Item noStyle dependencies={[["employee_team_members", field.name, "payout_method"]]}>
|
|
||||||
{() => {
|
|
||||||
const payoutMethod =
|
|
||||||
form.getFieldValue(["employee_team_members", field.name, "payout_method"]) || "hourly";
|
|
||||||
const fieldName = payoutMethod === "commission" ? "commission_rates" : "labor_rates";
|
|
||||||
|
|
||||||
return LABOR_TYPES.map((laborType) => (
|
return (
|
||||||
<Form.Item
|
<Form.Item key={field.key} style={{ padding: 0, margin: 2 }}>
|
||||||
label={payoutMethod === "commission" ? `${t(`joblines.fields.lbr_types.${laborType}`)} %` : t(`joblines.fields.lbr_types.${laborType}`)}
|
<Form.Item label={t("employees.fields.id")} key={`${index}`} name={[field.name, "id"]} hidden>
|
||||||
key={`${index}-${fieldName}-${laborType}`}
|
<Input type="hidden" />
|
||||||
name={[field.name, fieldName, laborType]}
|
|
||||||
rules={[
|
|
||||||
{
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
>
|
|
||||||
{payoutMethod === "commission" ? (
|
|
||||||
<InputNumber min={0} max={100} precision={2} />
|
|
||||||
) : (
|
|
||||||
<CurrencyInput />
|
|
||||||
)}
|
|
||||||
</Form.Item>
|
|
||||||
));
|
|
||||||
}}
|
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Space align="center">
|
<LayoutFormRow
|
||||||
<DeleteFilled
|
grow
|
||||||
onClick={() => {
|
title={getTeamMemberTitle(teamMember)}
|
||||||
remove(field.name);
|
extra={
|
||||||
|
<Space align="center" size="small">
|
||||||
|
<Button
|
||||||
|
type="text"
|
||||||
|
icon={<DeleteFilled />}
|
||||||
|
onClick={() => {
|
||||||
|
remove(field.name);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<FormListMoveArrows move={move} index={index} total={fields.length} orientation="horizontal" />
|
||||||
|
</Space>
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Form.Item
|
||||||
|
label={t("employee_teams.fields.employeeid")}
|
||||||
|
key={`${index}`}
|
||||||
|
name={[field.name, "employeeid"]}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<EmployeeSearchSelectComponent options={bodyshop.employees} />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("employee_teams.fields.allocation_percentage")}
|
||||||
|
key={`${index}`}
|
||||||
|
name={[field.name, "percentage"]}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<InputNumber min={0} max={100} precision={2} />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("employee_teams.fields.payout_method")}
|
||||||
|
key={`${index}-payout-method`}
|
||||||
|
name={[field.name, "payout_method"]}
|
||||||
|
initialValue="hourly"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Select options={payoutMethodOptions} />
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item noStyle dependencies={[["employee_team_members", field.name, "payout_method"]]}>
|
||||||
|
{() => {
|
||||||
|
const payoutMethod =
|
||||||
|
form.getFieldValue(["employee_team_members", field.name, "payout_method"]) || "hourly";
|
||||||
|
const fieldName = payoutMethod === "commission" ? "commission_rates" : "labor_rates";
|
||||||
|
|
||||||
|
return LABOR_TYPES.map((laborType) => (
|
||||||
|
<Form.Item
|
||||||
|
label={payoutMethod === "commission" ? `${t(`joblines.fields.lbr_types.${laborType}`)} %` : t(`joblines.fields.lbr_types.${laborType}`)}
|
||||||
|
key={`${index}-${fieldName}-${laborType}`}
|
||||||
|
name={[field.name, fieldName, laborType]}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
{payoutMethod === "commission" ? (
|
||||||
|
<InputNumber min={0} max={100} precision={2} />
|
||||||
|
) : (
|
||||||
|
<CurrencyInput />
|
||||||
|
)}
|
||||||
|
</Form.Item>
|
||||||
|
));
|
||||||
}}
|
}}
|
||||||
/>
|
</Form.Item>
|
||||||
<FormListMoveArrows move={move} index={index} total={fields.length} />
|
</LayoutFormRow>
|
||||||
</Space>
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
);
|
||||||
</Form.Item>
|
})}
|
||||||
))}
|
|
||||||
<Form.Item>
|
<Form.Item>
|
||||||
<Button
|
<Button
|
||||||
type="dashed"
|
type="dashed"
|
||||||
|
|||||||
@@ -47,33 +47,6 @@ const httpsCerts = {
|
|||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
const pathSeparatorPattern = String.raw`[\\/]`;
|
|
||||||
|
|
||||||
const escapeRegex = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
||||||
const packageChunkTest = (packageNames) => {
|
|
||||||
const names = Array.isArray(packageNames) ? packageNames : [packageNames];
|
|
||||||
|
|
||||||
return new RegExp(
|
|
||||||
`${pathSeparatorPattern}node_modules${pathSeparatorPattern}(?:${names
|
|
||||||
.map((name) => name.split("/").map(escapeRegex).join(pathSeparatorPattern))
|
|
||||||
.join("|")})(?:${pathSeparatorPattern}|$)`
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const vendorCodeSplittingGroups = [
|
|
||||||
{ name: "antd", test: packageChunkTest("antd"), priority: 100 },
|
|
||||||
{ name: "react-redux", test: packageChunkTest("react-redux"), priority: 95 },
|
|
||||||
{ name: "redux", test: packageChunkTest("redux"), priority: 90 },
|
|
||||||
{ name: "lodash", test: packageChunkTest("lodash"), priority: 85 },
|
|
||||||
{ name: "@sentry/react", test: packageChunkTest("@sentry/react"), priority: 80 },
|
|
||||||
{ name: "@splitsoftware/splitio-react", test: packageChunkTest("@splitsoftware/splitio-react"), priority: 75 },
|
|
||||||
{ name: "logrocket", test: packageChunkTest("logrocket"), priority: 70 },
|
|
||||||
{ name: "firebase", test: packageChunkTest("@firebase"), priority: 65 },
|
|
||||||
{ name: "markerjs2", test: packageChunkTest("markerjs2"), priority: 60 },
|
|
||||||
{ name: "@apollo/client", test: packageChunkTest("@apollo/client"), priority: 55 },
|
|
||||||
{ name: "libphonenumber-js", test: packageChunkTest("libphonenumber-js"), priority: 50 },
|
|
||||||
{ name: "recharts", test: packageChunkTest("recharts"), priority: 45 }
|
|
||||||
];
|
|
||||||
|
|
||||||
export default defineConfig(({ command, mode }) => {
|
export default defineConfig(({ command, mode }) => {
|
||||||
// React Compiler is always enabled for production/test builds
|
// React Compiler is always enabled for production/test builds
|
||||||
@@ -255,13 +228,27 @@ export default defineConfig(({ command, mode }) => {
|
|||||||
|
|
||||||
build: {
|
build: {
|
||||||
sourcemap: true,
|
sourcemap: true,
|
||||||
rolldownOptions: {
|
rollupOptions: {
|
||||||
output: {
|
output: {
|
||||||
codeSplitting: {
|
manualChunks: {
|
||||||
groups: vendorCodeSplittingGroups
|
antd: ["antd"],
|
||||||
},
|
"react-redux": ["react-redux"],
|
||||||
comments: {
|
redux: ["redux"],
|
||||||
legal: false
|
lodash: ["lodash"],
|
||||||
|
"@sentry/react": ["@sentry/react"],
|
||||||
|
"@splitsoftware/splitio-react": ["@splitsoftware/splitio-react"],
|
||||||
|
logrocket: ["logrocket"],
|
||||||
|
firebase: [
|
||||||
|
"@firebase/analytics",
|
||||||
|
"@firebase/app",
|
||||||
|
"@firebase/firestore",
|
||||||
|
"@firebase/auth",
|
||||||
|
"@firebase/messaging"
|
||||||
|
],
|
||||||
|
markerjs2: ["markerjs2"],
|
||||||
|
"@apollo/client": ["@apollo/client"],
|
||||||
|
"libphonenumber-js": ["libphonenumber-js"],
|
||||||
|
recharts: ["recharts"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -269,6 +256,12 @@ export default defineConfig(({ command, mode }) => {
|
|||||||
cssMinify: "lightningcss"
|
cssMinify: "lightningcss"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Strip console/debugger in prod to shrink bundles
|
||||||
|
esbuild: {
|
||||||
|
// drop: mode === "production" ? ["console", "debugger"] : [],
|
||||||
|
legalComments: "none" // Remove license comments in production
|
||||||
|
},
|
||||||
|
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
include: [
|
include: [
|
||||||
"react",
|
"react",
|
||||||
@@ -291,8 +284,8 @@ export default defineConfig(({ command, mode }) => {
|
|||||||
"@firebase/util",
|
"@firebase/util",
|
||||||
"styled-components"
|
"styled-components"
|
||||||
],
|
],
|
||||||
rolldownOptions: {
|
esbuildOptions: {
|
||||||
moduleTypes: { ".jsx": "jsx", ".tsx": "tsx" }
|
loader: { ".jsx": "jsx", ".tsx": "tsx" }
|
||||||
},
|
},
|
||||||
// Force styled-components to be pre-bundled and deduplicated
|
// Force styled-components to be pre-bundled and deduplicated
|
||||||
force: mode === "development"
|
force: mode === "development"
|
||||||
|
|||||||
140
package-lock.json
generated
140
package-lock.json
generated
@@ -2209,9 +2209,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@hono/node-server": {
|
"node_modules/@hono/node-server": {
|
||||||
"version": "1.19.11",
|
"version": "1.19.9",
|
||||||
"resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.11.tgz",
|
"resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz",
|
||||||
"integrity": "sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==",
|
"integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.14.1"
|
"node": ">=18.14.1"
|
||||||
@@ -2542,9 +2542,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@modelcontextprotocol/sdk/node_modules/jose": {
|
"node_modules/@modelcontextprotocol/sdk/node_modules/jose": {
|
||||||
"version": "6.2.1",
|
"version": "6.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/jose/-/jose-6.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz",
|
||||||
"integrity": "sha512-jUaKr1yrbfaImV7R2TN/b3IcZzsw38/chqMpo2XJ7i2F8AfM/lA4G1goC3JVEwg0H7UldTmSt3P68nt31W7/mw==",
|
"integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/panva"
|
"url": "https://github.com/sponsors/panva"
|
||||||
@@ -3368,9 +3368,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/core": {
|
"node_modules/@smithy/core": {
|
||||||
"version": "3.23.11",
|
"version": "3.23.12",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.11.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.12.tgz",
|
||||||
"integrity": "sha512-952rGf7hBRnhUIaeLp6q4MptKW8sPFe5VvkoZ5qIzFAtx6c/QZ/54FS3yootsyUSf9gJX/NBqEBNdNR7jMIlpQ==",
|
"integrity": "sha512-o9VycsYNtgC+Dy3I0yrwCqv9CWicDnke0L7EVOrZtJpjb2t0EjaEofmMrYc0T1Kn3yk32zm6cspxF9u9Bj7e5w==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/protocol-http": "^5.3.12",
|
"@smithy/protocol-http": "^5.3.12",
|
||||||
@@ -3379,7 +3379,7 @@
|
|||||||
"@smithy/util-base64": "^4.3.2",
|
"@smithy/util-base64": "^4.3.2",
|
||||||
"@smithy/util-body-length-browser": "^4.2.2",
|
"@smithy/util-body-length-browser": "^4.2.2",
|
||||||
"@smithy/util-middleware": "^4.2.12",
|
"@smithy/util-middleware": "^4.2.12",
|
||||||
"@smithy/util-stream": "^4.5.19",
|
"@smithy/util-stream": "^4.5.20",
|
||||||
"@smithy/util-utf8": "^4.2.2",
|
"@smithy/util-utf8": "^4.2.2",
|
||||||
"@smithy/uuid": "^1.1.2",
|
"@smithy/uuid": "^1.1.2",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
@@ -3588,13 +3588,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/middleware-endpoint": {
|
"node_modules/@smithy/middleware-endpoint": {
|
||||||
"version": "4.4.25",
|
"version": "4.4.26",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.25.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.26.tgz",
|
||||||
"integrity": "sha512-dqjLwZs2eBxIUG6Qtw8/YZ4DvzHGIf0DA18wrgtfP6a50UIO7e2nY0FPdcbv5tVJKqWCCU5BmGMOUwT7Puan+A==",
|
"integrity": "sha512-8Qfikvd2GVKSm8S6IbjfwFlRY9VlMrj0Dp4vTwAuhqbX7NhJKE5DQc2bnfJIcY0B+2YKMDBWfvexbSZeejDgeg==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/core": "^3.23.11",
|
"@smithy/core": "^3.23.12",
|
||||||
"@smithy/middleware-serde": "^4.2.14",
|
"@smithy/middleware-serde": "^4.2.15",
|
||||||
"@smithy/node-config-provider": "^4.3.12",
|
"@smithy/node-config-provider": "^4.3.12",
|
||||||
"@smithy/shared-ini-file-loader": "^4.4.7",
|
"@smithy/shared-ini-file-loader": "^4.4.7",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
@@ -3607,15 +3607,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/middleware-retry": {
|
"node_modules/@smithy/middleware-retry": {
|
||||||
"version": "4.4.42",
|
"version": "4.4.43",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.42.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.43.tgz",
|
||||||
"integrity": "sha512-vbwyqHRIpIZutNXZpLAozakzamcINaRCpEy1MYmK6xBeW3xN+TyPRA123GjXnuxZIjc9848MRRCugVMTXxC4Eg==",
|
"integrity": "sha512-ZwsifBdyuNHrFGmbc7bAfP2b54+kt9J2rhFd18ilQGAB+GDiP4SrawqyExbB7v455QVR7Psyhb2kjULvBPIhvA==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/node-config-provider": "^4.3.12",
|
"@smithy/node-config-provider": "^4.3.12",
|
||||||
"@smithy/protocol-http": "^5.3.12",
|
"@smithy/protocol-http": "^5.3.12",
|
||||||
"@smithy/service-error-classification": "^4.2.12",
|
"@smithy/service-error-classification": "^4.2.12",
|
||||||
"@smithy/smithy-client": "^4.12.5",
|
"@smithy/smithy-client": "^4.12.6",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"@smithy/util-middleware": "^4.2.12",
|
"@smithy/util-middleware": "^4.2.12",
|
||||||
"@smithy/util-retry": "^4.2.12",
|
"@smithy/util-retry": "^4.2.12",
|
||||||
@@ -3627,12 +3627,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/middleware-serde": {
|
"node_modules/@smithy/middleware-serde": {
|
||||||
"version": "4.2.14",
|
"version": "4.2.15",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.14.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.15.tgz",
|
||||||
"integrity": "sha512-+CcaLoLa5apzSRtloOyG7lQvkUw2ZDml3hRh4QiG9WyEPfW5Ke/3tPOPiPjUneuT59Tpn8+c3RVaUvvkkwqZwg==",
|
"integrity": "sha512-ExYhcltZSli0pgAKOpQQe1DLFBLryeZ22605y/YS+mQpdNWekum9Ujb/jMKfJKgjtz1AZldtwA/wCYuKJgjjlg==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/core": "^3.23.11",
|
"@smithy/core": "^3.23.12",
|
||||||
"@smithy/protocol-http": "^5.3.12",
|
"@smithy/protocol-http": "^5.3.12",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
@@ -3670,9 +3670,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/node-http-handler": {
|
"node_modules/@smithy/node-http-handler": {
|
||||||
"version": "4.4.16",
|
"version": "4.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.4.16.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.0.tgz",
|
||||||
"integrity": "sha512-ULC8UCS/HivdCB3jhi+kLFYe4B5gxH2gi9vHBfEIiRrT2jfKiZNiETJSlzRtE6B26XbBHjPtc8iZKSNqMol9bw==",
|
"integrity": "sha512-Rnq9vQWiR1+/I6NZZMNzJHV6pZYyEHt2ZnuV3MG8z2NNenC4i/8Kzttz7CjZiHSmsN5frhXhg17z3Zqjjhmz1A==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/abort-controller": "^4.2.12",
|
"@smithy/abort-controller": "^4.2.12",
|
||||||
@@ -3783,17 +3783,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/smithy-client": {
|
"node_modules/@smithy/smithy-client": {
|
||||||
"version": "4.12.5",
|
"version": "4.12.6",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.5.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.6.tgz",
|
||||||
"integrity": "sha512-UqwYawyqSr/aog8mnLnfbPurS0gi4G7IYDcD28cUIBhsvWs1+rQcL2IwkUQ+QZ7dibaoRzhNF99fAQ9AUcO00w==",
|
"integrity": "sha512-aib3f0jiMsJ6+cvDnXipBsGDL7ztknYSVqJs1FdN9P+u9tr/VzOR7iygSh6EUOdaBeMCMSh3N0VdyYsG4o91DQ==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/core": "^3.23.11",
|
"@smithy/core": "^3.23.12",
|
||||||
"@smithy/middleware-endpoint": "^4.4.25",
|
"@smithy/middleware-endpoint": "^4.4.26",
|
||||||
"@smithy/middleware-stack": "^4.2.12",
|
"@smithy/middleware-stack": "^4.2.12",
|
||||||
"@smithy/protocol-http": "^5.3.12",
|
"@smithy/protocol-http": "^5.3.12",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"@smithy/util-stream": "^4.5.19",
|
"@smithy/util-stream": "^4.5.20",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -3890,13 +3890,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/util-defaults-mode-browser": {
|
"node_modules/@smithy/util-defaults-mode-browser": {
|
||||||
"version": "4.3.41",
|
"version": "4.3.42",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.41.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.42.tgz",
|
||||||
"integrity": "sha512-M1w1Ux0rSVvBOxIIiqbxvZvhnjQ+VUjJrugtORE90BbadSTH+jsQL279KRL3Hv0w69rE7EuYkV/4Lepz/NBW9g==",
|
"integrity": "sha512-0vjwmcvkWAUtikXnWIUOyV6IFHTEeQUYh3JUZcDgcszF+hD/StAsQ3rCZNZEPHgI9kVNcbnyc8P2CBHnwgmcwg==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/property-provider": "^4.2.12",
|
"@smithy/property-provider": "^4.2.12",
|
||||||
"@smithy/smithy-client": "^4.12.5",
|
"@smithy/smithy-client": "^4.12.6",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
@@ -3905,16 +3905,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/util-defaults-mode-node": {
|
"node_modules/@smithy/util-defaults-mode-node": {
|
||||||
"version": "4.2.44",
|
"version": "4.2.45",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.44.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.45.tgz",
|
||||||
"integrity": "sha512-YPze3/lD1KmWuZsl9JlfhcgGLX7AXhSoaCDtiPntUjNW5/YY0lOHjkcgxyE9x/h5vvS1fzDifMGjzqnNlNiqOQ==",
|
"integrity": "sha512-q5dOqqfTgUcLe38TAGiFn9srToKj2YCHJ34QGOLzM+xYLLA+qRZv7N+33kl1MERVusue36ZHnlNaNEvY/PzSrw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/config-resolver": "^4.4.11",
|
"@smithy/config-resolver": "^4.4.11",
|
||||||
"@smithy/credential-provider-imds": "^4.2.12",
|
"@smithy/credential-provider-imds": "^4.2.12",
|
||||||
"@smithy/node-config-provider": "^4.3.12",
|
"@smithy/node-config-provider": "^4.3.12",
|
||||||
"@smithy/property-provider": "^4.2.12",
|
"@smithy/property-provider": "^4.2.12",
|
||||||
"@smithy/smithy-client": "^4.12.5",
|
"@smithy/smithy-client": "^4.12.6",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"tslib": "^2.6.2"
|
"tslib": "^2.6.2"
|
||||||
},
|
},
|
||||||
@@ -3976,13 +3976,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@smithy/util-stream": {
|
"node_modules/@smithy/util-stream": {
|
||||||
"version": "4.5.19",
|
"version": "4.5.20",
|
||||||
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.19.tgz",
|
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.20.tgz",
|
||||||
"integrity": "sha512-v4sa+3xTweL1CLO2UP0p7tvIMH/Rq1X4KKOxd568mpe6LSLMQCnDHs4uv7m3ukpl3HvcN2JH6jiCS0SNRXKP/w==",
|
"integrity": "sha512-4yXLm5n/B5SRBR2p8cZ90Sbv4zL4NKsgxdzCzp/83cXw2KxLEumt5p+GAVyRNZgQOSrzXn9ARpO0lUe8XSlSDw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@smithy/fetch-http-handler": "^5.3.15",
|
"@smithy/fetch-http-handler": "^5.3.15",
|
||||||
"@smithy/node-http-handler": "^4.4.16",
|
"@smithy/node-http-handler": "^4.5.0",
|
||||||
"@smithy/types": "^4.13.1",
|
"@smithy/types": "^4.13.1",
|
||||||
"@smithy/util-base64": "^4.3.2",
|
"@smithy/util-base64": "^4.3.2",
|
||||||
"@smithy/util-buffer-from": "^4.2.2",
|
"@smithy/util-buffer-from": "^4.2.2",
|
||||||
@@ -6993,12 +6993,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/express-rate-limit": {
|
"node_modules/express-rate-limit": {
|
||||||
"version": "8.3.1",
|
"version": "8.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz",
|
||||||
"integrity": "sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==",
|
"integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ip-address": "10.1.0"
|
"ip-address": "10.0.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 16"
|
"node": ">= 16"
|
||||||
@@ -7340,15 +7340,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/firebase-admin/node_modules/gaxios": {
|
"node_modules/firebase-admin/node_modules/gaxios": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.4.tgz",
|
||||||
"integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==",
|
"integrity": "sha512-bTIgTsM2bWn3XklZISBTQX7ZSddGW+IO3bMdGaemHZ3tbqExMENHLx6kKZ/KlejgrMtj8q7wBItt51yegqalrA==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"extend": "^3.0.2",
|
"extend": "^3.0.2",
|
||||||
"https-proxy-agent": "^7.0.1",
|
"https-proxy-agent": "^7.0.1",
|
||||||
"node-fetch": "^3.3.2",
|
"node-fetch": "^3.3.2"
|
||||||
"rimraf": "^5.0.1"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
@@ -7369,14 +7368,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/firebase-admin/node_modules/google-auth-library": {
|
"node_modules/firebase-admin/node_modules/google-auth-library": {
|
||||||
"version": "10.6.1",
|
"version": "10.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.6.2.tgz",
|
||||||
"integrity": "sha512-5awwuLrzNol+pFDmKJd0dKtZ0fPLAtoA5p7YO4ODsDu6ONJUVqbYwvv8y2ZBO5MBNp9TJXigB19710kYpBPdtA==",
|
"integrity": "sha512-e27Z6EThmVNNvtYASwQxose/G57rkRuaRbQyxM2bvYLLX/GqWZ5chWq2EBoUchJbCc57eC9ArzO5wMsEmWftCw==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base64-js": "^1.3.0",
|
"base64-js": "^1.3.0",
|
||||||
"ecdsa-sig-formatter": "^1.0.11",
|
"ecdsa-sig-formatter": "^1.0.11",
|
||||||
"gaxios": "7.1.3",
|
"gaxios": "^7.1.4",
|
||||||
"gcp-metadata": "8.1.2",
|
"gcp-metadata": "8.1.2",
|
||||||
"google-logging-utils": "1.1.3",
|
"google-logging-utils": "1.1.3",
|
||||||
"jws": "^4.0.0"
|
"jws": "^4.0.0"
|
||||||
@@ -7412,21 +7411,6 @@
|
|||||||
"url": "https://opencollective.com/node-fetch"
|
"url": "https://opencollective.com/node-fetch"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/firebase-admin/node_modules/rimraf": {
|
|
||||||
"version": "5.0.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
|
|
||||||
"integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"glob": "^10.3.7"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"rimraf": "dist/esm/bin.mjs"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/flat-cache": {
|
"node_modules/flat-cache": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
|
||||||
@@ -8045,9 +8029,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/hono": {
|
"node_modules/hono": {
|
||||||
"version": "4.12.8",
|
"version": "4.12.3",
|
||||||
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.8.tgz",
|
"resolved": "https://registry.npmjs.org/hono/-/hono-4.12.3.tgz",
|
||||||
"integrity": "sha512-VJCEvtrezO1IAR+kqEYnxUOoStaQPGrCmX3j4wDTNOcD1uRPFpGlwQUIW8niPuvHXaTUxeOUl5MMDGrl+tmO9A==",
|
"integrity": "sha512-SFsVSjp8sj5UumXOOFlkZOG6XS9SJDKw0TbwFeV+AJ8xlST8kxK5Z/5EYa111UY8732lK2S/xB653ceuaoGwpg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.9.0"
|
"node": ">=16.9.0"
|
||||||
@@ -8312,9 +8296,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/ip-address": {
|
"node_modules/ip-address": {
|
||||||
"version": "10.1.0",
|
"version": "10.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
|
||||||
"integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
|
"integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 12"
|
"node": ">= 12"
|
||||||
|
|||||||
Reference in New Issue
Block a user