All dependecy upgrades + linting fixes.
This commit is contained in:
14
README.MD
14
README.MD
@@ -1,12 +1,14 @@
|
|||||||
React App:
|
React App:
|
||||||
React Hooks are used for Authentication ONLY to ensure the correct web token is passed.
|
|
||||||
|
Yarn Dependency Management:
|
||||||
|
To force upgrades for some packages: yarn upgrade-interactive --latest
|
||||||
|
|
||||||
GraphQL API:
|
GraphQL API:
|
||||||
Hasura is hosted on another dyno. Several environmental variables are required, including disabling the console.
|
Hasura is hosted on another dyno. Several environmental variables are required, including disabling the console.
|
||||||
ALL CHANGES MUST BE MADE USING LOCAL CONSOLE TO ENSURE DATABASE MIGRATION FILES ARE CREATED.
|
ALL CHANGES MUST BE MADE USING LOCAL CONSOLE TO ENSURE DATABASE MIGRATION FILES ARE CREATED.
|
||||||
|
|
||||||
To Start Hasura CLI:
|
To Start Hasura CLI:
|
||||||
npx hasura console --admin-secret Dev-BodyShopAppBySnaptSoftware!
|
npx hasura console --admin-secret Dev-BodyShopAppBySnaptSoftware!
|
||||||
|
|
||||||
Migrating to Staging:
|
Migrating to Staging:
|
||||||
npx hasura migrate apply --up 10 --endpoint https://bodyshop-staging-db.herokuapp.com/ --admin-secret Staging-BodyShopAppBySnaptSoftware!
|
npx hasura migrate apply --up 10 --endpoint https://bodyshop-staging-db.herokuapp.com/ --admin-secret Staging-BodyShopAppBySnaptSoftware!
|
||||||
|
|||||||
@@ -4,39 +4,39 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"proxy": "https://localhost:5000",
|
"proxy": "https://localhost:5000",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"antd": "^3.26.0",
|
"antd": "^3.26.8",
|
||||||
"apollo-boost": "^0.4.4",
|
"apollo-boost": "^0.4.4",
|
||||||
"apollo-link-context": "^1.0.19",
|
"apollo-link-context": "^1.0.19",
|
||||||
"apollo-link-error": "^1.1.12",
|
"apollo-link-error": "^1.1.12",
|
||||||
"apollo-link-logger": "^1.2.3",
|
"apollo-link-logger": "^1.2.3",
|
||||||
"apollo-link-ws": "^1.0.19",
|
"apollo-link-ws": "^1.0.19",
|
||||||
"axios": "^0.19.1",
|
"axios": "^0.19.2",
|
||||||
"chart.js": "^2.9.3",
|
"chart.js": "^2.9.3",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"firebase": "^7.5.0",
|
"firebase": "^7.8.1",
|
||||||
"graphql": "^14.5.8",
|
"graphql": "^14.6.0",
|
||||||
"i18next": "^19.0.2",
|
"i18next": "^19.1.0",
|
||||||
"node-sass": "^4.13.0",
|
"node-sass": "^4.13.1",
|
||||||
"react": "^16.12.0",
|
"react": "^16.12.0",
|
||||||
"react-apollo": "^3.1.3",
|
"react-apollo": "^3.1.3",
|
||||||
"react-big-calendar": "^0.23.0",
|
"react-big-calendar": "^0.23.0",
|
||||||
"react-chartjs-2": "^2.8.0",
|
"react-chartjs-2": "^2.9.0",
|
||||||
"react-dom": "^16.12.0",
|
"react-dom": "^16.12.0",
|
||||||
"react-i18next": "^11.2.7",
|
"react-i18next": "^11.3.1",
|
||||||
"react-icons": "^3.8.0",
|
"react-icons": "^3.9.0",
|
||||||
"react-image-file-resizer": "^0.2.1",
|
"react-image-file-resizer": "^0.2.1",
|
||||||
"react-moment": "^0.9.7",
|
"react-moment": "^0.9.7",
|
||||||
"react-number-format": "^4.3.1",
|
"react-number-format": "^4.3.1",
|
||||||
"react-redux": "^7.1.3",
|
"react-redux": "^7.1.3",
|
||||||
"react-router-dom": "^5.1.2",
|
"react-router-dom": "^5.1.2",
|
||||||
"react-scripts": "3.2.0",
|
"react-scripts": "3.3.1",
|
||||||
"react-trello": "^2.2.3",
|
"react-trello": "^2.2.3",
|
||||||
"redux": "^4.0.5",
|
"redux": "^4.0.5",
|
||||||
"redux-logger": "^3.0.6",
|
"redux-logger": "^3.0.6",
|
||||||
"redux-persist": "^6.0.0",
|
"redux-persist": "^6.0.0",
|
||||||
"redux-saga": "^1.1.3",
|
"redux-saga": "^1.1.3",
|
||||||
"reselect": "^4.0.0",
|
"reselect": "^4.0.0",
|
||||||
"styled-components": "^4.4.1",
|
"styled-components": "^5.0.1",
|
||||||
"subscriptions-transport-ws": "^0.9.16"
|
"subscriptions-transport-ws": "^0.9.16"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -10,45 +10,45 @@ export default function JobDetailCardsInsuranceComponent({ loading, data }) {
|
|||||||
<CardTemplate loading={loading} title={t("jobs.labels.cards.insurance")}>
|
<CardTemplate loading={loading} title={t("jobs.labels.cards.insurance")}>
|
||||||
{data ? (
|
{data ? (
|
||||||
<span>
|
<span>
|
||||||
<div>{data?.ins_co_nm || t("general.labels.unknown")}</div>
|
<div>{data.ins_co_nm || t("general.labels.unknown")}</div>
|
||||||
<div>{data?.clm_no || t("general.labels.unknown")}</div>
|
<div>{data.clm_no || t("general.labels.unknown")}</div>
|
||||||
<div>
|
<div>
|
||||||
{t("jobs.labels.cards.filehandler")}
|
{t("jobs.labels.cards.filehandler")}
|
||||||
{data?.ins_ea ? (
|
{data.ins_ea ? (
|
||||||
<a href={`mailto:${data.ins_ea}`}>
|
<a href={`mailto:${data.ins_ea}`}>
|
||||||
<div>{`${data?.ins_ct_fn || ""} ${data?.ins_ct_ln || ""}`}</div>
|
<div>{`${data.ins_ct_fn || ""} ${data.ins_ct_ln || ""}`}</div>
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<div>{`${data?.ins_ct_fn || ""} ${data?.ins_ct_ln || ""}`}</div>
|
<div>{`${data.ins_ct_fn || ""} ${data.ins_ct_ln || ""}`}</div>
|
||||||
)}
|
)}
|
||||||
{data?.ins_ph1 ? (
|
{data.ins_ph1 ? (
|
||||||
<PhoneFormatter>{data?.ins_ph1}</PhoneFormatter>
|
<PhoneFormatter>{data.ins_ph1}</PhoneFormatter>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{t("jobs.labels.cards.appraiser")}
|
{t("jobs.labels.cards.appraiser")}
|
||||||
{data?.est_ea ? (
|
{data.est_ea ? (
|
||||||
<a href={`mailto:${data.est_ea}`}>
|
<a href={`mailto:${data.est_ea}`}>
|
||||||
<div>{`${data?.ins_ct_fn || ""} ${data?.ins_ct_ln || ""}`}</div>
|
<div>{`${data.ins_ct_fn || ""} ${data.ins_ct_ln || ""}`}</div>
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<div>{`${data?.ins_ct_fn || ""} ${data?.ins_ct_ln || ""}`}</div>
|
<div>{`${data.ins_ct_fn || ""} ${data.ins_ct_ln || ""}`}</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{t("jobs.labels.cards.estimator")}
|
{t("jobs.labels.cards.estimator")}
|
||||||
{data?.est_ea ? (
|
{data.est_ea ? (
|
||||||
<a href={`mailto:${data.est_ea}`}>
|
<a href={`mailto:${data.est_ea}`}>
|
||||||
<div>{`${data?.est_ct_fn || ""} ${data?.est_ct_ln || ""}`}</div>
|
<div>{`${data.est_ct_fn || ""} ${data.est_ct_ln || ""}`}</div>
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<div>{`${data?.est_ct_fn || ""} ${data?.est_ct_ln || ""}`}</div>
|
<div>{`${data.est_ct_fn || ""} ${data.est_ct_ln || ""}`}</div>
|
||||||
)}
|
)}
|
||||||
{data?.est_ph1 ? (
|
{data.est_ph1 ? (
|
||||||
<PhoneFormatter>{data?.est_ph1}</PhoneFormatter>
|
<PhoneFormatter>{data.est_ph1}</PhoneFormatter>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default function JobDetailCardsNotesComponent({ loading, data }) {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<CardTemplate
|
<CardTemplate
|
||||||
loading={loading}
|
loading={loading}
|
||||||
title={t("jobs.labels.cards.notes")}
|
title={t("jobs.labels.cards.notes")}
|
||||||
extraLink={`/manage/jobs/${data.id}#notes`}>
|
extraLink={`/manage/jobs/${data.id}#notes`}>
|
||||||
@@ -22,7 +22,7 @@ export default function JobDetailCardsNotesComponent({ loading, data }) {
|
|||||||
<List
|
<List
|
||||||
size='small'
|
size='small'
|
||||||
bordered
|
bordered
|
||||||
dataSource={data?.notes}
|
dataSource={data.notes}
|
||||||
renderItem={item => (
|
renderItem={item => (
|
||||||
<List.Item>
|
<List.Item>
|
||||||
{item.critical ? (
|
{item.critical ? (
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export default function JobDetailCardsVehicleComponent({ loading, data }) {
|
|||||||
<CardTemplate
|
<CardTemplate
|
||||||
loading={loading}
|
loading={loading}
|
||||||
title={t("jobs.labels.cards.vehicle")}
|
title={t("jobs.labels.cards.vehicle")}
|
||||||
extraLink={data?.vehicle ? `/manage/vehicles/${data?.vehicle?.id}` : null}
|
extraLink={data.vehicle ? `/manage/vehicles/${data.vehicle.id}` : null}
|
||||||
>
|
>
|
||||||
{data ? (
|
{data ? (
|
||||||
<span>
|
<span>
|
||||||
|
|||||||
@@ -52,24 +52,28 @@ export default function JobLinesContainer({ jobId, form }) {
|
|||||||
? searchText
|
? searchText
|
||||||
? data.joblines.filter(
|
? data.joblines.filter(
|
||||||
jl =>
|
jl =>
|
||||||
jl.unq_seq
|
(jl.unq_seq || "")
|
||||||
?.toString()
|
.toString()
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
jl.line_desc
|
(jl.line_desc || "")
|
||||||
?.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
jl.part_type
|
(jl.part_type || "")
|
||||||
?.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
jl.oem_partno
|
(jl.oem_partno || "")
|
||||||
?.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
jl.op_code_desc
|
(jl.op_code_desc || "")
|
||||||
?.toLowerCase()
|
.toLowerCase()
|
||||||
.includes(searchText.toLowerCase()) ||
|
.includes(searchText.toLowerCase()) ||
|
||||||
jl.db_price?.toString().includes(searchText.toLowerCase()) ||
|
(jl.db_price || "")
|
||||||
jl.act_price?.toString().includes(searchText.toLowerCase())
|
.toString()
|
||||||
|
.includes(searchText.toLowerCase()) ||
|
||||||
|
(jl.act_price || "")
|
||||||
|
.toString()
|
||||||
|
.includes(searchText.toLowerCase())
|
||||||
)
|
)
|
||||||
: data.joblines
|
: data.joblines
|
||||||
: null
|
: null
|
||||||
|
|||||||
@@ -41,9 +41,7 @@ export default connect(
|
|||||||
jobId={jobId}
|
jobId={jobId}
|
||||||
currentUser={currentUser}
|
currentUser={currentUser}
|
||||||
shopId={
|
shopId={
|
||||||
shopData.data?.bodyshops[0]?.id
|
shopData.data.bodyshops[0].id ? shopData.data.bodyshops[0].id : "error"
|
||||||
? shopData.data?.bodyshops[0]?.id
|
|
||||||
: "error"
|
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -121,11 +121,11 @@ export default withRouter(function JobsList({
|
|||||||
key: "plate_no",
|
key: "plate_no",
|
||||||
width: "8%",
|
width: "8%",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
sorter: (a, b) => alphaSort(a.vehicle?.plate_no, b.vehicle?.plate_no),
|
sorter: (a, b) => alphaSort(a.vehicle.plate_no, b.vehicle.plate_no),
|
||||||
sortOrder:
|
sortOrder:
|
||||||
state.sortedInfo.columnKey === "plate_no" && state.sortedInfo.order,
|
state.sortedInfo.columnKey === "plate_no" && state.sortedInfo.order,
|
||||||
render: (text, record) => {
|
render: (text, record) => {
|
||||||
return record.vehicle?.plate_no ? (
|
return record.vehicle.plate_no ? (
|
||||||
<span>{record.vehicle.plate_no}</span>
|
<span>{record.vehicle.plate_no}</span>
|
||||||
) : (
|
) : (
|
||||||
t("general.labels.unknown")
|
t("general.labels.unknown")
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default function NoteUpsertModalComponent({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
title={noteState?.id ? t("notes.actions.edit") : t("notes.actions.new")}
|
title={noteState.id ? t("notes.actions.edit") : t("notes.actions.new")}
|
||||||
visible={visible}
|
visible={visible}
|
||||||
okText={t("general.labels.save")}
|
okText={t("general.labels.save")}
|
||||||
onOk={() => {
|
onOk={() => {
|
||||||
@@ -22,7 +22,8 @@ export default function NoteUpsertModalComponent({
|
|||||||
}}
|
}}
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
changeVisibility(false);
|
changeVisibility(false);
|
||||||
}}>
|
}}
|
||||||
|
>
|
||||||
<div>
|
<div>
|
||||||
{t("notes.fields.critical")}
|
{t("notes.fields.critical")}
|
||||||
<Switch
|
<Switch
|
||||||
|
|||||||
@@ -27,23 +27,24 @@ export default connect(
|
|||||||
bodyshop,
|
bodyshop,
|
||||||
refetch
|
refetch
|
||||||
}) {
|
}) {
|
||||||
const existingAppointments = useQuery(QUERY_APPOINTMENTS_BY_JOBID, {
|
|
||||||
variables: { jobid: jobId },
|
|
||||||
fetchPolicy: "network-only",
|
|
||||||
skip: !jobId
|
|
||||||
});
|
|
||||||
const [scheduleModalVisible, setscheduleModalVisible] = scheduleModalState;
|
const [scheduleModalVisible, setscheduleModalVisible] = scheduleModalState;
|
||||||
const [appData, setAppData] = useState({ jobid: jobId, start: null });
|
const [appData, setAppData] = useState({ jobid: jobId, start: null });
|
||||||
const [insertAppointment] = useMutation(INSERT_APPOINTMENT);
|
const [insertAppointment] = useMutation(INSERT_APPOINTMENT);
|
||||||
const [updateJobStatus] = useMutation(UPDATE_JOB_STATUS, {
|
const [updateJobStatus] = useMutation(UPDATE_JOB_STATUS, {
|
||||||
variables: {
|
variables: {
|
||||||
jobId: jobId,
|
jobId: jobId,
|
||||||
status: bodyshop.md_ro_statuses.default_scheduled
|
status: bodyshop.md_ro_statuses.default_scheduled
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const [formData, setFormData] = useState({ notifyCustomer: false });
|
const [formData, setFormData] = useState({ notifyCustomer: false });
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
const existingAppointments = useQuery(QUERY_APPOINTMENTS_BY_JOBID, {
|
||||||
|
variables: { jobid: jobId },
|
||||||
|
fetchPolicy: "network-only",
|
||||||
|
skip: !scheduleModalVisible
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ScheduleJobModalComponent
|
<ScheduleJobModalComponent
|
||||||
existingAppointments={existingAppointments}
|
existingAppointments={existingAppointments}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const errorLink = onError(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (networkError) {
|
if (networkError) {
|
||||||
if (networkError?.message.includes("JWTExpired")) {
|
if (networkError.message.includes("JWTExpired")) {
|
||||||
expired = true;
|
expired = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
import { BackTop, Layout, notification } from "antd";
|
import { BackTop, Layout, notification } from "antd";
|
||||||
import React, { lazy, Suspense, useEffect } from "react";
|
import React, { lazy, Suspense, useEffect } from "react";
|
||||||
|
import { useQuery } from "react-apollo";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
//This page will handle all routing for the entire application.
|
//This page will handle all routing for the entire application.
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { Route } from "react-router";
|
import { Route } from "react-router";
|
||||||
import { createStructuredSelector } from "reselect";
|
|
||||||
import { useQuery } from "react-apollo";
|
|
||||||
import { QUERY_BODYSHOP } from "../../graphql/bodyshop.queries";
|
|
||||||
import ErrorBoundary from "../../components/error-boundary/error-boundary.component";
|
import ErrorBoundary from "../../components/error-boundary/error-boundary.component";
|
||||||
import FooterComponent from "../../components/footer/footer.component";
|
import FooterComponent from "../../components/footer/footer.component";
|
||||||
//Component Imports
|
//Component Imports
|
||||||
import HeaderContainer from "../../components/header/header.container";
|
import HeaderContainer from "../../components/header/header.container";
|
||||||
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
|
import LoadingSpinner from "../../components/loading-spinner/loading-spinner.component";
|
||||||
|
import { QUERY_BODYSHOP } from "../../graphql/bodyshop.queries";
|
||||||
//const WhiteBoardPage = lazy(() => import("../white-board/white-board.page"));
|
//const WhiteBoardPage = lazy(() => import("../white-board/white-board.page"));
|
||||||
import { setBodyshop } from "../../redux/user/user.actions";
|
import { setBodyshop } from "../../redux/user/user.actions";
|
||||||
import "./manage.page.styles.scss";
|
import "./manage.page.styles.scss";
|
||||||
|
|||||||
3110
client/yarn.lock
3110
client/yarn.lock
File diff suppressed because it is too large
Load Diff
@@ -17,14 +17,14 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"apollo-cache-persist": "^0.1.1",
|
"apollo-cache-persist": "^0.1.1",
|
||||||
"aws-sdk": "^2.603.0",
|
"aws-sdk": "^2.613.0",
|
||||||
"body-parser": "^1.18.3",
|
"body-parser": "^1.18.3",
|
||||||
"compression": "^1.7.4",
|
"compression": "^1.7.4",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "7.0.0",
|
"dotenv": "8.2.0",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"express-sslify": "^1.2.0",
|
"express-sslify": "^1.2.0",
|
||||||
"firebase-tools": "^7.9.0"
|
"firebase-tools": "^7.12.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"concurrently": "^4.0.1",
|
"concurrently": "^4.0.1",
|
||||||
|
|||||||
31
yarn.lock
31
yarn.lock
@@ -386,10 +386,10 @@ asynckit@^0.4.0:
|
|||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||||
|
|
||||||
aws-sdk@^2.603.0:
|
aws-sdk@^2.613.0:
|
||||||
version "2.603.0"
|
version "2.613.0"
|
||||||
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.603.0.tgz#0920756d2666f4fcfa7233841ef35cd04da81348"
|
resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.613.0.tgz#f0d4c99f0df7ee8227d331dde19d5251b31a5da7"
|
||||||
integrity sha512-+VlskUDLZLQDDlaVa0Tb02aEFEWcKkTfTew1SGYwce9hUrKcR33IX4e9kM6MyI7UeLQAl0v8dagTniP67UrTQw==
|
integrity sha512-FYLaVtC/AlrcnjsPw1JhAsKd6yapr918Mk0jAcw3yFZp1sI2V0Um+2pmijLFsV+nNRxFlCVJRhhFWB5GK6yALA==
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer "4.9.1"
|
buffer "4.9.1"
|
||||||
events "1.1.1"
|
events "1.1.1"
|
||||||
@@ -1092,10 +1092,10 @@ dot-prop@^4.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-obj "^1.0.0"
|
is-obj "^1.0.0"
|
||||||
|
|
||||||
dotenv@7.0.0:
|
dotenv@8.2.0:
|
||||||
version "7.0.0"
|
version "8.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c"
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
||||||
integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==
|
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
||||||
|
|
||||||
dotenv@^6.1.0:
|
dotenv@^6.1.0:
|
||||||
version "6.2.0"
|
version "6.2.0"
|
||||||
@@ -1548,10 +1548,10 @@ find-up@^3.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
locate-path "^3.0.0"
|
locate-path "^3.0.0"
|
||||||
|
|
||||||
firebase-tools@^7.9.0:
|
firebase-tools@^7.12.1:
|
||||||
version "7.9.0"
|
version "7.12.1"
|
||||||
resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-7.9.0.tgz#32661980943f5ebbb2d82c126762c468ae0cff9c"
|
resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-7.12.1.tgz#af78bbc446ae46d722938bd8009c351d52ec01f3"
|
||||||
integrity sha512-dYxuFflaPAkic2KQyPJ6spox8KzlQRb4Xyk6oVDorBV0YmBIJ3VQhJYbwSZwwDlbCmiPiMXNBM26JUifp09Qfw==
|
integrity sha512-4cfHltsfUzKyt03OH9JUYrCPsq0OIZ9i54IzJRjJgs68NJDLrhUislBipw5Am0QgF8QDYpzz8wLTH56fNgmx8g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@google-cloud/pubsub" "^1.1.5"
|
"@google-cloud/pubsub" "^1.1.5"
|
||||||
JSONStream "^1.2.1"
|
JSONStream "^1.2.1"
|
||||||
@@ -1574,6 +1574,7 @@ firebase-tools@^7.9.0:
|
|||||||
fs-extra "^0.23.1"
|
fs-extra "^0.23.1"
|
||||||
glob "^7.1.2"
|
glob "^7.1.2"
|
||||||
google-auto-auth "^0.7.2"
|
google-auto-auth "^0.7.2"
|
||||||
|
google-gax "~1.12.0"
|
||||||
inquirer "~6.3.1"
|
inquirer "~6.3.1"
|
||||||
jsonschema "^1.0.2"
|
jsonschema "^1.0.2"
|
||||||
jsonwebtoken "^8.2.1"
|
jsonwebtoken "^8.2.1"
|
||||||
@@ -1587,7 +1588,7 @@ firebase-tools@^7.9.0:
|
|||||||
portfinder "^1.0.23"
|
portfinder "^1.0.23"
|
||||||
progress "^2.0.3"
|
progress "^2.0.3"
|
||||||
request "^2.87.0"
|
request "^2.87.0"
|
||||||
semver "^5.0.3"
|
semver "^5.7.1"
|
||||||
superstatic "^6.0.1"
|
superstatic "^6.0.1"
|
||||||
tar "^4.3.0"
|
tar "^4.3.0"
|
||||||
tcp-port-used "^1.0.1"
|
tcp-port-used "^1.0.1"
|
||||||
@@ -1843,7 +1844,7 @@ google-auto-auth@^0.7.2:
|
|||||||
google-auth-library "^0.10.0"
|
google-auth-library "^0.10.0"
|
||||||
request "^2.79.0"
|
request "^2.79.0"
|
||||||
|
|
||||||
google-gax@^1.7.5:
|
google-gax@^1.7.5, google-gax@~1.12.0:
|
||||||
version "1.12.0"
|
version "1.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-1.12.0.tgz#f926f7e6abda245db38ecbebbbf58daaf3a8f687"
|
resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-1.12.0.tgz#f926f7e6abda245db38ecbebbbf58daaf3a8f687"
|
||||||
integrity sha512-BeeoxVO6y9K20gUsexUwptutd0PfrTItrA02JWwwstlBIOAcvgFp86MHWufQsnrkPVhxBjHXq65aIkSejtJjDg==
|
integrity sha512-BeeoxVO6y9K20gUsexUwptutd0PfrTItrA02JWwwstlBIOAcvgFp86MHWufQsnrkPVhxBjHXq65aIkSejtJjDg==
|
||||||
@@ -3508,7 +3509,7 @@ semver-diff@^2.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.0.3"
|
semver "^5.0.3"
|
||||||
|
|
||||||
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.6.0:
|
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||||
|
|||||||
Reference in New Issue
Block a user