Merged in test-beta (pull request #1290)
Test beta Approved-by: Patrick Fic
This commit is contained in:
126
_reference/reportFiltersAndSorters.md
Normal file
126
_reference/reportFiltersAndSorters.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Filters and Sorters
|
||||
|
||||
This documentation details the schema required for `.filters` files on the report server. It is used to dynamically
|
||||
modify the graphQL query and provide the user more power over their reports.
|
||||
|
||||
## High level Schema Overview
|
||||
|
||||
```javascript
|
||||
const schema = {
|
||||
"filters": [
|
||||
{
|
||||
"name": "jobs.joblines.mod_lb_hrs", // Name and path of the field in the graphQL query
|
||||
"translation": "jobs.joblines.mod_lb_hrs_1", // Translation key for the label used in the GUI
|
||||
"label": "mod_lb_hrs_1", // Label used in the case the GUI does not contain a translation
|
||||
"type": "number" // Type of field, can be number or string currently
|
||||
},
|
||||
// ... more filters
|
||||
],
|
||||
"sorters": [
|
||||
{
|
||||
"name": "jobs.joblines.mod_lb_hrs", // Name and path of the field in the graphQL query
|
||||
"translation": "jobs.joblines.mod_lb_hrs_1", // Translation key for the label used in the GUI
|
||||
"label": "mod_lb_hrs_1", // Label used in the case the GUI does not contain a translation
|
||||
"type": "number" // Type of field, can be number or string currently
|
||||
},
|
||||
// ... more sorters
|
||||
],
|
||||
"dates": {
|
||||
// This is not yet implemented and will be added in a future release
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Filters
|
||||
|
||||
Filters effect the where clause of the graphQL query. They are used to filter the data returned from the server.
|
||||
A note on special notation used in the `name` field.
|
||||
|
||||
### Path without brackets, multi level
|
||||
|
||||
`"name": "jobs.joblines.mod_lb_hrs",`
|
||||
This will produce a where clause at the `joblines` level of the graphQL query,
|
||||
|
||||
```graphql
|
||||
query gendoc_hours_sold_detail_open($starttz: timestamptz!, $endtz: timestamptz!) {
|
||||
jobs(
|
||||
where: {date_invoiced: {_is_null: true}, date_open: {_gte: $starttz, _lte: $endtz}, ro_number: {_is_null: false}, voided: {_eq: false}}
|
||||
) {
|
||||
joblines(
|
||||
order_by: {line_no: asc}
|
||||
where: {removed: {_eq: false}, mod_lb_hrs: {_lt: 3}}
|
||||
) {
|
||||
line_no
|
||||
mod_lbr_ty
|
||||
mod_lb_hrs
|
||||
convertedtolbr
|
||||
convertedtolbr_data
|
||||
}
|
||||
ownr_co_nm
|
||||
ownr_fn
|
||||
ownr_ln
|
||||
plate_no
|
||||
ro_number
|
||||
status
|
||||
v_make_desc
|
||||
v_model_desc
|
||||
v_model_yr
|
||||
v_vin
|
||||
v_color
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Path with brackets,top level
|
||||
|
||||
`"name": "[jobs].joblines.mod_lb_hrs",`
|
||||
This will produce a where clause at the `jobs` level of the graphQL query.
|
||||
|
||||
```graphql
|
||||
query gendoc_hours_sold_detail_open($starttz: timestamptz!, $endtz: timestamptz!) {
|
||||
jobs(
|
||||
where: {date_invoiced: {_is_null: true}, date_open: {_gte: $starttz, _lte: $endtz}, ro_number: {_is_null: false}, voided: {_eq: false}, joblines: {mod_lb_hrs: {_gt: 4}}}
|
||||
) {
|
||||
joblines(
|
||||
order_by: {line_no: asc}
|
||||
where: {removed: {_eq: false}}
|
||||
) {
|
||||
line_no
|
||||
mod_lbr_ty
|
||||
mod_lb_hrs
|
||||
convertedtolbr
|
||||
convertedtolbr_data
|
||||
}
|
||||
ownr_co_nm
|
||||
ownr_fn
|
||||
ownr_ln
|
||||
plate_no
|
||||
ro_number
|
||||
status
|
||||
v_make_desc
|
||||
v_model_desc
|
||||
v_model_yr
|
||||
v_vin
|
||||
v_color
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Known Caveats
|
||||
|
||||
- Will only support two level of nesting in the graphQL query `jobs.joblines.mod_lb_hrs` vs `[jobs].joblines.mod_lb_hrs`
|
||||
is fine, but `jobs.[joblines.].some_table.mod_lb_hrs` is not.
|
||||
- The `dates` object is not yet implemented and will be added in a future release.
|
||||
- The type object must be 'string' or 'number' and is case-sensitive.
|
||||
- The `translation` key is used to look up the label in the GUI, if it is not found, the `label` key is used.
|
||||
- Do not add the ability to filter things that are already filtered as part of the original query, this would be
|
||||
redundant and could cause issues.
|
||||
- Do not add the ability to filter on things like FK constraints, must like the above example.
|
||||
|
||||
## Sorters
|
||||
|
||||
- Sorters follow the same schema as filters, however, they do not do square bracket wrapping to indicate level hoisting,
|
||||
a filter added on `job.md_status` would be added at the top level, and a filter added on `jobs.joblines.mod_lb_hrs`
|
||||
would be added at the `joblines` level.
|
||||
- Most of the reports currently do sorting on a template level, this will need to change to actually see the results
|
||||
using the sorters.
|
||||
556
client/package-lock.json
generated
556
client/package-lock.json
generated
@@ -15,13 +15,13 @@
|
||||
"@craco/craco": "^7.1.0",
|
||||
"@fingerprintjs/fingerprintjs": "^4.2.2",
|
||||
"@jsreport/browser-client": "^3.1.0",
|
||||
"@reduxjs/toolkit": "^2.1.0",
|
||||
"@sentry/cli": "^2.28.0",
|
||||
"@sentry/react": "^7.100.0",
|
||||
"@sentry/tracing": "^7.100.0",
|
||||
"@reduxjs/toolkit": "^2.2.0",
|
||||
"@sentry/cli": "^2.28.6",
|
||||
"@sentry/react": "^7.101.0",
|
||||
"@sentry/tracing": "^7.101.0",
|
||||
"@splitsoftware/splitio-react": "^1.11.0",
|
||||
"@tanem/react-nprogress": "^5.0.51",
|
||||
"antd": "^5.14.0",
|
||||
"antd": "^5.14.1",
|
||||
"apollo-link-logger": "^2.0.1",
|
||||
"apollo-link-sentry": "^3.3.0",
|
||||
"axios": "^1.6.7",
|
||||
@@ -29,7 +29,7 @@
|
||||
"dayjs": "^1.11.10",
|
||||
"dayjs-business-days2": "^1.2.2",
|
||||
"dinero.js": "^1.9.1",
|
||||
"dotenv": "^16.4.1",
|
||||
"dotenv": "^16.4.4",
|
||||
"enquire-js": "^0.2.1",
|
||||
"env-cmd": "^10.1.0",
|
||||
"exifr": "^7.1.3",
|
||||
@@ -37,10 +37,10 @@
|
||||
"graphql": "^16.6.0",
|
||||
"i18next": "^23.8.2",
|
||||
"i18next-browser-languagedetector": "^7.0.2",
|
||||
"jsoneditor": "^10.0.0",
|
||||
"jsoneditor": "^10.0.1",
|
||||
"jsreport-browser-client-dist": "^1.3.0",
|
||||
"libphonenumber-js": "^1.10.55",
|
||||
"logrocket": "^7.0.0",
|
||||
"logrocket": "^8.0.1",
|
||||
"markerjs2": "^2.32.0",
|
||||
"normalize-url": "^8.0.0",
|
||||
"phone": "^3.1.42",
|
||||
@@ -50,17 +50,17 @@
|
||||
"rc-queue-anim": "^2.0.0",
|
||||
"rc-scroll-anim": "^2.7.6",
|
||||
"react": "^18.2.0",
|
||||
"react-big-calendar": "^1.8.7",
|
||||
"react-big-calendar": "^1.10.1",
|
||||
"react-color": "^2.19.3",
|
||||
"react-cookie": "^7.0.2",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-drag-listview": "^2.0.0",
|
||||
"react-grid-gallery": "^1.0.0",
|
||||
"react-grid-layout": "1.3.4",
|
||||
"react-i18next": "^14.0.4",
|
||||
"react-i18next": "^14.0.5",
|
||||
"react-icons": "^5.0.1",
|
||||
"react-image-lightbox": "^5.1.4",
|
||||
"react-intersection-observer": "^9.7.0",
|
||||
"react-intersection-observer": "^9.8.0",
|
||||
"react-markdown": "^9.0.1",
|
||||
"react-number-format": "^5.1.4",
|
||||
"react-redux": "^9.1.0",
|
||||
@@ -70,7 +70,7 @@
|
||||
"react-sticky": "^6.0.3",
|
||||
"react-sublime-video": "^0.2.5",
|
||||
"react-virtualized": "^9.22.5",
|
||||
"recharts": "^2.11.0",
|
||||
"recharts": "^2.12.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"redux-saga": "^1.3.0",
|
||||
@@ -4362,9 +4362,9 @@
|
||||
"integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA=="
|
||||
},
|
||||
"node_modules/@reduxjs/toolkit": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.1.0.tgz",
|
||||
"integrity": "sha512-nfJ/b4ZhzUevQ1ZPKjlDL6CMYxO4o7ZL7OSsvSOxzT/EN11LsBDgTqP7aedHtBrFSVoK7oTP1SbMWUwGb30NLg==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.0.tgz",
|
||||
"integrity": "sha512-ZvPYKfu4kDnAqPhJ1bsis8QFbiQRz3Q2HxW3tw9tVGusPzYKRG7ju1FA+34PGcwCoemjGGv+f/7fEygcRZIwmA==",
|
||||
"dependencies": {
|
||||
"immer": "^10.0.3",
|
||||
"redux": "^5.0.1",
|
||||
@@ -4500,36 +4500,99 @@
|
||||
"integrity": "sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA=="
|
||||
},
|
||||
"node_modules/@sentry-internal/feedback": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.100.0.tgz",
|
||||
"integrity": "sha512-SMW2QhNKOuSjw8oPtvryDlJjiwrNyAKljbgtMk057os/fd8QMp38Yt1ImqLCM4B2rTQZ6REJ6hRGRTRcfqoG+w==",
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.101.0.tgz",
|
||||
"integrity": "sha512-uQBMYhZp/qkBEA/GXRMm1OfSkRkZojxBrCrFmzkWhJzXT+YbL57/M1uCcwkKmorKlg393Soh7MLULInwmcwWkA==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0"
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.100.0.tgz",
|
||||
"integrity": "sha512-DePinj5IgNiC4RZv0yX0DLccMZebfFdKl3zHwDeLBeZqtMz9VrPzchv57IWP+5MI1+iuOn+WOg4oTNBUG6hFRw==",
|
||||
"node_modules/@sentry-internal/feedback/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/replay": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0"
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/feedback/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/feedback/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.101.0.tgz",
|
||||
"integrity": "sha512-fiz4kPpz/j6ZaD+vOcUXuO1HqD49djs4QwyTsRwCCi77EKZOGAaijpqWckDWyZs0dOOnbGGGC5x3o+CfTJcjKA==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/replay": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/replay-canvas/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry-internal/tracing": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.100.0.tgz",
|
||||
"integrity": "sha512-qf4W1STXky9WOQYoPSw2AmCBDK4FzvAyq5yeD2sLU7OCUEfbRUcN0lQljUvmWRKv/jTIAyeU5icDLJPZuR50nA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
@@ -4549,17 +4612,61 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.100.0.tgz",
|
||||
"integrity": "sha512-XpM0jEVe6DJWXjMSOjtJxsSNR/XnJKrlcuyoI4Re3qLG+noEF5QLc0r3VJkySXPRFnmdW05sLswQ6a/n9Sijmg==",
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.101.0.tgz",
|
||||
"integrity": "sha512-wj9YLfS/caR20Yq0hdEjsZHuhnYLU7Ht0SlcJx5MNMnArtmW1k2CWZz3PCqcW/rTZe53npVTe6eMqMccB4aPrQ==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/feedback": "7.100.0",
|
||||
"@sentry-internal/replay-canvas": "7.100.0",
|
||||
"@sentry-internal/tracing": "7.100.0",
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/replay": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0"
|
||||
"@sentry-internal/feedback": "7.101.0",
|
||||
"@sentry-internal/replay-canvas": "7.101.0",
|
||||
"@sentry-internal/tracing": "7.101.0",
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/replay": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser/node_modules/@sentry-internal/tracing": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.101.0.tgz",
|
||||
"integrity": "sha512-rp9oOLQs6vMuzvAnAHRRCNu5Z0o/ZVRI3WPYedxpdMWKD1Z3G9o+0joP+ZIUqHsamWWYiIgPqXgL9AK6AWjFRg==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/browser/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -4632,9 +4739,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.28.0.tgz",
|
||||
"integrity": "sha512-0vdMTeN3Ip1wI9T7F6GupuaOocIrfyHpAN3iUztsO7PY2j7e/+m69DRkU99aPTlmUgQikZjtVaHkTsEMLt3lgA==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.28.6.tgz",
|
||||
"integrity": "sha512-o2Ngz7xXuhwHxMi+4BFgZ4qjkX0tdZeOSIZkFAGnTbRhQe5T8bxq6CcQRLdPhqMgqvDn7XuJ3YlFtD3ZjHvD7g==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
@@ -4650,19 +4757,19 @@
|
||||
"node": ">= 10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@sentry/cli-darwin": "2.28.0",
|
||||
"@sentry/cli-linux-arm": "2.28.0",
|
||||
"@sentry/cli-linux-arm64": "2.28.0",
|
||||
"@sentry/cli-linux-i686": "2.28.0",
|
||||
"@sentry/cli-linux-x64": "2.28.0",
|
||||
"@sentry/cli-win32-i686": "2.28.0",
|
||||
"@sentry/cli-win32-x64": "2.28.0"
|
||||
"@sentry/cli-darwin": "2.28.6",
|
||||
"@sentry/cli-linux-arm": "2.28.6",
|
||||
"@sentry/cli-linux-arm64": "2.28.6",
|
||||
"@sentry/cli-linux-i686": "2.28.6",
|
||||
"@sentry/cli-linux-x64": "2.28.6",
|
||||
"@sentry/cli-win32-i686": "2.28.6",
|
||||
"@sentry/cli-win32-x64": "2.28.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-darwin": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.28.0.tgz",
|
||||
"integrity": "sha512-GgpayUQcGjT55Dc7oojjbqIYIUaBAr4za7D9yU5foMTJ6QjMTovmtE1bVj4bVKzK+0aIiZvZ2dg2g6jF0iGqfg==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.28.6.tgz",
|
||||
"integrity": "sha512-KRf0VvTltHQ5gA7CdbUkaIp222LAk/f1+KqpDzO6nB/jC/tL4sfiy6YyM4uiH6IbVEudB8WpHCECiatmyAqMBA==",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@@ -4672,9 +4779,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-linux-arm": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.28.0.tgz",
|
||||
"integrity": "sha512-hjCRyZBNri+gNoMO22g2qevKcUOnDGhTjmyq14q2rXT0KHb4LjyMpebSgE63YTLDj/qxq4MSq8kcjD/jDzSpLw==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.28.6.tgz",
|
||||
"integrity": "sha512-ANG7U47yEHD1g3JrfhpT4/MclEvmDZhctWgSP5gVw5X4AlcI87E6dTqccnLgvZjiIAQTaJJAZuSHVVF3Jk403w==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@@ -4688,9 +4795,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-linux-arm64": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.28.0.tgz",
|
||||
"integrity": "sha512-QZtl4dyVMrsWEuRCN8h3RMQSjekM6LmdAWiEIxCgVMvTueau31EQz1jokGpaYotAsWK2GyzFALiCA3QwMCTtnA==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.28.6.tgz",
|
||||
"integrity": "sha512-caMDt37FI752n4/3pVltDjlrRlPFCOxK4PHvoZGQ3KFMsai0ZhE/0CLBUMQqfZf0M0r8KB2x7wqLm7xSELjefQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -4704,9 +4811,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-linux-i686": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.28.0.tgz",
|
||||
"integrity": "sha512-fgT0G6b1OCBHtrIClNrFfO8w5pVw7yIqtVsq4Bf+FJOwkD2buaPx1Qt66aGP+3+AexXO5pXfagN4+ykSsKqKZA==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.28.6.tgz",
|
||||
"integrity": "sha512-Tj1+GMc6lFsDRquOqaGKXFpW9QbmNK4TSfynkWKiJxdTEn5jSMlXXfr0r9OQrxu3dCCqEHkhEyU63NYVpgxIPw==",
|
||||
"cpu": [
|
||||
"x86",
|
||||
"ia32"
|
||||
@@ -4721,9 +4828,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-linux-x64": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.28.0.tgz",
|
||||
"integrity": "sha512-mrqbxpo6dF8iC4nz0+TS8ymIeNKy6gngcmlRVfOBuVEP9+Ry8HAeIzuKwbt4QAA6lwKCbPsEwK5ZLsrJEJIC6A==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.28.6.tgz",
|
||||
"integrity": "sha512-Dt/Xz784w/z3tEObfyJEMmRIzn0D5qoK53H9kZ6e0yNvJOSKNCSOq5cQk4n1/qeG0K/6SU9dirmvHwFUiVNyYg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -4737,9 +4844,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-win32-i686": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.28.0.tgz",
|
||||
"integrity": "sha512-yzji557eqz4XW7z8k0LF4LiIwFAqxPlpVnoeN8ntk8hi/ehXm9AdvPqA+bw7cRK5iu4/Tqr4OJeGPbcI5iKpgQ==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.28.6.tgz",
|
||||
"integrity": "sha512-zkpWtvY3kt+ogVaAbfFr2MEkgMMHJNJUnNMO8Ixce9gh38sybIkDkZNFnVPBXMClJV0APa4QH0EwumYBFZUMuQ==",
|
||||
"cpu": [
|
||||
"x86",
|
||||
"ia32"
|
||||
@@ -4753,9 +4860,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/cli-win32-x64": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.28.0.tgz",
|
||||
"integrity": "sha512-5frag3uV+niuMVYQ3ME5Nwlv5uftV88xDUyaCe1UD9jfM8WqJPgvQYUNPgBQKynxwLAUp5zXII+47Vnn8mriOA==",
|
||||
"version": "2.28.6",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.28.6.tgz",
|
||||
"integrity": "sha512-TG2YzZ9JMeNFzbicdr5fbtsusVGACbrEfHmPgzWGDeLUP90mZxiMTjkXsE1X/5jQEQjB2+fyfXloba/Ugo51hA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -4771,6 +4878,7 @@
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.100.0.tgz",
|
||||
"integrity": "sha512-eWRPuP0Zdj4a2F7SybqNjf13LGOVgGwvW6sojweQp9oxGAfCPp/EMDGBhlpYbMJeLbzmqzJ4ZFHIedaiEC+7kg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0"
|
||||
@@ -4795,14 +4903,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/react": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.100.0.tgz",
|
||||
"integrity": "sha512-IveXfTHUx9/fk4VvIL3htfmU4rynYHl+7R44UExbKcLOmUffgi6FscmI1otdd3tQvTE0OH85vCP6+ZR6kQgHQw==",
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.101.0.tgz",
|
||||
"integrity": "sha512-EjzkuUzLhE1glUsLPcLhmc8Wg7D5qfKQ08Vbcw+GsE7aLnhWrPTHexkf2NPNeTkgUxbWToJn6PWCodICo5YYbw==",
|
||||
"dependencies": {
|
||||
"@sentry/browser": "7.100.0",
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0",
|
||||
"@sentry/browser": "7.101.0",
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0",
|
||||
"hoist-non-react-statics": "^3.3.2"
|
||||
},
|
||||
"engines": {
|
||||
@@ -4812,26 +4920,145 @@
|
||||
"react": "15.x || 16.x || 17.x || 18.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/replay": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.100.0.tgz",
|
||||
"integrity": "sha512-6Yo56J+x+eedaMXri8pPlFxXOofnSXVdsUuFj+kJ7lC/qHrwIbgC5g1ONEK/WlYwpVH4gA0aNnCa5AOkMu+ZTg==",
|
||||
"node_modules/@sentry/react/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/tracing": "7.100.0",
|
||||
"@sentry/core": "7.100.0",
|
||||
"@sentry/types": "7.100.0",
|
||||
"@sentry/utils": "7.100.0"
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/react/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/react/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/replay": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.101.0.tgz",
|
||||
"integrity": "sha512-DSWkGKI/QhCAY+qm4mBnPob3/YsewisskVTak7KMDotJ75H85WFJhVwOMtvaEWIzVezCOItPv7ql51jTwhR3wA==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/tracing": "7.101.0",
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing": {
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.100.0.tgz",
|
||||
"integrity": "sha512-k8Zzmqu/11MRiMZO8s/d41pcfdR5FNm/sZXB0e+0EWsFlXCLl1vYd67sK0yyll7UzTFd4x8+XqXlsXEp+ulUuA==",
|
||||
"node_modules/@sentry/replay/node_modules/@sentry-internal/tracing": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.101.0.tgz",
|
||||
"integrity": "sha512-rp9oOLQs6vMuzvAnAHRRCNu5Z0o/ZVRI3WPYedxpdMWKD1Z3G9o+0joP+ZIUqHsamWWYiIgPqXgL9AK6AWjFRg==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/tracing": "7.100.0"
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/replay/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/replay/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/replay/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.101.0.tgz",
|
||||
"integrity": "sha512-/TRn3KRuRAamCstw8rRVyL5nlXlL+zf9QNN4IxGFwc7lka8c4d7i5neIWaOrUQvrAlh2gbxbHwt7POIguoed2g==",
|
||||
"dependencies": {
|
||||
"@sentry-internal/tracing": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry-internal/tracing": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.101.0.tgz",
|
||||
"integrity": "sha512-rp9oOLQs6vMuzvAnAHRRCNu5Z0o/ZVRI3WPYedxpdMWKD1Z3G9o+0joP+ZIUqHsamWWYiIgPqXgL9AK6AWjFRg==",
|
||||
"dependencies": {
|
||||
"@sentry/core": "7.101.0",
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/core": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.101.0.tgz",
|
||||
"integrity": "sha512-dRNrNV5OLGARkOGgxJsVDhA98Pev5G1LVJcud5E83cRg49BCUx2riqEtDP6iIS1nvem6cApkSnLC1kvl/T5/Cw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0",
|
||||
"@sentry/utils": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/types": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.101.0.tgz",
|
||||
"integrity": "sha512-YC+ltO/AlbEyJHjCUYQ4is1HcDT2zSMuLkIAcyQmK7fUdlGT4iR5sfENriY9ZopYHgjPdJKfhI8ohScam7zp/A==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@sentry/tracing/node_modules/@sentry/utils": {
|
||||
"version": "7.101.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.101.0.tgz",
|
||||
"integrity": "sha512-px1NUkCLsD9UKLE4W4DghpyzmAVHgYhskrjRt30ubyUKqlggtHkOXRvS8MjuWowR/i0wF0GuTCbU9StBd7JMrw==",
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.101.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@@ -4841,6 +5068,7 @@
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.100.0.tgz",
|
||||
"integrity": "sha512-c+RHwZwpKeBk7h8sUX4nQcelxBz8ViCojifnbEe3tcn8O15HOLvZqRKgLLOiff3MoErxiv4oxs0sPbEFRm/IvA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
@@ -4849,6 +5077,7 @@
|
||||
"version": "7.100.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.100.0.tgz",
|
||||
"integrity": "sha512-LAhZMEGq3C125prZN/ShqeXpRfdfgJkl9RAKjfq8cmMFsF7nsF72dEHZgIwrZ0lgNmtaWAB83AwJcyN83RwOxQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@sentry/types": "7.100.0"
|
||||
},
|
||||
@@ -6214,9 +6443,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ace-builds": {
|
||||
"version": "1.32.2",
|
||||
"resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.32.2.tgz",
|
||||
"integrity": "sha512-mnJAc803p+7eeDt07r6XI7ufV7VdkpPq4gJZT8Jb3QsowkaBTVy4tdBgPrVT0WbXLm0toyEQXURKSVNj/7dfJQ=="
|
||||
"version": "1.32.6",
|
||||
"resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.32.6.tgz",
|
||||
"integrity": "sha512-dO5BnyDOhCnznhOpILzXq4jqkbhRXxNkf3BuVTmyxGyRLrhddfdyk6xXgy+7A8LENrcYoFi/sIxMuH3qjNUN4w=="
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.11.2",
|
||||
@@ -6452,9 +6681,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/antd": {
|
||||
"version": "5.14.0",
|
||||
"resolved": "https://registry.npmjs.org/antd/-/antd-5.14.0.tgz",
|
||||
"integrity": "sha512-LdRJnYd8dTykR2xr483zNE0mBKmWHMLqmjkfcX4otQRD0kaZjOwSmN74vMC70jnMM8oqhWILFjWy3dEy/E1W6w==",
|
||||
"version": "5.14.1",
|
||||
"resolved": "https://registry.npmjs.org/antd/-/antd-5.14.1.tgz",
|
||||
"integrity": "sha512-P0Bwt9NKSZqnEJ0QAyAb13ay34FjOKsz+KEp/ts+feYsynhUxF7/Ay6d1jS6ZcNpcs+JWTlLKO59YFZ3tX07wQ==",
|
||||
"dependencies": {
|
||||
"@ant-design/colors": "^7.0.2",
|
||||
"@ant-design/cssinjs": "^1.18.4",
|
||||
@@ -6484,7 +6713,7 @@
|
||||
"rc-motion": "^2.9.0",
|
||||
"rc-notification": "~5.3.0",
|
||||
"rc-pagination": "~4.0.4",
|
||||
"rc-picker": "~4.0.0-alpha.43",
|
||||
"rc-picker": "~4.1.1",
|
||||
"rc-progress": "~3.5.1",
|
||||
"rc-rate": "~2.12.0",
|
||||
"rc-resize-observer": "^1.4.0",
|
||||
@@ -9479,14 +9708,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz",
|
||||
"integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==",
|
||||
"version": "16.4.4",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz",
|
||||
"integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/motdotla/dotenv?sponsor=1"
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv-expand": {
|
||||
@@ -10788,6 +11017,14 @@
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
||||
},
|
||||
"node_modules/fast-equals": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz",
|
||||
"integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
||||
@@ -14282,16 +14519,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jsoneditor": {
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsoneditor/-/jsoneditor-10.0.0.tgz",
|
||||
"integrity": "sha512-yh/kj/Ecxacj7ZG2ynmJvHcESgdHiAe1N7iKUVIYFpeP4/rwp87yua2y0BDayyY6uJz01KgRvdl4W1Wt94EkOQ==",
|
||||
"version": "10.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsoneditor/-/jsoneditor-10.0.1.tgz",
|
||||
"integrity": "sha512-a9eNs1XegXBrZSMakpDQTCx6z2GyjnbfxDJ9vd2Vn+lD2zORbQ7vyTqSZLI7Ihz8qel1C8KHFy7EFxtp3d++RA==",
|
||||
"dependencies": {
|
||||
"ace-builds": "^1.32.2",
|
||||
"ace-builds": "^1.32.6",
|
||||
"ajv": "^6.12.6",
|
||||
"javascript-natural-sort": "^0.7.1",
|
||||
"jmespath": "^0.16.0",
|
||||
"json-source-map": "^0.6.1",
|
||||
"jsonrepair": "3.5.0",
|
||||
"jsonrepair": "^3.5.1",
|
||||
"mobius1-selectr": "^2.4.13",
|
||||
"picomodal": "^3.0.0",
|
||||
"vanilla-picker": "^2.12.2"
|
||||
@@ -14339,9 +14576,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jsonrepair": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonrepair/-/jsonrepair-3.5.0.tgz",
|
||||
"integrity": "sha512-SavvDsUP9Xnqo2MoC6Wl6zNyX3f+I5199hRbXBtAITyP2NTPyAgyx5xM0bgcIljRjzsIvOBANbgfWe8XXlyeLA==",
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonrepair/-/jsonrepair-3.6.0.tgz",
|
||||
"integrity": "sha512-ZvOmoq35LhlDaf1W3uT7e17Bh2dYbln1+pdJ1KUIMkRAoUC4mvXX+dbr9Ih6dDmYvB0mdijAucyPk4xX1cEjww==",
|
||||
"bin": {
|
||||
"jsonrepair": "bin/cli.js"
|
||||
}
|
||||
@@ -14749,9 +14986,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/logrocket": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/logrocket/-/logrocket-7.0.0.tgz",
|
||||
"integrity": "sha512-IvM4RKYTAByljKTWCx/Q+58Nvt4Dmf/0PIHLfall3kqDtxiDSVKSzu3/bvGb3riHE/C7xY3wzLxy6v+Wui1NUQ=="
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/logrocket/-/logrocket-8.0.1.tgz",
|
||||
"integrity": "sha512-bksVbjcoNpJjwn3EfB4D0JxXBxozPTAwEkRzchfl/nnVuCMp9zlUz4pkp7DgA7FVi4rzjzH4zriam1u3vej+hg=="
|
||||
},
|
||||
"node_modules/long": {
|
||||
"version": "5.2.3",
|
||||
@@ -18395,9 +18632,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rc-picker": {
|
||||
"version": "4.0.0-alpha.44",
|
||||
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.0.0-alpha.44.tgz",
|
||||
"integrity": "sha512-OvzzTS4UZDT1qRfv4PRK/+LDpXWJ6sD0zv5LPC7fvprihT/YVvjrOQPicWLlw5GqrrqP4hqbQkWB4KXDNlb5ag==",
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.1.1.tgz",
|
||||
"integrity": "sha512-H99qaHUepHjHnAqMLiftJEATXRuHJZcUyFoRkyIqUvTHVGnx/uHxFFNm7QIu1valCpfwdsGWQxiWgn9CAxvlvA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.10.1",
|
||||
"@rc-component/trigger": "^1.5.0",
|
||||
@@ -18855,9 +19092,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-big-calendar": {
|
||||
"version": "1.8.7",
|
||||
"resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.8.7.tgz",
|
||||
"integrity": "sha512-qgxQyPIYoWM+TLbGNlEUIEyNE6USAAc7LEAhtUKzJgoP4XsgpnqXJ46Ub298mRzMRM6crRweh3AywDjl5GbHnQ==",
|
||||
"version": "1.10.1",
|
||||
"resolved": "https://registry.npmjs.org/react-big-calendar/-/react-big-calendar-1.10.1.tgz",
|
||||
"integrity": "sha512-VRa6FkjGDqGrO9A9hWqwtEq1x3hL7oz1JG8NCjdV0O7TZ8lCFef/tJNUbidjlWj9FS1PxA7y94sAYDSsGUDa1w==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.20.7",
|
||||
"clsx": "^1.2.1",
|
||||
@@ -19033,9 +19270,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-i18next": {
|
||||
"version": "14.0.4",
|
||||
"resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.4.tgz",
|
||||
"integrity": "sha512-8a20OOCOcUiuM+FVfgOGVrgG6FdoRRzZvdPFdMJ0LX792myAfzZTbRoHchoSNZiXF488gOxaif19etlu71eAKg==",
|
||||
"version": "14.0.5",
|
||||
"resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.5.tgz",
|
||||
"integrity": "sha512-5+bQSeEtgJrMBABBL5lO7jPdSNAbeAZ+MlFWDw//7FnVacuVu3l9EeWFzBQvZsKy+cihkbThWOAThEdH8YjGEw==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.23.9",
|
||||
"html-parse-stringify": "^3.0.1"
|
||||
@@ -19076,9 +19313,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-intersection-observer": {
|
||||
"version": "9.7.0",
|
||||
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.7.0.tgz",
|
||||
"integrity": "sha512-euleEjBVaMRwSOMNVcMX5WGn74GfZ9I78nx9SUb5a0eXd0IhegjJcUliSO9Jd+xiaZ5rgFvbGoVln66lpMyUUg==",
|
||||
"version": "9.8.0",
|
||||
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.8.0.tgz",
|
||||
"integrity": "sha512-wXHvMQUsTagh3X0Z6jDtGkIXc3VVCd2tjDRYR9kII3GKrZr0XF0xtpfdamo2n8BSF+zzfeeBVOTjxZWpBp9X0g==",
|
||||
"peerDependencies": {
|
||||
"react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
@@ -19343,48 +19580,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react-smooth": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.5.tgz",
|
||||
"integrity": "sha512-BMP2Ad42tD60h0JW6BFaib+RJuV5dsXJK9Baxiv/HlNFjvRLqA9xrNKxVWnUIZPQfzUwGXIlU/dSYLU+54YGQA==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.0.tgz",
|
||||
"integrity": "sha512-2NMXOBY1uVUQx1jBeENGA497HK20y6CPGYL1ZnJLeoQ8rrc3UfmOM82sRxtzpcoCkUMy4CS0RGylfuVhuFjBgg==",
|
||||
"dependencies": {
|
||||
"fast-equals": "^5.0.0",
|
||||
"react-transition-group": "2.9.0"
|
||||
"fast-equals": "^5.0.1",
|
||||
"prop-types": "^15.8.1",
|
||||
"react-transition-group": "^4.4.5"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prop-types": "^15.6.0",
|
||||
"react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-smooth/node_modules/dom-helpers": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
|
||||
"integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/react-smooth/node_modules/fast-equals": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz",
|
||||
"integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-smooth/node_modules/react-transition-group": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
|
||||
"integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
|
||||
"dependencies": {
|
||||
"dom-helpers": "^3.4.0",
|
||||
"loose-envify": "^1.4.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"react-lifecycles-compat": "^3.0.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=15.0.0",
|
||||
"react-dom": ">=15.0.0"
|
||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-sticky": {
|
||||
@@ -19427,6 +19633,21 @@
|
||||
"resolved": "https://registry.npmjs.org/style-utils/-/style-utils-0.1.24.tgz",
|
||||
"integrity": "sha512-MVZSKubpU/vIfpmOsi8/0ckWxb0WmGBmyNoEDGWZM9cM8n8sCL6DJftl3lEf8Uy5zKQ9+O1XdJxscWTDosCQpQ=="
|
||||
},
|
||||
"node_modules/react-transition-group": {
|
||||
"version": "4.4.5",
|
||||
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"dom-helpers": "^5.0.1",
|
||||
"loose-envify": "^1.4.0",
|
||||
"prop-types": "^15.6.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.6.0",
|
||||
"react-dom": ">=16.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-virtualized": {
|
||||
"version": "9.22.5",
|
||||
"resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.5.tgz",
|
||||
@@ -19485,15 +19706,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/recharts": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.11.0.tgz",
|
||||
"integrity": "sha512-5s+u1m5Hwxb2nh0LABkE3TS/lFqFHyWl7FnPbQhHobbQQia4ih1t3o3+ikPYr31Ns+kYe4FASIthKeKi/YYvMg==",
|
||||
"version": "2.12.0",
|
||||
"resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.0.tgz",
|
||||
"integrity": "sha512-rVNcdNQ5b7+40Ue7mcEKZJyEv+3SUk2bDEVvOyXPDXXVE7TU3lrvnJUgAvO36hSzhRP2DnAamKXvHLFIFOU0Ww==",
|
||||
"dependencies": {
|
||||
"clsx": "^2.0.0",
|
||||
"eventemitter3": "^4.0.1",
|
||||
"lodash": "^4.17.19",
|
||||
"react-is": "^16.10.2",
|
||||
"react-smooth": "^2.0.5",
|
||||
"react-smooth": "^4.0.0",
|
||||
"recharts-scale": "^0.4.4",
|
||||
"tiny-invariant": "^1.3.1",
|
||||
"victory-vendor": "^36.6.8"
|
||||
@@ -19502,7 +19723,6 @@
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prop-types": "^15.6.0",
|
||||
"react": "^16.0.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
"@craco/craco": "^7.1.0",
|
||||
"@fingerprintjs/fingerprintjs": "^4.2.2",
|
||||
"@jsreport/browser-client": "^3.1.0",
|
||||
"@reduxjs/toolkit": "^2.1.0",
|
||||
"@sentry/cli": "^2.28.0",
|
||||
"@sentry/react": "^7.100.0",
|
||||
"@sentry/tracing": "^7.100.0",
|
||||
"@reduxjs/toolkit": "^2.2.0",
|
||||
"@sentry/cli": "^2.28.6",
|
||||
"@sentry/react": "^7.101.0",
|
||||
"@sentry/tracing": "^7.101.0",
|
||||
"@splitsoftware/splitio-react": "^1.11.0",
|
||||
"@tanem/react-nprogress": "^5.0.51",
|
||||
"antd": "^5.14.0",
|
||||
"antd": "^5.14.1",
|
||||
"apollo-link-logger": "^2.0.1",
|
||||
"apollo-link-sentry": "^3.3.0",
|
||||
"axios": "^1.6.7",
|
||||
@@ -25,7 +25,7 @@
|
||||
"dayjs": "^1.11.10",
|
||||
"dayjs-business-days2": "^1.2.2",
|
||||
"dinero.js": "^1.9.1",
|
||||
"dotenv": "^16.4.1",
|
||||
"dotenv": "^16.4.4",
|
||||
"enquire-js": "^0.2.1",
|
||||
"env-cmd": "^10.1.0",
|
||||
"exifr": "^7.1.3",
|
||||
@@ -33,10 +33,10 @@
|
||||
"graphql": "^16.6.0",
|
||||
"i18next": "^23.8.2",
|
||||
"i18next-browser-languagedetector": "^7.0.2",
|
||||
"jsoneditor": "^10.0.0",
|
||||
"jsoneditor": "^10.0.1",
|
||||
"jsreport-browser-client-dist": "^1.3.0",
|
||||
"libphonenumber-js": "^1.10.55",
|
||||
"logrocket": "^7.0.0",
|
||||
"logrocket": "^8.0.1",
|
||||
"markerjs2": "^2.32.0",
|
||||
"normalize-url": "^8.0.0",
|
||||
"phone": "^3.1.42",
|
||||
@@ -46,17 +46,17 @@
|
||||
"rc-queue-anim": "^2.0.0",
|
||||
"rc-scroll-anim": "^2.7.6",
|
||||
"react": "^18.2.0",
|
||||
"react-big-calendar": "^1.8.7",
|
||||
"react-big-calendar": "^1.10.1",
|
||||
"react-color": "^2.19.3",
|
||||
"react-cookie": "^7.0.2",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-drag-listview": "^2.0.0",
|
||||
"react-grid-gallery": "^1.0.0",
|
||||
"react-grid-layout": "1.3.4",
|
||||
"react-i18next": "^14.0.4",
|
||||
"react-i18next": "^14.0.5",
|
||||
"react-icons": "^5.0.1",
|
||||
"react-image-lightbox": "^5.1.4",
|
||||
"react-intersection-observer": "^9.7.0",
|
||||
"react-intersection-observer": "^9.8.0",
|
||||
"react-markdown": "^9.0.1",
|
||||
"react-number-format": "^5.1.4",
|
||||
"react-redux": "^9.1.0",
|
||||
@@ -66,7 +66,7 @@
|
||||
"react-sticky": "^6.0.3",
|
||||
"react-sublime-video": "^0.2.5",
|
||||
"react-virtualized": "^9.22.5",
|
||||
"recharts": "^2.11.0",
|
||||
"recharts": "^2.12.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"redux-saga": "^1.3.0",
|
||||
|
||||
@@ -42,6 +42,7 @@ export default function ScoreboardAddButton({
|
||||
|
||||
const handleFinish = async (values) => {
|
||||
logImEXEvent("job_close_add_to_scoreboard");
|
||||
values.date = dayjs(values.date).format("YYYY-MM-DD");
|
||||
|
||||
setLoading(true);
|
||||
let result;
|
||||
@@ -169,7 +170,7 @@ export default function ScoreboardAddButton({
|
||||
return acc + job.lbr_adjustments[val];
|
||||
}, 0);
|
||||
form.setFieldsValue({
|
||||
date: new dayjs(),
|
||||
date: dayjs(),
|
||||
bodyhrs: Math.round(v.bodyhrs * 10) / 10,
|
||||
painthrs: Math.round(v.painthrs * 10) / 10,
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {gql, useApolloClient, useLazyQuery, useMutation, useQuery,} from "@apollo/client";
|
||||
import {useSplitTreatments} from "@splitsoftware/splitio-react";
|
||||
import {Col, notification, Row} from "antd";
|
||||
import {Col, Row, notification} from "antd";
|
||||
import Axios from "axios";
|
||||
import Dinero from "dinero.js";
|
||||
import dayjs from "../../utils/day";
|
||||
@@ -21,8 +21,8 @@ import {INSERT_NEW_NOTE} from "../../graphql/notes.queries";
|
||||
import {SEARCH_VEHICLE_BY_VIN} from "../../graphql/vehicles.queries";
|
||||
import {insertAuditTrail} from "../../redux/application/application.actions";
|
||||
import {selectBodyshop, selectCurrentUser,} from "../../redux/user/user.selectors";
|
||||
import confirmDialog from "../../utils/asyncConfirm";
|
||||
import AuditTrailMapping from "../../utils/AuditTrailMappings";
|
||||
import confirmDialog from "../../utils/asyncConfirm";
|
||||
import CriticalPartsScan from "../../utils/criticalPartsScan";
|
||||
import AlertComponent from "../alert/alert.component";
|
||||
import JobsAvailableScan from "../jobs-available-scan/jobs-available-scan.component";
|
||||
@@ -63,7 +63,15 @@ export function JobsAvailableContainer({bodyshop, currentUser, insertAuditTrail,
|
||||
|
||||
const [selectedJob, setSelectedJob] = useState(null);
|
||||
const [selectedOwner, setSelectedOwner] = useState(null);
|
||||
const [partsQueueToggle, setPartsQueueToggle] = useState(bodyshop.md_functionality_toggles.parts_queue_toggle);
|
||||
const [partsQueueToggle, setPartsQueueToggle] = useState(
|
||||
bodyshop.md_functionality_toggles.parts_queue_toggle
|
||||
);
|
||||
const [updateSchComp, setSchComp] = useState({
|
||||
actual_in: dayjs(),
|
||||
checked: false,
|
||||
scheduled_completion: dayjs(),
|
||||
automatic: false,
|
||||
});
|
||||
|
||||
const [insertLoading, setInsertLoading] = useState(false);
|
||||
|
||||
@@ -187,8 +195,10 @@ export function JobsAvailableContainer({bodyshop, currentUser, insertAuditTrail,
|
||||
notification["error"]({
|
||||
message: t("jobs.errors.creating", {error: err.message}),
|
||||
});
|
||||
refetch().catch(e => {
|
||||
console.error(`Something went wrong in jobs available table container - ${err.message || ''}`)
|
||||
refetch().catch((e) => {
|
||||
console.error(`Something went wrong in jobs available table container - ${err.message || ""
|
||||
}`
|
||||
);
|
||||
});
|
||||
setInsertLoading(false);
|
||||
setPartsQueueToggle(bodyshop.md_functionality_toggles.parts_queue_toggle);
|
||||
@@ -217,6 +227,23 @@ export function JobsAvailableContainer({bodyshop, currentUser, insertAuditTrail,
|
||||
//IO-539 Check for Parts Rate on PAL for SGI use case.
|
||||
await CheckTaxRates(supp, bodyshop);
|
||||
|
||||
if (updateSchComp.checked === true) {
|
||||
if (updateSchComp.automatic === true) {
|
||||
const job_hrs = supp.joblines.data.reduce(
|
||||
(acc, val) => acc + val.mod_lb_hrs,
|
||||
0
|
||||
);
|
||||
const num_days = job_hrs / bodyshop.target_touchtime;
|
||||
supp.actual_in = updateSchComp.actual_in;
|
||||
supp.scheduled_completion = dayjs(
|
||||
updateSchComp.actual_in
|
||||
).businessAdd(num_days,
|
||||
"days"
|
||||
);
|
||||
} else {
|
||||
supp.scheduled_completion = updateSchComp.scheduled_completion;
|
||||
}
|
||||
}
|
||||
delete supp.owner;
|
||||
delete supp.vehicle;
|
||||
delete supp.ins_co_nm;
|
||||
@@ -389,7 +416,8 @@ export function JobsAvailableContainer({bodyshop, currentUser, insertAuditTrail,
|
||||
onCancel={onJobModalCancel}
|
||||
modalSearchState={modalSearchState}
|
||||
partsQueueToggle={partsQueueToggle}
|
||||
setPartsQueueToggle={setPartsQueueToggle}
|
||||
setPartsQueueToggle={setPartsQueueToggle} updateSchComp={updateSchComp}
|
||||
setSchComp={setSchComp}
|
||||
/>
|
||||
<Row gutter={[16, 16]}>
|
||||
<Col span={24}>
|
||||
|
||||
@@ -132,7 +132,7 @@ export function JobsDetailHeader({job, bodyshop, disabled}) {
|
||||
<ProductionListColumnProductionNote record={job}/>
|
||||
</DataLabel>
|
||||
|
||||
<Space>
|
||||
<Space wrap>
|
||||
{job.special_coverage_policy && (
|
||||
<Tag color="tomato">
|
||||
<Space>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import {SyncOutlined} from "@ant-design/icons";
|
||||
import {Button, Checkbox, Divider, Input, Table} from "antd";
|
||||
import React from "react";
|
||||
import {Button, Checkbox, Divider, Input, Space, Table} from "antd";
|
||||
import dayjs from "../../utils/day";
|
||||
import React, {useState} from "react";
|
||||
import {useTranslation} from "react-i18next";
|
||||
import {Link} from "react-router-dom";
|
||||
import PhoneFormatter from "../../utils/PhoneFormatter";
|
||||
import FormDateTimePickerComponent from "../form-date-time-picker/form-date-time-picker.component";
|
||||
import OwnerNameDisplay from "../owner-name-display/owner-name-display.component";
|
||||
|
||||
export default function JobsFindModalComponent({
|
||||
@@ -16,11 +18,13 @@ export default function JobsFindModalComponent({
|
||||
jobsListRefetch,
|
||||
partsQueueToggle,
|
||||
setPartsQueueToggle,
|
||||
updateSchComp,
|
||||
setSchComp,
|
||||
}) {
|
||||
const {t} = useTranslation();
|
||||
const [modalSearch, setModalSearch] = modalSearchState;
|
||||
const [importOptions, setImportOptions] = importOptionsState;
|
||||
|
||||
const [checkUTT, setCheckUTT] = useState(false);
|
||||
const columns = [
|
||||
{
|
||||
title: t("jobs.fields.ro_number"),
|
||||
@@ -142,6 +146,35 @@ export default function JobsFindModalComponent({
|
||||
if (record) {
|
||||
if (record.id) {
|
||||
setSelectedJob(record.id);
|
||||
if (record.actual_in && record.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: record.actual_in,
|
||||
scheduled_completion: record.scheduled_completion,
|
||||
});
|
||||
} else {
|
||||
if (record.actual_in && !record.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: record.actual_in,
|
||||
scheduled_completion: dayjs(),
|
||||
});
|
||||
}
|
||||
if (!record.actual_in && record.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: dayjs(),
|
||||
scheduled_completion: dayjs(record.scheduled_completion),
|
||||
});
|
||||
}
|
||||
if (!record.actual_in && !record.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: dayjs(),
|
||||
scheduled_completion: dayjs(),
|
||||
});
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -177,6 +210,35 @@ export default function JobsFindModalComponent({
|
||||
rowSelection={{
|
||||
onSelect: (props) => {
|
||||
setSelectedJob(props.id);
|
||||
if (props.actual_in && props.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: props.actual_in,
|
||||
scheduled_completion: props.scheduled_completion,
|
||||
});
|
||||
} else {
|
||||
if (props.actual_in && !props.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: props.actual_in,
|
||||
scheduled_completion: dayjs(),
|
||||
});
|
||||
}
|
||||
if (!props.actual_in && props.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: dayjs(),
|
||||
scheduled_completion: dayjs(props.scheduled_completion),
|
||||
});
|
||||
}
|
||||
if (!props.actual_in && !props.scheduled_completion) {
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
actual_in: dayjs(),
|
||||
scheduled_completion: dayjs(),
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
type: "radio",
|
||||
selectedRowKeys: [selectedJob],
|
||||
@@ -189,7 +251,7 @@ export default function JobsFindModalComponent({
|
||||
};
|
||||
}}
|
||||
/>
|
||||
<Divider/>
|
||||
<Divider/><Space>
|
||||
<Checkbox
|
||||
defaultChecked={importOptions.overrideHeader}
|
||||
onChange={(e) =>
|
||||
@@ -206,7 +268,40 @@ export default function JobsFindModalComponent({
|
||||
onChange={(e) => setPartsQueueToggle(e.target.checked)}
|
||||
>
|
||||
{t("bodyshop.fields.md_functionality_toggles.parts_queue_toggle")}
|
||||
</Checkbox>
|
||||
</Checkbox><Checkbox
|
||||
checked={updateSchComp.checked}
|
||||
onChange={(e) =>
|
||||
setSchComp({...updateSchComp, checked: e.target.checked})
|
||||
}
|
||||
>
|
||||
{t("jobs.labels.update_scheduled_completion")}
|
||||
</Checkbox>
|
||||
{updateSchComp.checked === true ? (
|
||||
<>
|
||||
{checkUTT === false ? (
|
||||
<FormDateTimePickerComponent
|
||||
value={updateSchComp.scheduled_completion}
|
||||
onChange={(e) => {
|
||||
setSchComp({...updateSchComp, scheduled_completion: e});
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
<Checkbox
|
||||
checked={checkUTT}
|
||||
onChange={(e) => {
|
||||
setCheckUTT(e.target.checked);
|
||||
setSchComp({
|
||||
...updateSchComp,
|
||||
scheduled_completion: null,
|
||||
automatic: true,
|
||||
});
|
||||
}}
|
||||
>
|
||||
{t("jobs.labels.calc_scheuled_completion")}
|
||||
</Checkbox>
|
||||
</>
|
||||
) : null}
|
||||
</Space>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,8 @@ export default connect(
|
||||
modalSearchState,
|
||||
partsQueueToggle,
|
||||
setPartsQueueToggle,
|
||||
...modalProps
|
||||
updateSchComp,
|
||||
setSchComp, ...modalProps
|
||||
}) {
|
||||
const {t} = useTranslation();
|
||||
|
||||
@@ -95,7 +96,8 @@ export default connect(
|
||||
modalSearchState={modalSearchState}
|
||||
partsQueueToggle={partsQueueToggle}
|
||||
setPartsQueueToggle={setPartsQueueToggle}
|
||||
/>
|
||||
updateSchComp={updateSchComp}
|
||||
setSchComp={setSchComp}/>
|
||||
</Modal>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,277 @@
|
||||
import {Button, Card, Checkbox, Col, Form, Input, InputNumber, Row, Select} from "antd";
|
||||
import React, {useEffect, useState} from "react";
|
||||
import {fetchFilterData} from "../../utils/RenderTemplate";
|
||||
import {DeleteFilled} from "@ant-design/icons";
|
||||
import {useTranslation} from "react-i18next";
|
||||
import {getOperatorsByType} from "../../utils/graphQLmodifier";
|
||||
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
|
||||
|
||||
export default function ReportCenterModalFiltersSortersComponent({form}) {
|
||||
return (
|
||||
<Form.Item style={{margin: 0, padding: 0}} dependencies={["key"]}>
|
||||
{() => {
|
||||
const key = form.getFieldValue("key");
|
||||
return <RenderFilters form={form} templateId={key}/>;
|
||||
}}
|
||||
</Form.Item>
|
||||
);
|
||||
}
|
||||
|
||||
function RenderFilters({templateId, form}) {
|
||||
const [state, setState] = useState(null);
|
||||
const [visible, setVisible] = useState(false);
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const {t} = useTranslation();
|
||||
|
||||
useEffect(() => {
|
||||
const fetch = async () => {
|
||||
setIsLoading(true);
|
||||
const data = await fetchFilterData({name: templateId});
|
||||
if (data?.success) {
|
||||
setState(data.data);
|
||||
} else {
|
||||
setState(null);
|
||||
}
|
||||
setIsLoading(false);
|
||||
};
|
||||
|
||||
if (templateId) {
|
||||
fetch();
|
||||
}
|
||||
}, [templateId]);
|
||||
|
||||
|
||||
// Conditional display of filters and sorters
|
||||
if (!templateId) return null;
|
||||
if (isLoading) return <LoadingSkeleton/>;
|
||||
if (!state) return null;
|
||||
|
||||
// Filters and Sorters data available
|
||||
return (
|
||||
<div style={{marginTop: '10px'}}>
|
||||
<Checkbox
|
||||
checked={visible}
|
||||
onChange={(e) => setVisible(e.target.checked)}
|
||||
children={t('reportcenter.labels.advanced_filters')}
|
||||
/>
|
||||
{visible && (
|
||||
<div>
|
||||
{state.filters && state.filters.length > 0 && (
|
||||
<Card type='inner' title={t('reportcenter.labels.advanced_filters_filters')}
|
||||
style={{marginTop: '10px'}}>
|
||||
<Form.List name={["filters"]}>
|
||||
{(fields, {add, remove, move}) => {
|
||||
return (
|
||||
<div>
|
||||
{fields.map((field, index) => (
|
||||
<Form.Item key={field.key}>
|
||||
<Row gutter={[16, 16]}>
|
||||
<Col span={10}>
|
||||
<Form.Item
|
||||
key={`${index}field`}
|
||||
label="field"
|
||||
name={[field.name, "field"]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Select
|
||||
options={
|
||||
state.filters
|
||||
? state.filters.map((f) => {
|
||||
return {
|
||||
value: f.name,
|
||||
label: f?.translation ? (t(f.translation) === f.translation ? f.label : t(f.translation)) : f.label,
|
||||
}
|
||||
})
|
||||
: []
|
||||
}
|
||||
/>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
<Form.Item
|
||||
dependencies={[['filters', field.name, "field"]]}>
|
||||
{
|
||||
() => {
|
||||
const name = form.getFieldValue(['filters', field.name, "field"]);
|
||||
const type = state.filters.find(f => f.name === name)?.type;
|
||||
|
||||
return <Form.Item
|
||||
key={`${index}operator`}
|
||||
label="operator"
|
||||
name={[field.name, "operator"]}
|
||||
dependencies={[]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Select options={getOperatorsByType(type)}/>
|
||||
</Form.Item>
|
||||
}
|
||||
}
|
||||
</Form.Item>
|
||||
|
||||
</Col>
|
||||
<Col span={6}>
|
||||
<Form.Item
|
||||
dependencies={[['filters', field.name, "field"]]}>
|
||||
{
|
||||
() => {
|
||||
const name = form.getFieldValue(['filters', field.name, "field"]);
|
||||
const type = state.filters.find(f => f.name === name)?.type;
|
||||
|
||||
return <Form.Item
|
||||
key={`${index}value`}
|
||||
label="value"
|
||||
name={[field.name, "value"]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
{type === 'number' ?
|
||||
<InputNumber
|
||||
onChange={(value) => {
|
||||
form.setFieldsValue({[field.name]: {value: parseInt(value)}});
|
||||
}}
|
||||
/>
|
||||
:
|
||||
<Input
|
||||
onChange={(value) => {
|
||||
form.setFieldsValue({[field.name]: {value: value.toString()}});
|
||||
}}
|
||||
/>
|
||||
}
|
||||
</Form.Item>
|
||||
}
|
||||
}
|
||||
</Form.Item>
|
||||
|
||||
</Col>
|
||||
<Col span={2}>
|
||||
<DeleteFilled
|
||||
style={{margin: "1rem"}}
|
||||
onClick={() => {
|
||||
remove(field.name);
|
||||
}}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
</Form.Item>
|
||||
))}
|
||||
<Form.Item>
|
||||
<Button
|
||||
type="dashed"
|
||||
onClick={() => {
|
||||
add();
|
||||
}}
|
||||
style={{width: "100%"}}
|
||||
>
|
||||
{t("general.actions.add")}
|
||||
</Button>
|
||||
</Form.Item>
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
</Form.List>
|
||||
|
||||
</Card>
|
||||
)}
|
||||
{state.sorters && state.sorters.length > 0 && (
|
||||
<Card type='inner' title={t('reportcenter.labels.advanced_filters_sorters')}
|
||||
style={{marginTop: '10px'}}>
|
||||
<Form.List name={["sorters"]}>
|
||||
{(fields, {add, remove, move}) => {
|
||||
return (
|
||||
<div>
|
||||
Sorters
|
||||
{fields.map((field, index) => (
|
||||
<Form.Item key={field.key}>
|
||||
<Row gutter={[16, 16]}>
|
||||
<Col span={11}>
|
||||
<Form.Item
|
||||
key={`${index}field`}
|
||||
label="field"
|
||||
name={[field.name, "field"]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Select
|
||||
options={
|
||||
state.sorters
|
||||
? state.sorters.map((f) => ({
|
||||
value: f.name,
|
||||
label: f?.translation ? (t(f.translation) === f.translation ? f.label : t(f.translation)) : f.label,
|
||||
}))
|
||||
: []
|
||||
}
|
||||
/>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={11}>
|
||||
<Form.Item
|
||||
key={`${index}direction`}
|
||||
label="direction"
|
||||
name={[field.name, "direction"]}
|
||||
rules={[
|
||||
{
|
||||
required: true,
|
||||
//message: t("general.validation.required"),
|
||||
},
|
||||
]}
|
||||
>
|
||||
<Select
|
||||
options={[
|
||||
{value: "desc", label: "Descending"},
|
||||
{value: "asc", label: "Ascending"},
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
</Col>
|
||||
|
||||
<Col span={2}>
|
||||
<DeleteFilled
|
||||
style={{margin: "1rem"}}
|
||||
onClick={() => {
|
||||
remove(field.name);
|
||||
}}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
</Form.Item>
|
||||
))}
|
||||
<Form.Item>
|
||||
<Button
|
||||
type="dashed"
|
||||
onClick={() => {
|
||||
add();
|
||||
}}
|
||||
style={{width: "100%"}}
|
||||
>
|
||||
{t("general.actions.add")}
|
||||
</Button>
|
||||
</Form.Item>
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
</Form.List>
|
||||
</Card>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -9,12 +9,13 @@ import {createStructuredSelector} from "reselect";
|
||||
import {QUERY_ACTIVE_EMPLOYEES} from "../../graphql/employees.queries";
|
||||
import {QUERY_ALL_VENDORS} from "../../graphql/vendors.queries";
|
||||
import {selectReportCenter} from "../../redux/modals/modals.selectors";
|
||||
import DatePIckerRanges from "../../utils/DatePickerRanges";
|
||||
import DatePickerRanges from "../../utils/DatePickerRanges";
|
||||
import {GenerateDocument} from "../../utils/RenderTemplate";
|
||||
import {TemplateList} from "../../utils/TemplateConstants";
|
||||
import EmployeeSearchSelect from "../employee-search-select/employee-search-select.component";
|
||||
import VendorSearchSelect from "../vendor-search-select/vendor-search-select.component";
|
||||
import "./report-center-modal.styles.scss";
|
||||
import ReportCenterModalFiltersSortersComponent from "./report-center-modal-filters-sorters-component";
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
reportCenterModal: selectReportCenter,
|
||||
@@ -78,6 +79,8 @@ export function ReportCenterModalComponent({reportCenterModal}) {
|
||||
|
||||
...(id ? {id: id} : {}),
|
||||
},
|
||||
filters: values.filters,
|
||||
sorters: values.sorters,
|
||||
},
|
||||
{
|
||||
to: values.to,
|
||||
@@ -148,7 +151,7 @@ export function ReportCenterModalComponent({reportCenterModal}) {
|
||||
<Typography.Title level={4}>
|
||||
{t(`reportcenter.labels.groups.${key}`)}
|
||||
</Typography.Title>
|
||||
<ul style={{columns: "2 auto"}}>
|
||||
<ul style={{listStyleType: 'none', columns: "2 auto"}}>
|
||||
{grouped[key].map((item) => (
|
||||
<li key={item.key}>
|
||||
<Radio key={item.key} value={item.key}>
|
||||
@@ -180,6 +183,7 @@ export function ReportCenterModalComponent({reportCenterModal}) {
|
||||
);
|
||||
}}
|
||||
</Form.Item>
|
||||
<ReportCenterModalFiltersSortersComponent form={form}/>
|
||||
<Form.Item style={{margin: 0, padding: 0}} dependencies={["key"]}>
|
||||
{() => {
|
||||
const key = form.getFieldValue("key");
|
||||
@@ -248,7 +252,7 @@ export function ReportCenterModalComponent({reportCenterModal}) {
|
||||
>
|
||||
<DatePicker.RangePicker
|
||||
format="MM/DD/YYYY"
|
||||
presets={DatePIckerRanges}
|
||||
presets={DatePickerRanges}
|
||||
/>
|
||||
</Form.Item>
|
||||
);
|
||||
@@ -304,3 +308,4 @@ export function ReportCenterModalComponent({reportCenterModal}) {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1767,6 +1767,7 @@
|
||||
"ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ",
|
||||
"calc_repair_days": "Calculated Repair Days",
|
||||
"calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).",
|
||||
"calc_scheuled_completion": "Calculate Scheduled Completion",
|
||||
"cards": {
|
||||
"customer": "Customer Information",
|
||||
"damage": "Area of Damage",
|
||||
@@ -1926,6 +1927,7 @@
|
||||
"total_sales": "Total Sales",
|
||||
"totals": "Totals",
|
||||
"unvoidnote": "This Job was unvoided.",
|
||||
"update_scheduled_completion": "Update Scheduled Completion?",
|
||||
"vehicle_info": "Vehicle",
|
||||
"vehicleassociation": "Vehicle Association",
|
||||
"viewallocations": "View Allocations",
|
||||
@@ -2607,6 +2609,11 @@
|
||||
"generate": "Generate"
|
||||
},
|
||||
"labels": {
|
||||
"advanced_filters": "Advanced Filters and Sorters",
|
||||
"advanced_filters_show": "Show",
|
||||
"advanced_filters_hide": "Hide",
|
||||
"advanced_filters_filters": "Filters",
|
||||
"advanced_filters_sorters": "Sorters",
|
||||
"dates": "Dates",
|
||||
"employee": "Employee",
|
||||
"filterson": "Filters on {{object}}: {{field}}",
|
||||
|
||||
@@ -1767,6 +1767,7 @@
|
||||
"ca_gst_all_if_null": "",
|
||||
"calc_repair_days": "",
|
||||
"calc_repair_days_tt": "",
|
||||
"calc_scheuled_completion": "",
|
||||
"cards": {
|
||||
"customer": "Información al cliente",
|
||||
"damage": "Área de Daño",
|
||||
@@ -1926,6 +1927,7 @@
|
||||
"total_sales": "",
|
||||
"totals": "",
|
||||
"unvoidnote": "",
|
||||
"update_scheduled_completion": "",
|
||||
"vehicle_info": "Vehículo",
|
||||
"vehicleassociation": "",
|
||||
"viewallocations": "",
|
||||
@@ -2607,6 +2609,11 @@
|
||||
"generate": ""
|
||||
},
|
||||
"labels": {
|
||||
"advanced_filters": "",
|
||||
"advanced_filters_show": "",
|
||||
"advanced_filters_hide": "",
|
||||
"advanced_filters_filters": "",
|
||||
"advanced_filters_sorters": "",
|
||||
"dates": "",
|
||||
"employee": "",
|
||||
"filterson": "",
|
||||
|
||||
@@ -1767,6 +1767,7 @@
|
||||
"ca_gst_all_if_null": "",
|
||||
"calc_repair_days": "",
|
||||
"calc_repair_days_tt": "",
|
||||
"calc_scheuled_completion": "",
|
||||
"cards": {
|
||||
"customer": "Informations client",
|
||||
"damage": "Zone de dommages",
|
||||
@@ -1926,6 +1927,7 @@
|
||||
"total_sales": "",
|
||||
"totals": "",
|
||||
"unvoidnote": "",
|
||||
"update_scheduled_completion": "",
|
||||
"vehicle_info": "Véhicule",
|
||||
"vehicleassociation": "",
|
||||
"viewallocations": "",
|
||||
@@ -2607,6 +2609,11 @@
|
||||
"generate": ""
|
||||
},
|
||||
"labels": {
|
||||
"advanced_filters": "",
|
||||
"advanced_filters_show": "",
|
||||
"advanced_filters_hide": "",
|
||||
"advanced_filters_filters": "",
|
||||
"advanced_filters_sorters": "",
|
||||
"dates": "",
|
||||
"employee": "",
|
||||
"filterson": "",
|
||||
|
||||
@@ -9,7 +9,7 @@ import {store} from "../redux/store";
|
||||
import client from "../utils/GraphQLClient";
|
||||
import cleanAxios from "./CleanAxios";
|
||||
import {TemplateList} from "./TemplateConstants";
|
||||
|
||||
import {applyFilters, applySorters, parseQuery, printQuery, wrapFiltersInAnd} from "./graphQLmodifier";
|
||||
const server = process.env.REACT_APP_REPORTS_SERVER_URL;
|
||||
|
||||
jsreport.serverUrl = server;
|
||||
@@ -292,7 +292,7 @@ export const GenerateDocument = async (
|
||||
})
|
||||
);
|
||||
} else if (sendType === "x") {
|
||||
console.log("excel");
|
||||
|
||||
await RenderTemplate(template, bodyshop, false, true);
|
||||
} else if (sendType === "text") {
|
||||
await RenderTemplate(template, bodyshop, false, false, true);
|
||||
@@ -306,6 +306,58 @@ export const GenerateDocuments = async (templates) => {
|
||||
await RenderTemplates(templates, bodyshop);
|
||||
};
|
||||
|
||||
export const fetchFilterData = async ({name}) => {
|
||||
try {
|
||||
const bodyshop = store.getState().user.bodyshop;
|
||||
const jsrAuth = (await axios.post("/utils/jsr")).data;
|
||||
jsreport.headers["FirebaseAuthorization"] =
|
||||
"Bearer " + (await auth.currentUser.getIdToken());
|
||||
|
||||
const folders = await cleanAxios.get(`${server}/odata/folders`, {
|
||||
headers: {Authorization: jsrAuth},
|
||||
});
|
||||
const shopSpecificFolder = folders.data.value.find(
|
||||
(f) => f.name === bodyshop.imexshopid
|
||||
);
|
||||
|
||||
const jsReportFilters = await cleanAxios.get(
|
||||
`${server}/odata/assets?$filter=name eq '${name}.filters'`,
|
||||
{headers: {Authorization: jsrAuth}}
|
||||
);
|
||||
console.log("🚀 ~ fetchFilterData ~ jsReportFilters:", jsReportFilters);
|
||||
|
||||
let parsedFilterData;
|
||||
let useShopSpecificTemplate = false;
|
||||
// let shopSpecificTemplate;
|
||||
|
||||
if (shopSpecificFolder) {
|
||||
let shopSpecificTemplate = jsReportFilters.data.value.find(
|
||||
(f) => f?.folder?.shortid === shopSpecificFolder.shortid
|
||||
);
|
||||
if (shopSpecificTemplate) {
|
||||
useShopSpecificTemplate = true;
|
||||
parsedFilterData = atob(shopSpecificTemplate.content);
|
||||
}
|
||||
}
|
||||
|
||||
if (!parsedFilterData) {
|
||||
const generalTemplate = jsReportFilters.data.value.find((f) => !f.folder);
|
||||
useShopSpecificTemplate = false;
|
||||
if (generalTemplate) parsedFilterData = atob(generalTemplate.content);
|
||||
}
|
||||
const data = JSON.parse(parsedFilterData);
|
||||
return {
|
||||
data,
|
||||
useShopSpecificTemplate,
|
||||
success: true,
|
||||
}
|
||||
} catch {
|
||||
return {
|
||||
success: false,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const fetchContextData = async (templateObject, jsrAuth) => {
|
||||
const bodyshop = store.getState().user.bodyshop;
|
||||
|
||||
@@ -344,7 +396,16 @@ const fetchContextData = async (templateObject, jsrAuth) => {
|
||||
templateQueryToExecute = atob(generalTemplate.content);
|
||||
}
|
||||
|
||||
let contextData = {};
|
||||
// Commented out for future revision debugging
|
||||
// console.log('Template Object');
|
||||
// console.dir(templateObject);
|
||||
// console.log('Unmodified Query');
|
||||
// console.dir(templateQueryToExecute);
|
||||
|
||||
|
||||
// We have no template filters or sorters, so we can just execute the query and return the data
|
||||
if ((!templateObject?.filters && !templateObject?.filters?.length && !templateObject?.sorters && !templateObject?.sorters?.length)) {
|
||||
let contextData = {};
|
||||
if (templateQueryToExecute) {
|
||||
const {data} = await client.query({
|
||||
query: gql(templateQueryToExecute),
|
||||
@@ -352,6 +413,37 @@ const fetchContextData = async (templateObject, jsrAuth) => {
|
||||
});
|
||||
contextData = data;
|
||||
}
|
||||
return {contextData, useShopSpecificTemplate};
|
||||
}
|
||||
|
||||
// Parse the query and apply the filters and sorters
|
||||
const ast = parseQuery(templateQueryToExecute);
|
||||
|
||||
let filterFields = [];
|
||||
|
||||
if (templateObject?.filters && templateObject?.filters?.length) {
|
||||
applyFilters(ast, templateObject.filters, filterFields);
|
||||
wrapFiltersInAnd(ast, filterFields);
|
||||
}
|
||||
|
||||
if (templateObject?.sorters && templateObject?.sorters?.length) {
|
||||
applySorters(ast, templateObject.sorters);
|
||||
}
|
||||
|
||||
const finalQuery = printQuery(ast);
|
||||
|
||||
// commented out for future revision debugging
|
||||
// console.log('Modified Query');
|
||||
// console.log(finalQuery);
|
||||
|
||||
let contextData = {};
|
||||
if (templateQueryToExecute) {
|
||||
const {data} = await client.query({
|
||||
query: gql(finalQuery),
|
||||
variables: {...templateObject.variables},
|
||||
});
|
||||
contextData = data;
|
||||
}
|
||||
|
||||
return {contextData, useShopSpecificTemplate};
|
||||
};
|
||||
@@ -406,4 +498,4 @@ function extend(o1, o2, o3) {
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
309
client/src/utils/graphQLmodifier.js
Normal file
309
client/src/utils/graphQLmodifier.js
Normal file
@@ -0,0 +1,309 @@
|
||||
import {Kind, parse, print, visit} from "graphql";
|
||||
|
||||
const STRING_OPERATORS = [
|
||||
{value: "_eq", label: "equals"},
|
||||
{value: "_neq", label: "does not equal"},
|
||||
{value: "_like", label: "contains"},
|
||||
{value: "_nlike", label: "does not contain"},
|
||||
{value: "_ilike", label: "contains case-insensitive"},
|
||||
{value: "_nilike", label: "does not contain case-insensitive"}
|
||||
];
|
||||
const NUMBER_OPERATORS = [
|
||||
{value: "_eq", label: "equals"},
|
||||
{value: "_neq", label: "does not equal"},
|
||||
{value: "_gt", label: "greater than"},
|
||||
{value: "_lt", label: "less than"},
|
||||
{value: "_gte", label: "greater than or equal"},
|
||||
{value: "_lte", label: "less than or equal"}
|
||||
];
|
||||
|
||||
export function getOperatorsByType(type = 'string') {
|
||||
const operators = {
|
||||
string: STRING_OPERATORS,
|
||||
number: NUMBER_OPERATORS
|
||||
};
|
||||
return operators[type];
|
||||
}
|
||||
|
||||
/* eslint-disable no-loop-func */
|
||||
|
||||
/**
|
||||
* Parse a GraphQL query into an AST
|
||||
* @param query
|
||||
* @returns {DocumentNode}
|
||||
*/
|
||||
export function parseQuery(query) {
|
||||
return parse(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Print an AST back into a GraphQL query
|
||||
* @param query
|
||||
* @returns {string}
|
||||
*/
|
||||
export function printQuery(query) {
|
||||
return print(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply sorters to the AST
|
||||
* @param ast
|
||||
* @param sorters
|
||||
*/
|
||||
export function applySorters(ast, sorters) {
|
||||
sorters.forEach((sorter) => {
|
||||
const fieldPath = sorter.field.split('.');
|
||||
visit(ast, {
|
||||
OperationDefinition: {
|
||||
enter(node) {
|
||||
// Loop through each sorter to apply it
|
||||
// noinspection DuplicatedCode
|
||||
|
||||
let currentSelection = node; // Start with the root operation
|
||||
|
||||
// Navigate down the field path to the correct location
|
||||
for (let i = 0; i < fieldPath.length - 1; i++) {
|
||||
let found = false;
|
||||
visit(currentSelection, {
|
||||
Field: {
|
||||
enter(node) {
|
||||
if (node.name.value === fieldPath[i]) {
|
||||
currentSelection = node; // Move down to the next level
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!found) break; // Stop if we can't find the next field in the path
|
||||
}
|
||||
|
||||
// Apply the sorter at the correct level
|
||||
if (currentSelection) {
|
||||
const targetFieldName = fieldPath[fieldPath.length - 1];
|
||||
let orderByArg = currentSelection.arguments.find(arg => arg.name.value === 'order_by');
|
||||
if (!orderByArg) {
|
||||
orderByArg = {
|
||||
kind: Kind.ARGUMENT,
|
||||
name: {kind: Kind.NAME, value: 'order_by'},
|
||||
value: {kind: Kind.OBJECT, fields: []},
|
||||
};
|
||||
currentSelection.arguments.push(orderByArg);
|
||||
}
|
||||
|
||||
const sorterField = {
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: targetFieldName},
|
||||
value: {kind: Kind.ENUM, value: sorter.direction}, // Adjust if your schema uses a different type for sorting directions
|
||||
};
|
||||
|
||||
// Add the new sorter condition
|
||||
orderByArg.value.fields.push(sorterField);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply filters to the AST
|
||||
* @param ast
|
||||
* @param filters
|
||||
*/
|
||||
export function applyFilters(ast, filters) {
|
||||
return visit(ast, {
|
||||
OperationDefinition: {
|
||||
enter(node) {
|
||||
filters.forEach(filter => {
|
||||
const fieldPath = filter.field.split('.');
|
||||
let topLevel = false;
|
||||
|
||||
// Determine if the filter should be applied at the top level
|
||||
if (fieldPath[0].startsWith('[') && fieldPath[0].endsWith(']')) {
|
||||
fieldPath[0] = fieldPath[0].substring(1, fieldPath[0].length - 1); // Strip the brackets
|
||||
topLevel = true;
|
||||
}
|
||||
|
||||
if (topLevel) {
|
||||
// Construct the filter for a top-level application
|
||||
const targetFieldName = fieldPath[fieldPath.length - 1];
|
||||
const filterValue = {
|
||||
kind: getGraphQLKind(filter.value),
|
||||
value: filter.value,
|
||||
};
|
||||
|
||||
const nestedFilter = {
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: targetFieldName},
|
||||
value: {
|
||||
kind: Kind.OBJECT,
|
||||
fields: [{
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: filter.operator},
|
||||
value: filterValue,
|
||||
}],
|
||||
},
|
||||
};
|
||||
|
||||
// Find or create the where argument for the top-level field
|
||||
let whereArg = node.selectionSet.selections
|
||||
.find(selection => selection.name.value === fieldPath[0])
|
||||
?.arguments.find(arg => arg.name.value === 'where');
|
||||
|
||||
if (!whereArg) {
|
||||
whereArg = {
|
||||
kind: Kind.ARGUMENT,
|
||||
name: {kind: Kind.NAME, value: 'where'},
|
||||
value: {kind: Kind.OBJECT, fields: []},
|
||||
};
|
||||
const topLevelSelection = node.selectionSet.selections.find(selection =>
|
||||
selection.name.value === fieldPath[0]
|
||||
);
|
||||
if (topLevelSelection) {
|
||||
topLevelSelection.arguments = topLevelSelection.arguments || [];
|
||||
topLevelSelection.arguments.push(whereArg);
|
||||
}
|
||||
}
|
||||
|
||||
// Correctly position the nested filter without an extra 'where'
|
||||
if (fieldPath.length > 2) { // More than one level deep
|
||||
let currentField = whereArg.value;
|
||||
fieldPath.slice(1, -1).forEach((path, index) => {
|
||||
let existingField = currentField.fields.find(f => f.name.value === path);
|
||||
if (!existingField) {
|
||||
existingField = {
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: path},
|
||||
value: {kind: Kind.OBJECT, fields: []}
|
||||
};
|
||||
currentField.fields.push(existingField);
|
||||
}
|
||||
currentField = existingField.value;
|
||||
});
|
||||
currentField.fields.push(nestedFilter);
|
||||
} else { // Directly under the top level
|
||||
whereArg.value.fields.push(nestedFilter);
|
||||
}
|
||||
} else {
|
||||
// Initialize a reference to the current selection to traverse down the AST
|
||||
let currentSelection = node;
|
||||
let whereArgFound = false;
|
||||
|
||||
// Iterate over the fieldPath, except for the last entry, to navigate the structure
|
||||
for (let i = 0; i < fieldPath.length - 1; i++) {
|
||||
const fieldName = fieldPath[i];
|
||||
let fieldFound = false;
|
||||
|
||||
// Check if the current selection has a selectionSet and selections
|
||||
if (currentSelection.selectionSet && currentSelection.selectionSet.selections) {
|
||||
// Look for the field in the current selection's selections
|
||||
const selection = currentSelection.selectionSet.selections.find(sel => sel.name.value === fieldName);
|
||||
if (selection) {
|
||||
// Move down the AST to the found selection
|
||||
currentSelection = selection;
|
||||
fieldFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
// If the field was not found in the current path, it's an issue
|
||||
if (!fieldFound) {
|
||||
console.error(`Field ${fieldName} not found in the current selection.`);
|
||||
return; // Exit the loop and function due to error
|
||||
}
|
||||
}
|
||||
|
||||
// At this point, currentSelection should be the parent field where the filter needs to be applied
|
||||
// Check if the 'where' argument already exists in the current selection
|
||||
const whereArg = currentSelection.arguments.find(arg => arg.name.value === 'where');
|
||||
if (whereArg) {
|
||||
whereArgFound = true;
|
||||
} else {
|
||||
// If not found, create a new 'where' argument for the current selection
|
||||
currentSelection.arguments.push({
|
||||
kind: Kind.ARGUMENT,
|
||||
name: {kind: Kind.NAME, value: 'where'},
|
||||
value: {kind: Kind.OBJECT, fields: []} // Empty fields array to be populated with the filter
|
||||
});
|
||||
}
|
||||
|
||||
// Assuming the last entry in fieldPath is the field to apply the filter on
|
||||
const targetField = fieldPath[fieldPath.length - 1];
|
||||
const filterValue = {
|
||||
kind: getGraphQLKind(filter.value),
|
||||
value: filter.value,
|
||||
};
|
||||
|
||||
// Construct the filter field object
|
||||
const filterField = {
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: targetField},
|
||||
value: {
|
||||
kind: Kind.OBJECT,
|
||||
fields: [{
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: filter.operator},
|
||||
value: filterValue,
|
||||
}],
|
||||
},
|
||||
};
|
||||
|
||||
// Add the filter field to the 'where' clause of the current selection
|
||||
if (whereArgFound) {
|
||||
whereArg.value.fields.push(filterField);
|
||||
} else {
|
||||
// If the whereArg was newly created, find it again (since we didn't store its reference) and add the filter
|
||||
currentSelection.arguments.find(arg => arg.name.value === 'where').value.fields.push(filterField);
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the GraphQL kind for a value
|
||||
* @param value
|
||||
* @returns {Kind|Kind.INT}
|
||||
*/
|
||||
function getGraphQLKind(value) {
|
||||
if (typeof value === 'number') {
|
||||
return value % 1 === 0 ? Kind.INT : Kind.FLOAT;
|
||||
} else if (typeof value === 'boolean') {
|
||||
return Kind.BOOLEAN;
|
||||
} else if (typeof value === 'string') {
|
||||
return Kind.STRING;
|
||||
}
|
||||
// Extend with more types as needed
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap filters in an 'and' object
|
||||
* @param ast
|
||||
* @param filterFields
|
||||
*/
|
||||
export function wrapFiltersInAnd(ast, filterFields) {
|
||||
visit(ast, {
|
||||
OperationDefinition: {
|
||||
enter(node) {
|
||||
node.selectionSet.selections.forEach((selection) => {
|
||||
let whereArg = selection.arguments.find(arg => arg.name.value === 'where');
|
||||
if (filterFields.length > 1) {
|
||||
const andFilter = {
|
||||
kind: Kind.OBJECT_FIELD,
|
||||
name: {kind: Kind.NAME, value: '_and'},
|
||||
value: {kind: Kind.LIST, values: filterFields}
|
||||
};
|
||||
whereArg.value.fields.push(andFilter);
|
||||
} else if (filterFields.length === 1) {
|
||||
whereArg.value.fields.push(filterFields[0].fields[0]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* eslint-enable no-loop-func */
|
||||
451
package-lock.json
generated
451
package-lock.json
generated
@@ -9,21 +9,21 @@
|
||||
"version": "0.0.1",
|
||||
"license": "UNLICENSED",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.503.0",
|
||||
"@aws-sdk/client-ses": "^3.503.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.503.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.513.0",
|
||||
"@aws-sdk/client-ses": "^3.513.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.513.0",
|
||||
"@opensearch-project/opensearch": "^2.5.0",
|
||||
"aws4": "^1.12.0",
|
||||
"axios": "^1.6.5",
|
||||
"bluebird": "^3.7.2",
|
||||
"body-parser": "^1.20.2",
|
||||
"cloudinary": "^2.0.0",
|
||||
"cloudinary": "^2.0.1",
|
||||
"compression": "^1.7.4",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cors": "2.8.5",
|
||||
"csrf": "^3.1.0",
|
||||
"dinero.js": "^1.9.1",
|
||||
"dotenv": "^16.4.1",
|
||||
"dotenv": "^16.4.4",
|
||||
"express": "^4.18.2",
|
||||
"firebase-admin": "^12.0.0",
|
||||
"graphql": "^16.8.1",
|
||||
@@ -34,19 +34,19 @@
|
||||
"json-2-csv": "^5.0.1",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.5.44",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"node-mailjet": "^6.0.5",
|
||||
"node-persist": "^4.0.1",
|
||||
"node-quickbooks": "^2.0.43",
|
||||
"nodemailer": "^6.9.8",
|
||||
"nodemailer": "^6.9.9",
|
||||
"phone": "^3.1.42",
|
||||
"rimraf": "^5.0.5",
|
||||
"soap": "^1.0.0",
|
||||
"socket.io": "^4.7.4",
|
||||
"ssh2-sftp-client": "^10.0.3",
|
||||
"stripe": "^14.11.0",
|
||||
"twilio": "^4.20.0",
|
||||
"stripe": "^14.16.0",
|
||||
"twilio": "^4.22.0",
|
||||
"uuid": "^9.0.1",
|
||||
"xml2js": "^0.6.2",
|
||||
"xmlbuilder2": "^3.1.1"
|
||||
@@ -152,27 +152,26 @@
|
||||
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||
},
|
||||
"node_modules/@aws-sdk/client-secrets-manager": {
|
||||
"version": "3.503.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.503.0.tgz",
|
||||
"integrity": "sha512-wM+izwvHwPPaUxArLs3dVIyyTVlO4Au2DYqcy/OsuuiGFeSSrbWArPnLqH7tav+OINzWTD4qP9okKGtH/rEdtA==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.513.0.tgz",
|
||||
"integrity": "sha512-6ZDYjjPqiF59Tm01wz9AqOUiZxcuDKFHvW0Vs2ugx/OoffEkguXdyYKieyykuUEFFT+Qh9oP38v/mQNRhRubEA==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.502.0",
|
||||
"@aws-sdk/core": "3.496.0",
|
||||
"@aws-sdk/credential-provider-node": "3.503.0",
|
||||
"@aws-sdk/middleware-host-header": "3.502.0",
|
||||
"@aws-sdk/middleware-logger": "3.502.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.502.0",
|
||||
"@aws-sdk/middleware-signing": "3.502.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.502.0",
|
||||
"@aws-sdk/region-config-resolver": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.502.0",
|
||||
"@aws-sdk/client-sts": "3.513.0",
|
||||
"@aws-sdk/core": "3.513.0",
|
||||
"@aws-sdk/credential-provider-node": "3.513.0",
|
||||
"@aws-sdk/middleware-host-header": "3.511.0",
|
||||
"@aws-sdk/middleware-logger": "3.511.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.511.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.511.0",
|
||||
"@aws-sdk/region-config-resolver": "3.511.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.511.0",
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/hash-node": "^2.1.1",
|
||||
"@smithy/invalid-dependency": "^2.1.1",
|
||||
@@ -191,8 +190,9 @@
|
||||
"@smithy/util-body-length-browser": "^2.1.1",
|
||||
"@smithy/util-body-length-node": "^2.2.1",
|
||||
"@smithy/util-defaults-mode-browser": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.2.0",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"@smithy/util-retry": "^2.1.1",
|
||||
"@smithy/util-utf8": "^2.1.1",
|
||||
"tslib": "^2.5.0",
|
||||
@@ -211,27 +211,26 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-ses": {
|
||||
"version": "3.503.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.503.0.tgz",
|
||||
"integrity": "sha512-ppMy4sDHiFMxPsEKAE7G7v6Xtf4tsdXN2IhrML/SjrNmnSDvKMmcBHdnus1WyjKk0oev7sgYTbcVBryxTb/AhA==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-ses/-/client-ses-3.513.0.tgz",
|
||||
"integrity": "sha512-9pvzyCZGVO283OPAdUkSC4QPY7Sfk9jNqs0gzLQvqM1FggjS1jc6vbMqBcRCte87fXkSPyLo0IEX/kaMH4dEMQ==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.502.0",
|
||||
"@aws-sdk/core": "3.496.0",
|
||||
"@aws-sdk/credential-provider-node": "3.503.0",
|
||||
"@aws-sdk/middleware-host-header": "3.502.0",
|
||||
"@aws-sdk/middleware-logger": "3.502.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.502.0",
|
||||
"@aws-sdk/middleware-signing": "3.502.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.502.0",
|
||||
"@aws-sdk/region-config-resolver": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.502.0",
|
||||
"@aws-sdk/client-sts": "3.513.0",
|
||||
"@aws-sdk/core": "3.513.0",
|
||||
"@aws-sdk/credential-provider-node": "3.513.0",
|
||||
"@aws-sdk/middleware-host-header": "3.511.0",
|
||||
"@aws-sdk/middleware-logger": "3.511.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.511.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.511.0",
|
||||
"@aws-sdk/region-config-resolver": "3.511.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.511.0",
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/hash-node": "^2.1.1",
|
||||
"@smithy/invalid-dependency": "^2.1.1",
|
||||
@@ -250,8 +249,9 @@
|
||||
"@smithy/util-body-length-browser": "^2.1.1",
|
||||
"@smithy/util-body-length-node": "^2.2.1",
|
||||
"@smithy/util-defaults-mode-browser": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.2.0",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"@smithy/util-retry": "^2.1.1",
|
||||
"@smithy/util-utf8": "^2.1.1",
|
||||
"@smithy/util-waiter": "^2.1.1",
|
||||
@@ -263,24 +263,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-sso": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.502.0.tgz",
|
||||
"integrity": "sha512-OZAYal1+PQgUUtWiHhRayDtX0OD+XpXHKAhjYgEIPbyhQaCMp3/Bq1xDX151piWXvXqXLJHFKb8DUEqzwGO9QA==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.513.0.tgz",
|
||||
"integrity": "sha512-621Aj/KrgvKJXXViatb3zM+TdM3n+lodmMbSm+FH37RqYoj36s5FgmXan3Ebu9WBu1lUzKm+a3ZyRWVces52uQ==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/core": "3.496.0",
|
||||
"@aws-sdk/middleware-host-header": "3.502.0",
|
||||
"@aws-sdk/middleware-logger": "3.502.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.502.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.502.0",
|
||||
"@aws-sdk/region-config-resolver": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.502.0",
|
||||
"@aws-sdk/core": "3.513.0",
|
||||
"@aws-sdk/middleware-host-header": "3.511.0",
|
||||
"@aws-sdk/middleware-logger": "3.511.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.511.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.511.0",
|
||||
"@aws-sdk/region-config-resolver": "3.511.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.511.0",
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/hash-node": "^2.1.1",
|
||||
"@smithy/invalid-dependency": "^2.1.1",
|
||||
@@ -299,8 +299,9 @@
|
||||
"@smithy/util-body-length-browser": "^2.1.1",
|
||||
"@smithy/util-body-length-node": "^2.2.1",
|
||||
"@smithy/util-defaults-mode-browser": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.2.0",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"@smithy/util-retry": "^2.1.1",
|
||||
"@smithy/util-utf8": "^2.1.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -310,26 +311,25 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.502.0.tgz",
|
||||
"integrity": "sha512-Yc9tZqTOMWtdgpkrdjKShgWb9oKNsFQrItfoiN1xWDllaFFRPi2KTiZiR0AbSTrNasJy13d210DOxrIdte+kWQ==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.513.0.tgz",
|
||||
"integrity": "sha512-DyncBVOR5aENL6vOeHPllIAwWUaDZdj1aRKVWiNECG4LuuwwjASX0wFLxTRe/4al3Ugob0OLqsrgC2hd59BLJA==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/client-sts": "3.502.0",
|
||||
"@aws-sdk/core": "3.496.0",
|
||||
"@aws-sdk/middleware-host-header": "3.502.0",
|
||||
"@aws-sdk/middleware-logger": "3.502.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.502.0",
|
||||
"@aws-sdk/middleware-signing": "3.502.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.502.0",
|
||||
"@aws-sdk/region-config-resolver": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.502.0",
|
||||
"@aws-sdk/client-sts": "3.513.0",
|
||||
"@aws-sdk/core": "3.513.0",
|
||||
"@aws-sdk/middleware-host-header": "3.511.0",
|
||||
"@aws-sdk/middleware-logger": "3.511.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.511.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.511.0",
|
||||
"@aws-sdk/region-config-resolver": "3.511.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.511.0",
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/hash-node": "^2.1.1",
|
||||
"@smithy/invalid-dependency": "^2.1.1",
|
||||
@@ -348,8 +348,9 @@
|
||||
"@smithy/util-body-length-browser": "^2.1.1",
|
||||
"@smithy/util-body-length-node": "^2.2.1",
|
||||
"@smithy/util-defaults-mode-browser": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.2.0",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"@smithy/util-retry": "^2.1.1",
|
||||
"@smithy/util-utf8": "^2.1.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -358,28 +359,28 @@
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@aws-sdk/credential-provider-node": "*"
|
||||
"@aws-sdk/credential-provider-node": "^3.513.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/client-sts": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.502.0.tgz",
|
||||
"integrity": "sha512-0q08gsvn6nuRqjK+i/e30PT/t7vvYwmGJS0PhJikZWv5yRDNSUxSYG0uDwKSbLDzmc2UX5+mLeyjPHlL4hbGlA==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.513.0.tgz",
|
||||
"integrity": "sha512-reWhX5CO+XZhT8xIdDPnEws0KQNBuvcSY2W7niSPVYfq1mOLkQgYenP/sC/TyvnNuZDzgcmJQdbdAKHuZvMuUQ==",
|
||||
"dependencies": {
|
||||
"@aws-crypto/sha256-browser": "3.0.0",
|
||||
"@aws-crypto/sha256-js": "3.0.0",
|
||||
"@aws-sdk/core": "3.496.0",
|
||||
"@aws-sdk/middleware-host-header": "3.502.0",
|
||||
"@aws-sdk/middleware-logger": "3.502.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.502.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.502.0",
|
||||
"@aws-sdk/region-config-resolver": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.502.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.502.0",
|
||||
"@aws-sdk/core": "3.513.0",
|
||||
"@aws-sdk/middleware-host-header": "3.511.0",
|
||||
"@aws-sdk/middleware-logger": "3.511.0",
|
||||
"@aws-sdk/middleware-recursion-detection": "3.511.0",
|
||||
"@aws-sdk/middleware-user-agent": "3.511.0",
|
||||
"@aws-sdk/region-config-resolver": "3.511.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-browser": "3.511.0",
|
||||
"@aws-sdk/util-user-agent-node": "3.511.0",
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/hash-node": "^2.1.1",
|
||||
"@smithy/invalid-dependency": "^2.1.1",
|
||||
@@ -398,7 +399,7 @@
|
||||
"@smithy/util-body-length-browser": "^2.1.1",
|
||||
"@smithy/util-body-length-node": "^2.2.1",
|
||||
"@smithy/util-defaults-mode-browser": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.1.1",
|
||||
"@smithy/util-defaults-mode-node": "^2.2.0",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"@smithy/util-retry": "^2.1.1",
|
||||
@@ -410,15 +411,15 @@
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@aws-sdk/credential-provider-node": "*"
|
||||
"@aws-sdk/credential-provider-node": "^3.513.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/core": {
|
||||
"version": "3.496.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.496.0.tgz",
|
||||
"integrity": "sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.513.0.tgz",
|
||||
"integrity": "sha512-L+9DL4apWuqNKVOMJ8siAuWoRM9rZf9w1iPv8S2o83WO2jVK7E/m+rNW1dFo9HsA5V1ccDl2H2qLXx24HiHmOw==",
|
||||
"dependencies": {
|
||||
"@smithy/core": "^1.3.1",
|
||||
"@smithy/core": "^1.3.2",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/signature-v4": "^2.1.1",
|
||||
"@smithy/smithy-client": "^2.3.1",
|
||||
@@ -430,11 +431,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-env": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.502.0.tgz",
|
||||
"integrity": "sha512-KIB8Ae1Z7domMU/jU4KiIgK4tmYgvuXlhR54ehwlVHxnEoFPoPuGHFZU7oFn79jhhSLUFQ1lRYMxP0cEwb7XeQ==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.511.0.tgz",
|
||||
"integrity": "sha512-4VUsnLRox8YzxnZwnFrfZM4bL5KKLhsjjjX7oiuLyzFkhauI4HFYt7rTB8YNGphpqAg/Wzw5DBZfO3Bw1iR1HA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -443,17 +444,36 @@
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.503.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.503.0.tgz",
|
||||
"integrity": "sha512-sfmVLtUx+KDJ74jlbxW6dr1ysXh2EAESA+a5stFehgeXM1BeEdZc938wGcb8Mzm9w6li3IK0otXy8/R5TkQn3g==",
|
||||
"node_modules/@aws-sdk/credential-provider-http": {
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.511.0.tgz",
|
||||
"integrity": "sha512-y83Gt8GPpgMe/lMFxIq+0G2rbzLTC6lhrDocHUzqcApLD6wet8Esy2iYckSRlJgYY+qsVAzpLrSMtt85DwRPTw==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sts": "3.502.0",
|
||||
"@aws-sdk/credential-provider-env": "3.502.0",
|
||||
"@aws-sdk/credential-provider-process": "3.502.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.502.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/fetch-http-handler": "^2.4.1",
|
||||
"@smithy/node-http-handler": "^2.3.1",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/smithy-client": "^2.3.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"@smithy/util-stream": "^2.1.1",
|
||||
"tslib": "^2.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.513.0.tgz",
|
||||
"integrity": "sha512-J9FAmTVHm9RsXxXluXCmJ+crkZPDpdNQhiVrbmPPq989lfr0u33rf1aKFMF5AyHNcNEWeAYKKBQwJJkcsxStIA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sts": "3.513.0",
|
||||
"@aws-sdk/credential-provider-env": "3.511.0",
|
||||
"@aws-sdk/credential-provider-process": "3.511.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.513.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.513.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/credential-provider-imds": "^2.2.1",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/shared-ini-file-loader": "^2.3.1",
|
||||
@@ -465,16 +485,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-node": {
|
||||
"version": "3.503.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.503.0.tgz",
|
||||
"integrity": "sha512-jE+QpqWU7ESxbKtWmeerv4ze7HntGcfh4PFscsy+O3QZYXXntzkDAne9wRvT38rfI+uVOGGNdCtz+8zSS3MaZw==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.513.0.tgz",
|
||||
"integrity": "sha512-Cp6tYUJ+g8zJxI8vE0A9W6AxRLq3iR2zGGKsrPLNmZkUaHoVaJiNEd+2nL9RwCqDRve+N+Sh3mbZrLiqh3DO6A==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/credential-provider-env": "3.502.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.503.0",
|
||||
"@aws-sdk/credential-provider-process": "3.502.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.502.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/credential-provider-env": "3.511.0",
|
||||
"@aws-sdk/credential-provider-http": "3.511.0",
|
||||
"@aws-sdk/credential-provider-ini": "3.513.0",
|
||||
"@aws-sdk/credential-provider-process": "3.511.0",
|
||||
"@aws-sdk/credential-provider-sso": "3.513.0",
|
||||
"@aws-sdk/credential-provider-web-identity": "3.513.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/credential-provider-imds": "^2.2.1",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/shared-ini-file-loader": "^2.3.1",
|
||||
@@ -486,11 +507,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-process": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.502.0.tgz",
|
||||
"integrity": "sha512-fJJowOjQ4infYQX0E1J3xFVlmuwEYJAFk0Mo1qwafWmEthsBJs+6BR2RiWDELHKrSK35u4Pf3fu3RkYuCtmQFw==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.511.0.tgz",
|
||||
"integrity": "sha512-88hLUPqcTwjSubPS+34ZfmglnKeLny8GbmZsyllk96l26PmDTAqo5RScSA8BWxL0l5pRRWGtcrFyts+oibHIuQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/shared-ini-file-loader": "^2.3.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
@@ -501,13 +522,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-sso": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.502.0.tgz",
|
||||
"integrity": "sha512-/2Nyvo+cWQpH283lmZBimTJ9JDhES9FzQUkhUXZgxQo3Ez4sguLVi2V9xoFFyG0cMff5fuNivdKHfj4FeMGjZw==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.513.0.tgz",
|
||||
"integrity": "sha512-q9rRwRWVut97+hnc0Yt77tGeKoPLLDpKKVpVGC6e+EQHlXM4H6oq2VGLgXYJPA9HpMJ3t5zmmgHxEafYeFZo+w==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso": "3.502.0",
|
||||
"@aws-sdk/token-providers": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/client-sso": "3.513.0",
|
||||
"@aws-sdk/token-providers": "3.513.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/shared-ini-file-loader": "^2.3.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
@@ -518,12 +539,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/credential-provider-web-identity": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.502.0.tgz",
|
||||
"integrity": "sha512-veBAjDqjMMgA2Qxxf9ywDfHYLeJpaeHWLWCQ9XCHwJJ6ZIGWmAZPTq3he/UMr5JIQXooIccqqyqXMDIXPenXpA==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.513.0.tgz",
|
||||
"integrity": "sha512-0EZUQhbDaV3jxvIjcWEGiGmioFS0vEvUxaJrMgeRLUo9njZfLZ4VaEMsqPnZ9rMz2w9CxfpDeObEQlDzYeGRgA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sts": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/client-sts": "3.513.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -533,11 +554,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-host-header": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.502.0.tgz",
|
||||
"integrity": "sha512-EjnG0GTYXT/wJBmm5/mTjDcAkzU8L7wQjOzd3FTXuTCNNyvAvwrszbOj5FlarEw5XJBbQiZtBs+I5u9+zy560w==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.511.0.tgz",
|
||||
"integrity": "sha512-DbBzQP/6woSHR/+g9dHN3YiYaLIqFw9u8lQFMxi3rT3hqITFVYLzzXtEaHjDD6/is56pNT84CIKbyJ6/gY5d1Q==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -547,11 +568,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-logger": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.502.0.tgz",
|
||||
"integrity": "sha512-FDyv6K4nCoHxbjLGS2H8ex8I0KDIiu4FJgVRPs140ZJy6gE5Pwxzv6YTzZGLMrnqcIs9gh065Lf6DjwMelZqaw==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.511.0.tgz",
|
||||
"integrity": "sha512-EYU9dBlJXvQcCsM2Tfgi0NQoXrqovfDv/fDy8oGJgZFrgNuHDti8tdVVxeJTUJNEAF67xlDl5o+rWEkKthkYGQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
},
|
||||
@@ -560,11 +581,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-recursion-detection": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.502.0.tgz",
|
||||
"integrity": "sha512-hvbyGJbxeuezxOu8VfFmcV4ql1hKXLxHTe5FNYfEBat2KaZXVhc1Hg+4TvB06/53p+E8J99Afmumkqbxs2esUA==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.511.0.tgz",
|
||||
"integrity": "sha512-PlNPCV/6zpDVdNx1K69xDTh/wPNU4WyP4qa6hUo2/+4/PNG5HI9xbCWtpb4RjhdTRw6qDtkBNcPICHbtWx5aHg==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -573,30 +594,13 @@
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-signing": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.502.0.tgz",
|
||||
"integrity": "sha512-4hF08vSzJ7L6sB+393gOFj3s2N6nLusYS0XrMW6wYNFU10IDdbf8Z3TZ7gysDJJHEGQPmTAesPEDBsasGWcMxg==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/signature-v4": "^2.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"@smithy/util-middleware": "^2.1.1",
|
||||
"tslib": "^2.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/middleware-user-agent": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.502.0.tgz",
|
||||
"integrity": "sha512-TxbBZbRiXPH0AUxegqiNd9aM9zNSbfjtBs5MEfcBsweeT/B2O7K1EjP9+CkB8Xmk/5FLKhAKLr19b1TNoE27rw==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.511.0.tgz",
|
||||
"integrity": "sha512-eLs+CxP2QCXh3tCGYCdAml3oyWj8MSIwKbH+8rKw0k/5vmY1YJDBy526whOxx61ivhz2e0muuijN4X5EZZ2Pnw==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/util-endpoints": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@aws-sdk/util-endpoints": "3.511.0",
|
||||
"@smithy/protocol-http": "^3.1.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -606,11 +610,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/region-config-resolver": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.502.0.tgz",
|
||||
"integrity": "sha512-mxmsX2AGgnSM+Sah7mcQCIneOsJQNiLX0COwEttuf8eO+6cLMAZvVudH3BnWTfea4/A9nuri9DLCqBvEmPrilg==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.511.0.tgz",
|
||||
"integrity": "sha512-RzBLSNaRd4iEkQyEGfiSNvSnWU/x23rsiFgA9tqYFA0Vqx7YmzSWC8QBUxpwybB8HkbbL9wNVKQqTbhI3mYneQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/node-config-provider": "^2.2.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"@smithy/util-config-provider": "^2.2.1",
|
||||
@@ -622,12 +626,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/token-providers": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.502.0.tgz",
|
||||
"integrity": "sha512-RQgMgIXYlSf0xGl6EUeD+pqIPBlb7e29dbqHOBFc66hJVYUC2ULZX7Y+jLvcGIEaMiIaTPyvntZRFip+U+9hag==",
|
||||
"version": "3.513.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.513.0.tgz",
|
||||
"integrity": "sha512-S27iFzj3dVRw1q+xLtqTGZOfYG95OwvTN7crvS2daqSYfcWN+dhEPzQJdDvGaAnAI45bWm8rppH/EYzrlxeZoA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso-oidc": "3.502.0",
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/client-sso-oidc": "3.513.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/property-provider": "^2.1.1",
|
||||
"@smithy/shared-ini-file-loader": "^2.3.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
@@ -638,9 +642,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/types": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.502.0.tgz",
|
||||
"integrity": "sha512-M0DSPYe/gXhwD2QHgoukaZv5oDxhW3FfvYIrJptyqUq3OnPJBcDbihHjrE0PBtfh/9kgMZT60/fQ2NVFANfa2g==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.511.0.tgz",
|
||||
"integrity": "sha512-P03ufufxmkvd7nO46oOeEqYIMPJ8qMCKxAsfJk1JBVPQ1XctVntbail4/UFnrnzij8DTl4Mk/D62uGo7+RolXA==",
|
||||
"dependencies": {
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -650,11 +654,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/util-endpoints": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.502.0.tgz",
|
||||
"integrity": "sha512-6LKFlJPp2J24r1Kpfoz5ESQn+1v5fEjDB3mtUKRdpwarhm3syu7HbKlHCF3KbcCOyahobvLvhoedT78rJFEeeg==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.511.0.tgz",
|
||||
"integrity": "sha512-J/5hsscJkg2pAOdLx1YKlyMCk5lFRxRxEtup9xipzOxVBlqOIE72Tuu31fbxSlF8XzO/AuCJcZL4m1v098K9oA==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"@smithy/util-endpoints": "^1.1.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -675,22 +679,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/util-user-agent-browser": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.502.0.tgz",
|
||||
"integrity": "sha512-v8gKyCs2obXoIkLETAeEQ3AM+QmhHhst9xbM1cJtKUGsRlVIak/XyyD+kVE6kmMm1cjfudHpHKABWk9apQcIZQ==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.511.0.tgz",
|
||||
"integrity": "sha512-5LuESdwtIcA10aHcX7pde7aCIijcyTPBXFuXmFlDTgm/naAayQxelQDpvgbzuzGLgePf8eTyyhDKhzwPZ2EqiQ==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"bowser": "^2.11.0",
|
||||
"tslib": "^2.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@aws-sdk/util-user-agent-node": {
|
||||
"version": "3.502.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.502.0.tgz",
|
||||
"integrity": "sha512-9RjxpkGZKbTdl96tIJvAo+vZoz4P/cQh36SBUt9xfRfW0BtsaLyvSrvlR5wyUYhvRcC12Axqh/8JtnAPq//+Vw==",
|
||||
"version": "3.511.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.511.0.tgz",
|
||||
"integrity": "sha512-UopdlRvYY5mxlS4wwFv+QAWL6/T302wmoQj7i+RY+c/D3Ej3PKBb/mW3r2wEOgZLJmPpeeM1SYMk+rVmsW1rqw==",
|
||||
"dependencies": {
|
||||
"@aws-sdk/types": "3.502.0",
|
||||
"@aws-sdk/types": "3.511.0",
|
||||
"@smithy/node-config-provider": "^2.2.1",
|
||||
"@smithy/types": "^2.9.1",
|
||||
"tslib": "^2.5.0"
|
||||
@@ -1230,9 +1234,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@smithy/core": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.3.1.tgz",
|
||||
"integrity": "sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q==",
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.3.2.tgz",
|
||||
"integrity": "sha512-tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==",
|
||||
"dependencies": {
|
||||
"@smithy/middleware-endpoint": "^2.4.1",
|
||||
"@smithy/middleware-retry": "^2.1.1",
|
||||
@@ -1626,9 +1630,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@smithy/util-defaults-mode-node": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz",
|
||||
"integrity": "sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA==",
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.0.tgz",
|
||||
"integrity": "sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==",
|
||||
"dependencies": {
|
||||
"@smithy/config-resolver": "^2.1.1",
|
||||
"@smithy/credential-provider-imds": "^2.2.1",
|
||||
@@ -2408,11 +2412,10 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cloudinary": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.0.0.tgz",
|
||||
"integrity": "sha512-NUbufckg2GiuJjB0DVGFBRNLt4jl+2nOA1KeZv1ub8FCduNFvkcdGF1t9JKeoVVM8Po9wYvjICcecMsjQVq1Jw==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.0.1.tgz",
|
||||
"integrity": "sha512-+j5GswtCwjAmLhjs/K26id4Zvh53zL/YWzgyenxgbdXdXmdFM8d5H1FV1sJCkpS77AqylJKBzyztySdILM+F+A==",
|
||||
"dependencies": {
|
||||
"cloudinary-core": "^2.13.0",
|
||||
"lodash": "^4.17.21",
|
||||
"q": "^1.5.1"
|
||||
},
|
||||
@@ -2420,14 +2423,6 @@
|
||||
"node": ">=9"
|
||||
}
|
||||
},
|
||||
"node_modules/cloudinary-core": {
|
||||
"version": "2.13.0",
|
||||
"resolved": "https://registry.npmjs.org/cloudinary-core/-/cloudinary-core-2.13.0.tgz",
|
||||
"integrity": "sha512-Nt0Q5I2FtenmJghtC4YZ3MZZbGg1wLm84SsxcuVwZ83OyJqG9CNIGp86CiI6iDv3QobaqBUpOT7vg+HqY5HxEA==",
|
||||
"peerDependencies": {
|
||||
"lodash": ">=4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
|
||||
@@ -3023,14 +3018,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.1",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz",
|
||||
"integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==",
|
||||
"version": "16.4.4",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz",
|
||||
"integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/motdotla/dotenv?sponsor=1"
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/duplexer": {
|
||||
@@ -4777,9 +4772,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/moment-timezone": {
|
||||
"version": "0.5.44",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.44.tgz",
|
||||
"integrity": "sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw==",
|
||||
"version": "0.5.45",
|
||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz",
|
||||
"integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==",
|
||||
"dependencies": {
|
||||
"moment": "^2.29.4"
|
||||
},
|
||||
@@ -4920,9 +4915,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/nodemailer": {
|
||||
"version": "6.9.8",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.8.tgz",
|
||||
"integrity": "sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==",
|
||||
"version": "6.9.9",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz",
|
||||
"integrity": "sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
@@ -6319,9 +6314,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stripe": {
|
||||
"version": "14.14.0",
|
||||
"resolved": "https://registry.npmjs.org/stripe/-/stripe-14.14.0.tgz",
|
||||
"integrity": "sha512-P6lvKHxgDzZXto9VMstG1ucv4Ls0U9nOoQhVZABXJ33kRD7zMwkBy5Y4c3BO59O230uSTkOFPLh87YxVzkp0Mg==",
|
||||
"version": "14.16.0",
|
||||
"resolved": "https://registry.npmjs.org/stripe/-/stripe-14.16.0.tgz",
|
||||
"integrity": "sha512-1gOr2LzafWV84cPIO5Md/QPh4XVPLKULVuRpBVOV3Plq3seiHmg/eeOktX+hDl8jpNZuORHYaUJGrNqrABLwdg==",
|
||||
"dependencies": {
|
||||
"@types/node": ">=8.1.0",
|
||||
"qs": "^6.11.0"
|
||||
@@ -6614,9 +6609,9 @@
|
||||
"integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
|
||||
},
|
||||
"node_modules/twilio": {
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/twilio/-/twilio-4.21.0.tgz",
|
||||
"integrity": "sha512-+meDbJPOxs6vEysJ7xX7XMn6FLKmZFSeVzMKjzN9NWgDXssp713Kf1ukteZlXhnhd7/NtNiUv5OU17qVgBb/BQ==",
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/twilio/-/twilio-4.22.0.tgz",
|
||||
"integrity": "sha512-Dn4x9FxhuCorz2ddJ8/Z8o3G0rLmrQo0frF1MMwWqtLrOwQzhL7Ca/Fup8jqbfjD+JSG1L8DE9a3MGBDETDrNg==",
|
||||
"dependencies": {
|
||||
"axios": "^1.6.0",
|
||||
"dayjs": "^1.11.9",
|
||||
|
||||
18
package.json
18
package.json
@@ -18,21 +18,21 @@
|
||||
"start": "node server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-secrets-manager": "^3.503.0",
|
||||
"@aws-sdk/client-ses": "^3.503.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.503.0",
|
||||
"@aws-sdk/client-secrets-manager": "^3.513.0",
|
||||
"@aws-sdk/client-ses": "^3.513.0",
|
||||
"@aws-sdk/credential-provider-node": "^3.513.0",
|
||||
"@opensearch-project/opensearch": "^2.5.0",
|
||||
"aws4": "^1.12.0",
|
||||
"axios": "^1.6.5",
|
||||
"bluebird": "^3.7.2",
|
||||
"body-parser": "^1.20.2",
|
||||
"cloudinary": "^2.0.0",
|
||||
"cloudinary": "^2.0.1",
|
||||
"compression": "^1.7.4",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cors": "2.8.5",
|
||||
"csrf": "^3.1.0",
|
||||
"dinero.js": "^1.9.1",
|
||||
"dotenv": "^16.4.1",
|
||||
"dotenv": "^16.4.4",
|
||||
"express": "^4.18.2",
|
||||
"firebase-admin": "^12.0.0",
|
||||
"graphql": "^16.8.1",
|
||||
@@ -43,19 +43,19 @@
|
||||
"json-2-csv": "^5.0.1",
|
||||
"lodash": "^4.17.21",
|
||||
"moment": "^2.30.1",
|
||||
"moment-timezone": "^0.5.44",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"node-mailjet": "^6.0.5",
|
||||
"node-persist": "^4.0.1",
|
||||
"node-quickbooks": "^2.0.43",
|
||||
"nodemailer": "^6.9.8",
|
||||
"nodemailer": "^6.9.9",
|
||||
"phone": "^3.1.42",
|
||||
"rimraf": "^5.0.5",
|
||||
"soap": "^1.0.0",
|
||||
"socket.io": "^4.7.4",
|
||||
"ssh2-sftp-client": "^10.0.3",
|
||||
"stripe": "^14.11.0",
|
||||
"twilio": "^4.20.0",
|
||||
"stripe": "^14.16.0",
|
||||
"twilio": "^4.22.0",
|
||||
"uuid": "^9.0.1",
|
||||
"xml2js": "^0.6.2",
|
||||
"xmlbuilder2": "^3.1.1"
|
||||
|
||||
Reference in New Issue
Block a user