diff --git a/.snyk b/.snyk deleted file mode 100644 index 99f8e448..00000000 --- a/.snyk +++ /dev/null @@ -1,19 +0,0 @@ -# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. -version: v1.14.1 -# ignores vulnerabilities until expiry date; change duration by modifying expiry date -ignore: - SNYK-JS-YARGSPARSER-560381: - - gulp > gulp-cli > yargs > yargs-parser: - reason: dev dependency - expires: '2020-12-02T15:32:40.048Z' - SNYK-JS-Y18N-1021887: - - gulp > gulp-cli > yargs > y18n: - reason: Dev dependency - expires: '2020-12-17T14:32:30.095Z' - - mocha > yargs > y18n: - reason: Dev dependency - expires: '2020-12-17T14:32:30.095Z' - - nyc > yargs > y18n: - reason: Dev dependency - expires: '2020-12-17T14:32:30.095Z' -patch: {} diff --git a/handlers/organizations-post/doAddBankRecord.d.ts b/handlers/organizations-post/doAddBankRecord.d.ts new file mode 100644 index 00000000..3b988cf8 --- /dev/null +++ b/handlers/organizations-post/doAddBankRecord.d.ts @@ -0,0 +1,2 @@ +import type { RequestHandler } from "express"; +export declare const handler: RequestHandler; diff --git a/handlers/organizations-post/doAddBankRecord.js b/handlers/organizations-post/doAddBankRecord.js new file mode 100644 index 00000000..45514990 --- /dev/null +++ b/handlers/organizations-post/doAddBankRecord.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +const addOrganizationBankRecord_1 = require("../../helpers/licencesDB/addOrganizationBankRecord"); +exports.handler = (req, res) => { + const success = addOrganizationBankRecord_1.addOrganizationBankRecord(req.body, req.session); + if (success) { + return res.json({ + success: true, + message: "Record added successfully." + }); + } + else { + return res.json({ + success: false, + message: "Please make sure that the record you are trying to create does not already exist." + }); + } +}; diff --git a/handlers/organizations-post/doAddBankRecord.ts b/handlers/organizations-post/doAddBankRecord.ts new file mode 100644 index 00000000..96985321 --- /dev/null +++ b/handlers/organizations-post/doAddBankRecord.ts @@ -0,0 +1,25 @@ +import type { RequestHandler } from "express"; + +import { addOrganizationBankRecord } from "../../helpers/licencesDB/addOrganizationBankRecord"; + + +export const handler: RequestHandler = (req, res) => { + + const success = addOrganizationBankRecord(req.body, req.session); + + if (success) { + + return res.json({ + success: true, + message: "Record added successfully." + }); + + } else { + + return res.json({ + success: false, + message: "Please make sure that the record you are trying to create does not already exist." + }); + + } +}; diff --git a/handlers/organizations-post/doDeleteBankRecord.d.ts b/handlers/organizations-post/doDeleteBankRecord.d.ts new file mode 100644 index 00000000..3b988cf8 --- /dev/null +++ b/handlers/organizations-post/doDeleteBankRecord.d.ts @@ -0,0 +1,2 @@ +import type { RequestHandler } from "express"; +export declare const handler: RequestHandler; diff --git a/handlers/organizations-post/doDeleteBankRecord.js b/handlers/organizations-post/doDeleteBankRecord.js new file mode 100644 index 00000000..d380dca1 --- /dev/null +++ b/handlers/organizations-post/doDeleteBankRecord.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +const deleteOrganizationBankRecord_1 = require("../../helpers/licencesDB/deleteOrganizationBankRecord"); +exports.handler = (req, res) => { + const success = deleteOrganizationBankRecord_1.deleteOrganizationBankRecord(req.body.organizationID, req.body.recordIndex, req.session); + if (success) { + res.json({ + success: true, + message: "Organization updated successfully." + }); + } + else { + res.json({ + success: false, + message: "Record Not Saved" + }); + } +}; diff --git a/handlers/organizations-post/doDeleteBankRecord.ts b/handlers/organizations-post/doDeleteBankRecord.ts new file mode 100644 index 00000000..cc457b80 --- /dev/null +++ b/handlers/organizations-post/doDeleteBankRecord.ts @@ -0,0 +1,22 @@ +import type { RequestHandler } from "express"; + +import { deleteOrganizationBankRecord } from "../../helpers/licencesDB/deleteOrganizationBankRecord"; + + +export const handler: RequestHandler = (req, res) => { + + const success = + deleteOrganizationBankRecord(req.body.organizationID, req.body.recordIndex, req.session); + + if (success) { + res.json({ + success: true, + message: "Organization updated successfully." + }); + } else { + res.json({ + success: false, + message: "Record Not Saved" + }); + } +}; diff --git a/handlers/organizations-post/doEditBankRecord.d.ts b/handlers/organizations-post/doEditBankRecord.d.ts new file mode 100644 index 00000000..3b988cf8 --- /dev/null +++ b/handlers/organizations-post/doEditBankRecord.d.ts @@ -0,0 +1,2 @@ +import type { RequestHandler } from "express"; +export declare const handler: RequestHandler; diff --git a/handlers/organizations-post/doEditBankRecord.js b/handlers/organizations-post/doEditBankRecord.js new file mode 100644 index 00000000..397f8cac --- /dev/null +++ b/handlers/organizations-post/doEditBankRecord.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +const updateOrganizationBankRecord_1 = require("../../helpers/licencesDB/updateOrganizationBankRecord"); +exports.handler = (req, res) => { + const success = updateOrganizationBankRecord_1.updateOrganizationBankRecord(req.body, req.session); + if (success) { + return res.json({ + success: true, + message: "Record updated successfully." + }); + } + else { + return res.json({ + success: false, + message: "Please try again." + }); + } +}; diff --git a/handlers/organizations-post/doEditBankRecord.ts b/handlers/organizations-post/doEditBankRecord.ts new file mode 100644 index 00000000..cc96c4a8 --- /dev/null +++ b/handlers/organizations-post/doEditBankRecord.ts @@ -0,0 +1,25 @@ +import type { RequestHandler } from "express"; + +import { updateOrganizationBankRecord } from "../../helpers/licencesDB/updateOrganizationBankRecord"; + + +export const handler: RequestHandler = (req, res) => { + + const success = updateOrganizationBankRecord(req.body, req.session); + + if (success) { + + return res.json({ + success: true, + message: "Record updated successfully." + }); + + } else { + + return res.json({ + success: false, + message: "Please try again." + }); + + } +}; diff --git a/handlers/organizations-post/doUpdateBankRecordsByMonth.d.ts b/handlers/organizations-post/doUpdateBankRecordsByMonth.d.ts new file mode 100644 index 00000000..3b988cf8 --- /dev/null +++ b/handlers/organizations-post/doUpdateBankRecordsByMonth.d.ts @@ -0,0 +1,2 @@ +import type { RequestHandler } from "express"; +export declare const handler: RequestHandler; diff --git a/handlers/organizations-post/doUpdateBankRecordsByMonth.js b/handlers/organizations-post/doUpdateBankRecordsByMonth.js new file mode 100644 index 00000000..78cce539 --- /dev/null +++ b/handlers/organizations-post/doUpdateBankRecordsByMonth.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.handler = void 0; +const addOrganizationBankRecord_1 = require("../../helpers/licencesDB/addOrganizationBankRecord"); +const updateOrganizationBankRecord_1 = require("../../helpers/licencesDB/updateOrganizationBankRecord"); +const deleteOrganizationBankRecord_1 = require("../../helpers/licencesDB/deleteOrganizationBankRecord"); +const bankRecordIsBlank = (bankRecord) => { + if (bankRecord.recordDateString === "" && bankRecord.recordNote === "" && !bankRecord.recordIsNA) { + return true; + } + return false; +}; +exports.handler = (req, res) => { + const organizationID = parseInt(req.body.organizationID, 10); + const accountNumber = req.body.accountNumber; + const bankingYear = parseInt(req.body.bankingYear, 10); + const bankingMonth = parseInt(req.body.bankingMonth, 10); + const maxBankRecordTypeIndex = parseInt(req.body.bankRecordTypeIndex, 10); + let success = true; + for (let typeIndex = 0; typeIndex <= maxBankRecordTypeIndex; typeIndex += 1) { + const typeIndexString = typeIndex.toString(); + const recordIndex = (req.body["recordIndex-" + typeIndexString] === "" ? null : parseInt(req.body["recordIndex-" + typeIndexString], 10)); + const bankRecord = { + recordType: "bankRecord", + organizationID, + accountNumber, + bankingYear, + bankingMonth, + recordIndex, + bankRecordType: req.body["bankRecordType-" + typeIndexString], + recordDateString: req.body["recordDateString-" + typeIndexString], + recordNote: req.body["recordNote-" + typeIndexString], + recordIsNA: (req.body["recordIsNA-" + typeIndexString] === "1") + }; + if (req.body["recordIndex-" + typeIndexString] === "") { + if (!bankRecordIsBlank(bankRecord)) { + const addSuccess = addOrganizationBankRecord_1.addOrganizationBankRecord(bankRecord, req.session); + if (!addSuccess) { + success = false; + } + } + } + else { + if (bankRecordIsBlank(bankRecord)) { + const deleteSuccess = deleteOrganizationBankRecord_1.deleteOrganizationBankRecord(organizationID, recordIndex, req.session); + if (!deleteSuccess) { + success = false; + } + } + else { + const updateSuccess = updateOrganizationBankRecord_1.updateOrganizationBankRecord(bankRecord, req.session); + if (!updateSuccess) { + success = false; + } + } + } + } + if (success) { + return res.json({ + success: true + }); + } + else { + return res.json({ + success: false, + message: "Please try again." + }); + } +}; diff --git a/handlers/organizations-post/doUpdateBankRecordsByMonth.ts b/handlers/organizations-post/doUpdateBankRecordsByMonth.ts new file mode 100644 index 00000000..e35a5c5a --- /dev/null +++ b/handlers/organizations-post/doUpdateBankRecordsByMonth.ts @@ -0,0 +1,86 @@ +import type { RequestHandler } from "express"; + +import { addOrganizationBankRecord } from "../../helpers/licencesDB/addOrganizationBankRecord"; +import { updateOrganizationBankRecord } from "../../helpers/licencesDB/updateOrganizationBankRecord"; +import { deleteOrganizationBankRecord } from "../../helpers/licencesDB/deleteOrganizationBankRecord"; + +import type * as llm from "../../types/recordTypes"; + + +const bankRecordIsBlank = (bankRecord: llm.OrganizationBankRecord) => { + + if (bankRecord.recordDateString === "" && bankRecord.recordNote === "" && !bankRecord.recordIsNA) { + return true; + } + return false; +}; + + +export const handler: RequestHandler = (req, res) => { + + const organizationID = parseInt(req.body.organizationID, 10); + const accountNumber = req.body.accountNumber; + const bankingYear = parseInt(req.body.bankingYear, 10); + const bankingMonth = parseInt(req.body.bankingMonth, 10); + + const maxBankRecordTypeIndex = parseInt(req.body.bankRecordTypeIndex, 10); + + let success = true; + + for (let typeIndex = 0; typeIndex <= maxBankRecordTypeIndex; typeIndex += 1) { + + const typeIndexString = typeIndex.toString(); + + const recordIndex = (req.body["recordIndex-" + typeIndexString] === "" ? null : parseInt(req.body["recordIndex-" + typeIndexString], 10)); + + const bankRecord: llm.OrganizationBankRecord = { + recordType: "bankRecord", + organizationID, + accountNumber, + bankingYear, + bankingMonth, + recordIndex, + bankRecordType: req.body["bankRecordType-" + typeIndexString], + recordDateString: req.body["recordDateString-" + typeIndexString], + recordNote: req.body["recordNote-" + typeIndexString], + recordIsNA: (req.body["recordIsNA-" + typeIndexString] === "1") + }; + + if (req.body["recordIndex-" + typeIndexString] === "") { + + if (!bankRecordIsBlank(bankRecord)) { + const addSuccess = addOrganizationBankRecord(bankRecord, req.session); + if (!addSuccess) { + success = false; + } + } + + } else { + + if (bankRecordIsBlank(bankRecord)) { + const deleteSuccess = deleteOrganizationBankRecord(organizationID, recordIndex, req.session); + if (!deleteSuccess) { + success = false; + } + } else { + const updateSuccess = updateOrganizationBankRecord(bankRecord, req.session); + if (!updateSuccess) { + success = false; + } + } + } + } + + if (success) { + return res.json({ + success: true + }); + + } else { + return res.json({ + success: false, + message: "Please try again." + }); + } + +}; diff --git a/helpers/licencesDB-organizations.d.ts b/helpers/licencesDB-organizations.d.ts index d9878632..3ad2d299 100644 --- a/helpers/licencesDB-organizations.d.ts +++ b/helpers/licencesDB-organizations.d.ts @@ -1,17 +1,18 @@ import type * as llm from "../types/recordTypes"; -export declare const createOrganization: (reqBody: llm.Organization, reqSession: any) => number; -export declare const updateOrganization: (reqBody: llm.Organization, reqSession: any) => boolean; -export declare const deleteOrganization: (organizationID: number, reqSession: any) => boolean; -export declare const restoreOrganization: (organizationID: number, reqSession: any) => boolean; +import type * as expressSession from "express-session"; +export declare const createOrganization: (reqBody: llm.Organization, reqSession: expressSession.Session) => number; +export declare const updateOrganization: (reqBody: llm.Organization, reqSession: expressSession.Session) => boolean; +export declare const deleteOrganization: (organizationID: number, reqSession: expressSession.Session) => boolean; +export declare const restoreOrganization: (organizationID: number, reqSession: expressSession.Session) => boolean; export declare const getInactiveOrganizations: (inactiveYears: number) => llm.Organization[]; export declare const getDeletedOrganizations: () => llm.Organization[]; export declare const deleteOrganizationRepresentative: (organizationID: number, representativeIndex: number) => boolean; export declare const setDefaultOrganizationRepresentative: (organizationID: number, representativeIndex: number) => boolean; -export declare const getOrganizationRemark: (organizationID: number, remarkIndex: number, reqSession: any) => llm.OrganizationRemark; -export declare const addOrganizationRemark: (reqBody: llm.OrganizationRemark, reqSession: any) => number; -export declare const updateOrganizationRemark: (reqBody: llm.OrganizationRemark, reqSession: any) => boolean; -export declare const deleteOrganizationRemark: (organizationID: number, remarkIndex: number, reqSession: any) => boolean; -export declare const getOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: any) => llm.OrganizationReminder; +export declare const getOrganizationRemark: (organizationID: number, remarkIndex: number, reqSession: expressSession.Session) => llm.OrganizationRemark; +export declare const addOrganizationRemark: (reqBody: llm.OrganizationRemark, reqSession: expressSession.Session) => number; +export declare const updateOrganizationRemark: (reqBody: llm.OrganizationRemark, reqSession: expressSession.Session) => boolean; +export declare const deleteOrganizationRemark: (organizationID: number, remarkIndex: number, reqSession: expressSession.Session) => boolean; +export declare const getOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: expressSession.Session) => llm.OrganizationReminder; export declare const updateOrganizationReminder: (reqBody: { organizationID: string; reminderIndex: string; @@ -20,10 +21,7 @@ export declare const updateOrganizationReminder: (reqBody: { reminderStatus: string; reminderNote: string; dismissedDateString: string; -}, reqSession: any) => boolean; -export declare const dismissOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: any) => boolean; +}, reqSession: expressSession.Session) => boolean; +export declare const dismissOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: expressSession.Session) => boolean; export declare const getOrganizationBankRecords: (organizationID: number, accountNumber: string, bankingYear: number) => llm.OrganizationBankRecord[]; export declare const getOrganizationBankRecordStats: (organizationID: number) => any[]; -export declare const addOrganizationBankRecord: (reqBody: llm.OrganizationBankRecord, reqSession: any) => boolean; -export declare const updateOrganizationBankRecord: (reqBody: llm.OrganizationBankRecord, reqSession: any) => boolean; -export declare const deleteOrganizationBankRecord: (organizationID: number, recordIndex: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB-organizations.js b/helpers/licencesDB-organizations.js index b317d507..6ef8d47c 100644 --- a/helpers/licencesDB-organizations.js +++ b/helpers/licencesDB-organizations.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.deleteOrganizationBankRecord = exports.updateOrganizationBankRecord = exports.addOrganizationBankRecord = exports.getOrganizationBankRecordStats = exports.getOrganizationBankRecords = exports.dismissOrganizationReminder = exports.updateOrganizationReminder = exports.getOrganizationReminder = exports.deleteOrganizationRemark = exports.updateOrganizationRemark = exports.addOrganizationRemark = exports.getOrganizationRemark = exports.setDefaultOrganizationRepresentative = exports.deleteOrganizationRepresentative = exports.getDeletedOrganizations = exports.getInactiveOrganizations = exports.restoreOrganization = exports.deleteOrganization = exports.updateOrganization = exports.createOrganization = void 0; +exports.getOrganizationBankRecordStats = exports.getOrganizationBankRecords = exports.dismissOrganizationReminder = exports.updateOrganizationReminder = exports.getOrganizationReminder = exports.deleteOrganizationRemark = exports.updateOrganizationRemark = exports.addOrganizationRemark = exports.getOrganizationRemark = exports.setDefaultOrganizationRepresentative = exports.deleteOrganizationRepresentative = exports.getDeletedOrganizations = exports.getInactiveOrganizations = exports.restoreOrganization = exports.deleteOrganization = exports.updateOrganization = exports.createOrganization = void 0; const licencesDB_1 = require("./licencesDB"); const sqlite = require("better-sqlite3"); const databasePaths_1 = require("../data/databasePaths"); @@ -296,73 +296,3 @@ exports.getOrganizationBankRecordStats = (organizationID) => { db.close(); return rows; }; -exports.addOrganizationBankRecord = (reqBody, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); - const record = db.prepare("select recordIndex, recordDelete_timeMillis" + - " from OrganizationBankRecords" + - " where organizationID = ?" + - " and accountNumber = ?" + - " and bankingYear = ?" + - " and bankingMonth = ?" + - " and bankRecordType = ?") - .get(reqBody.organizationID, reqBody.accountNumber, reqBody.bankingYear, reqBody.bankingMonth, reqBody.bankRecordType); - if (record) { - if (record.recordDelete_timeMillis) { - const info = db.prepare("delete from OrganizationBankRecords" + - " where organizationID = ?" + - " and recordIndex = ?") - .run(reqBody.organizationID, record.recordIndex); - if (info.changes === 0) { - db.close(); - return false; - } - } - else { - db.close(); - return false; - } - } - const row = db.prepare("select ifnull(max(recordIndex), -1) as maxIndex" + - " from OrganizationBankRecords" + - " where organizationID = ?") - .get(reqBody.organizationID); - const newRecordIndex = row.maxIndex + 1; - const nowMillis = Date.now(); - const info = db.prepare("insert into OrganizationBankRecords" + - " (organizationID, recordIndex," + - " accountNumber, bankingYear, bankingMonth, bankRecordType, recordIsNA, recordDate, recordNote," + - " recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis)" + - " values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") - .run(reqBody.organizationID, newRecordIndex, reqBody.accountNumber, reqBody.bankingYear, reqBody.bankingMonth, reqBody.bankRecordType, reqBody.recordIsNA || 0, dateTimeFns.dateStringToInteger(reqBody.recordDateString), reqBody.recordNote, reqSession.user.userName, nowMillis, reqSession.user.userName, nowMillis); - db.close(); - return info.changes > 0; -}; -exports.updateOrganizationBankRecord = (reqBody, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); - const nowMillis = Date.now(); - const info = db.prepare("update OrganizationBankRecords" + - " set recordDate = ?," + - " recordIsNA = ?," + - " recordNote = ?," + - " recordUpdate_userName = ?," + - " recordUpdate_timeMillis = ?" + - " where organizationID = ?" + - " and recordIndex = ?" + - " and recordDelete_timeMillis is null") - .run(dateTimeFns.dateStringToInteger(reqBody.recordDateString), reqBody.recordIsNA || 0, reqBody.recordNote, reqSession.user.userName, nowMillis, reqBody.organizationID, reqBody.recordIndex); - db.close(); - return info.changes > 0; -}; -exports.deleteOrganizationBankRecord = (organizationID, recordIndex, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); - const nowMillis = Date.now(); - const info = db.prepare("update OrganizationBankRecords" + - " set recordDelete_userName = ?," + - " recordDelete_timeMillis = ?" + - " where organizationID = ?" + - " and recordIndex = ?" + - " and recordDelete_timeMillis is null") - .run(reqSession.user.userName, nowMillis, organizationID, recordIndex); - db.close(); - return info.changes > 0; -}; diff --git a/helpers/licencesDB-organizations.ts b/helpers/licencesDB-organizations.ts index 6277936c..b5a053bc 100644 --- a/helpers/licencesDB-organizations.ts +++ b/helpers/licencesDB-organizations.ts @@ -4,7 +4,9 @@ import * as sqlite from "better-sqlite3"; import { licencesDB as dbPath } from "../data/databasePaths"; import * as dateTimeFns from "@cityssm/expressjs-server-js/dateTimeFns"; + import type * as llm from "../types/recordTypes"; +import type * as expressSession from "express-session"; /* @@ -15,7 +17,7 @@ import type * as llm from "../types/recordTypes"; /** * @returns New organizationID */ -export const createOrganization = (reqBody: llm.Organization, reqSession: Express.SessionData) => { +export const createOrganization = (reqBody: llm.Organization, reqSession: expressSession.Session) => { const db = sqlite(dbPath); @@ -52,7 +54,7 @@ export const createOrganization = (reqBody: llm.Organization, reqSession: Expres /** * @returns TRUE if successful */ -export const updateOrganization = (reqBody: llm.Organization, reqSession: Express.SessionData): boolean => { +export const updateOrganization = (reqBody: llm.Organization, reqSession: expressSession.Session): boolean => { const db = sqlite(dbPath); @@ -101,7 +103,7 @@ export const updateOrganization = (reqBody: llm.Organization, reqSession: Expres /** * @returns TRUE if successful */ -export const deleteOrganization = (organizationID: number, reqSession: Express.SessionData): boolean => { +export const deleteOrganization = (organizationID: number, reqSession: expressSession.Session): boolean => { const db = sqlite(dbPath); @@ -128,7 +130,7 @@ export const deleteOrganization = (organizationID: number, reqSession: Express.S /** * @returns TRUE if successful */ -export const restoreOrganization = (organizationID: number, reqSession: Express.SessionData): boolean => { +export const restoreOrganization = (organizationID: number, reqSession: expressSession.Session): boolean => { const db = sqlite(dbPath); @@ -263,7 +265,7 @@ export const setDefaultOrganizationRepresentative = (organizationID: number, rep export const getOrganizationRemark = - (organizationID: number, remarkIndex: number, reqSession: Express.SessionData) => { + (organizationID: number, remarkIndex: number, reqSession: expressSession.Session) => { const db = sqlite(dbPath, { readonly: true @@ -293,7 +295,7 @@ export const getOrganizationRemark = }; -export const addOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSession: Express.SessionData) => { +export const addOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSession: expressSession.Session) => { const db = sqlite(dbPath); @@ -336,7 +338,7 @@ export const addOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSessio /** * @returns TRUE if successful */ -export const updateOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSession: Express.SessionData) => { +export const updateOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSession: expressSession.Session) => { const db = sqlite(dbPath); @@ -373,7 +375,7 @@ export const updateOrganizationRemark = (reqBody: llm.OrganizationRemark, reqSes * @returns TRUE if successful */ export const deleteOrganizationRemark = - (organizationID: number, remarkIndex: number, reqSession: Express.SessionData) => { + (organizationID: number, remarkIndex: number, reqSession: expressSession.Session) => { const db = sqlite(dbPath); @@ -404,7 +406,7 @@ export const deleteOrganizationRemark = export const getOrganizationReminder = - (organizationID: number, reminderIndex: number, reqSession: Express.SessionData) => { + (organizationID: number, reminderIndex: number, reqSession: expressSession.Session) => { const db = sqlite(dbPath, { readonly: true @@ -441,7 +443,7 @@ export const updateOrganizationReminder = (reqBody: { reminderStatus: string; reminderNote: string; dismissedDateString: string; -}, reqSession: Express.SessionData) => { +}, reqSession: expressSession.Session) => { const db = sqlite(dbPath); @@ -481,7 +483,7 @@ export const updateOrganizationReminder = (reqBody: { export const dismissOrganizationReminder = - (organizationID: number, reminderIndex: number, reqSession: Express.SessionData) => { + (organizationID: number, reminderIndex: number, reqSession: expressSession.Session) => { const currentDate = new Date(); @@ -559,142 +561,3 @@ export const getOrganizationBankRecordStats = (organizationID: number) => { return rows; }; - - -export const addOrganizationBankRecord = (reqBody: llm.OrganizationBankRecord, reqSession: Express.Session) => { - - // Check for a record with the same unique key - - const db = sqlite(dbPath); - - const record = db.prepare("select recordIndex, recordDelete_timeMillis" + - " from OrganizationBankRecords" + - " where organizationID = ?" + - " and accountNumber = ?" + - " and bankingYear = ?" + - " and bankingMonth = ?" + - " and bankRecordType = ?") - .get(reqBody.organizationID, - reqBody.accountNumber, - reqBody.bankingYear, - reqBody.bankingMonth, - reqBody.bankRecordType); - - if (record) { - - if (record.recordDelete_timeMillis) { - - const info = db.prepare("delete from OrganizationBankRecords" + - " where organizationID = ?" + - " and recordIndex = ?") - .run(reqBody.organizationID, record.recordIndex); - - if (info.changes === 0) { - - // Record not deleted - db.close(); - return false; - } - - } else { - - // An active record already exists - db.close(); - return false; - } - } - - // Get next recordIndex - - const row = db.prepare("select ifnull(max(recordIndex), -1) as maxIndex" + - " from OrganizationBankRecords" + - " where organizationID = ?") - .get(reqBody.organizationID); - - const newRecordIndex = row.maxIndex as number + 1; - - // Insert the record - - const nowMillis = Date.now(); - - const info = db.prepare("insert into OrganizationBankRecords" + - " (organizationID, recordIndex," + - " accountNumber, bankingYear, bankingMonth, bankRecordType, recordIsNA, recordDate, recordNote," + - " recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis)" + - " values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") - .run(reqBody.organizationID, - newRecordIndex, - reqBody.accountNumber, - reqBody.bankingYear, - reqBody.bankingMonth, - reqBody.bankRecordType, - reqBody.recordIsNA || 0, - dateTimeFns.dateStringToInteger(reqBody.recordDateString), - reqBody.recordNote, - reqSession.user.userName, - nowMillis, - reqSession.user.userName, - nowMillis - ); - - db.close(); - - return info.changes > 0; -}; - - -export const updateOrganizationBankRecord = (reqBody: llm.OrganizationBankRecord, reqSession: Express.Session) => { - - const db = sqlite(dbPath); - - const nowMillis = Date.now(); - - const info = db.prepare("update OrganizationBankRecords" + - " set recordDate = ?," + - " recordIsNA = ?," + - " recordNote = ?," + - " recordUpdate_userName = ?," + - " recordUpdate_timeMillis = ?" + - " where organizationID = ?" + - " and recordIndex = ?" + - " and recordDelete_timeMillis is null") - .run( - dateTimeFns.dateStringToInteger(reqBody.recordDateString), - reqBody.recordIsNA || 0, - reqBody.recordNote, - reqSession.user.userName, - nowMillis, - reqBody.organizationID, - reqBody.recordIndex - ); - - db.close(); - - return info.changes > 0; -}; - - -export const deleteOrganizationBankRecord = - (organizationID: number, recordIndex: number, reqSession: Express.Session) => { - - const db = sqlite(dbPath); - - const nowMillis = Date.now(); - - const info = db.prepare("update OrganizationBankRecords" + - " set recordDelete_userName = ?," + - " recordDelete_timeMillis = ?" + - " where organizationID = ?" + - " and recordIndex = ?" + - " and recordDelete_timeMillis is null") - .run( - reqSession.user.userName, - nowMillis, - organizationID, - recordIndex - ); - - db.close(); - - return info.changes > 0; - }; diff --git a/helpers/licencesDB/addLicenceAmendment.d.ts b/helpers/licencesDB/addLicenceAmendment.d.ts index 29f931a3..b45fdefd 100644 --- a/helpers/licencesDB/addLicenceAmendment.d.ts +++ b/helpers/licencesDB/addLicenceAmendment.d.ts @@ -1,7 +1,3 @@ -/// -/// -/// -/// -/// import * as sqlite from "better-sqlite3"; -export declare const addLicenceAmendmentWithDB: (db: sqlite.Database, licenceID: number | string, amendmentType: string, amendment: string, isHidden: number, reqSession: Express.SessionData) => number; +import type * as expressSession from "express-session"; +export declare const addLicenceAmendmentWithDB: (db: sqlite.Database, licenceID: number | string, amendmentType: string, amendment: string, isHidden: number, reqSession: expressSession.Session) => number; diff --git a/helpers/licencesDB/addLicenceAmendment.ts b/helpers/licencesDB/addLicenceAmendment.ts index 51e492de..69e09bee 100644 --- a/helpers/licencesDB/addLicenceAmendment.ts +++ b/helpers/licencesDB/addLicenceAmendment.ts @@ -2,10 +2,12 @@ import * as sqlite from "better-sqlite3"; import * as dateTimeFns from "@cityssm/expressjs-server-js/dateTimeFns"; +import type * as expressSession from "express-session"; + export const addLicenceAmendmentWithDB = (db: sqlite.Database, licenceID: number | string, amendmentType: string, amendment: string, isHidden: number, - reqSession: Express.SessionData) => { + reqSession: expressSession.Session) => { const amendmentIndexRecord: { amendmentIndex: number; diff --git a/helpers/licencesDB/addOrganizationBankRecord.d.ts b/helpers/licencesDB/addOrganizationBankRecord.d.ts new file mode 100644 index 00000000..c65836fa --- /dev/null +++ b/helpers/licencesDB/addOrganizationBankRecord.d.ts @@ -0,0 +1,3 @@ +import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; +export declare const addOrganizationBankRecord: (reqBody: llm.OrganizationBankRecord, reqSession: expressSession.Session) => boolean; diff --git a/helpers/licencesDB/addOrganizationBankRecord.js b/helpers/licencesDB/addOrganizationBankRecord.js new file mode 100644 index 00000000..5f4eabef --- /dev/null +++ b/helpers/licencesDB/addOrganizationBankRecord.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.addOrganizationBankRecord = void 0; +const sqlite = require("better-sqlite3"); +const databasePaths_1 = require("../../data/databasePaths"); +const dateTimeFns = require("@cityssm/expressjs-server-js/dateTimeFns"); +exports.addOrganizationBankRecord = (reqBody, reqSession) => { + const db = sqlite(databasePaths_1.licencesDB); + const record = db.prepare("select recordIndex, recordDelete_timeMillis" + + " from OrganizationBankRecords" + + " where organizationID = ?" + + " and accountNumber = ?" + + " and bankingYear = ?" + + " and bankingMonth = ?" + + " and bankRecordType = ?") + .get(reqBody.organizationID, reqBody.accountNumber, reqBody.bankingYear, reqBody.bankingMonth, reqBody.bankRecordType); + if (record) { + if (record.recordDelete_timeMillis) { + const info = db.prepare("delete from OrganizationBankRecords" + + " where organizationID = ?" + + " and recordIndex = ?") + .run(reqBody.organizationID, record.recordIndex); + if (info.changes === 0) { + db.close(); + return false; + } + } + else { + db.close(); + return false; + } + } + const row = db.prepare("select ifnull(max(recordIndex), -1) as maxIndex" + + " from OrganizationBankRecords" + + " where organizationID = ?") + .get(reqBody.organizationID); + const newRecordIndex = row.maxIndex + 1; + const nowMillis = Date.now(); + const info = db.prepare("insert into OrganizationBankRecords" + + " (organizationID, recordIndex," + + " accountNumber, bankingYear, bankingMonth, bankRecordType, recordIsNA, recordDate, recordNote," + + " recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis)" + + " values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") + .run(reqBody.organizationID, newRecordIndex, reqBody.accountNumber, reqBody.bankingYear, reqBody.bankingMonth, reqBody.bankRecordType, reqBody.recordIsNA ? 1 : 0, dateTimeFns.dateStringToInteger(reqBody.recordDateString), reqBody.recordNote, reqSession.user.userName, nowMillis, reqSession.user.userName, nowMillis); + db.close(); + return info.changes > 0; +}; diff --git a/helpers/licencesDB/addOrganizationBankRecord.ts b/helpers/licencesDB/addOrganizationBankRecord.ts new file mode 100644 index 00000000..34c74c70 --- /dev/null +++ b/helpers/licencesDB/addOrganizationBankRecord.ts @@ -0,0 +1,90 @@ +import * as sqlite from "better-sqlite3"; + +import { licencesDB as dbPath } from "../../data/databasePaths"; + +import * as dateTimeFns from "@cityssm/expressjs-server-js/dateTimeFns"; + +import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; + + +export const addOrganizationBankRecord = (reqBody: llm.OrganizationBankRecord, reqSession: expressSession.Session) => { + + // Check for a record with the same unique key + + const db = sqlite(dbPath); + + const record = db.prepare("select recordIndex, recordDelete_timeMillis" + + " from OrganizationBankRecords" + + " where organizationID = ?" + + " and accountNumber = ?" + + " and bankingYear = ?" + + " and bankingMonth = ?" + + " and bankRecordType = ?") + .get(reqBody.organizationID, + reqBody.accountNumber, + reqBody.bankingYear, + reqBody.bankingMonth, + reqBody.bankRecordType); + + if (record) { + + if (record.recordDelete_timeMillis) { + + const info = db.prepare("delete from OrganizationBankRecords" + + " where organizationID = ?" + + " and recordIndex = ?") + .run(reqBody.organizationID, record.recordIndex); + + if (info.changes === 0) { + + // Record not deleted + db.close(); + return false; + } + + } else { + + // An active record already exists + db.close(); + return false; + } + } + + // Get next recordIndex + + const row = db.prepare("select ifnull(max(recordIndex), -1) as maxIndex" + + " from OrganizationBankRecords" + + " where organizationID = ?") + .get(reqBody.organizationID); + + const newRecordIndex = row.maxIndex as number + 1; + + // Insert the record + + const nowMillis = Date.now(); + + const info = db.prepare("insert into OrganizationBankRecords" + + " (organizationID, recordIndex," + + " accountNumber, bankingYear, bankingMonth, bankRecordType, recordIsNA, recordDate, recordNote," + + " recordCreate_userName, recordCreate_timeMillis, recordUpdate_userName, recordUpdate_timeMillis)" + + " values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") + .run(reqBody.organizationID, + newRecordIndex, + reqBody.accountNumber, + reqBody.bankingYear, + reqBody.bankingMonth, + reqBody.bankRecordType, + reqBody.recordIsNA ? 1 : 0, + dateTimeFns.dateStringToInteger(reqBody.recordDateString), + reqBody.recordNote, + reqSession.user.userName, + nowMillis, + reqSession.user.userName, + nowMillis + ); + + db.close(); + + return info.changes > 0; +}; diff --git a/helpers/licencesDB/addOrganizationReminder.d.ts b/helpers/licencesDB/addOrganizationReminder.d.ts index e8c0242d..c30bb64a 100644 --- a/helpers/licencesDB/addOrganizationReminder.d.ts +++ b/helpers/licencesDB/addOrganizationReminder.d.ts @@ -1,10 +1,6 @@ -/// -/// -/// -/// -/// import * as sqlite from "better-sqlite3"; import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; interface ReminderData { organizationID: string; reminderTypeKey: string; @@ -12,6 +8,6 @@ interface ReminderData { reminderStatus: string; reminderNote: string; } -export declare const addOrganizationReminderWithDB: (db: sqlite.Database, reminderData: ReminderData, reqSession: Express.SessionData) => llm.OrganizationReminder; -export declare const addOrganizationReminder: (reqBody: ReminderData, reqSession: Express.SessionData) => llm.OrganizationReminder; +export declare const addOrganizationReminderWithDB: (db: sqlite.Database, reminderData: ReminderData, reqSession: expressSession.Session) => llm.OrganizationReminder; +export declare const addOrganizationReminder: (reqBody: ReminderData, reqSession: expressSession.Session) => llm.OrganizationReminder; export {}; diff --git a/helpers/licencesDB/addOrganizationReminder.ts b/helpers/licencesDB/addOrganizationReminder.ts index 7292d25a..ed821d39 100644 --- a/helpers/licencesDB/addOrganizationReminder.ts +++ b/helpers/licencesDB/addOrganizationReminder.ts @@ -5,6 +5,7 @@ import { licencesDB as dbPath } from "../../data/databasePaths"; import * as dateTimeFns from "@cityssm/expressjs-server-js/dateTimeFns"; import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; interface ReminderData { @@ -17,7 +18,7 @@ interface ReminderData { export const addOrganizationReminderWithDB = (db: sqlite.Database, - reminderData: ReminderData, reqSession: Express.SessionData) => { + reminderData: ReminderData, reqSession: expressSession.Session) => { const row: { maxIndex: number } = db.prepare("select ifnull(max(reminderIndex), -1) as maxIndex" + " from OrganizationReminders" + @@ -69,7 +70,7 @@ export const addOrganizationReminderWithDB = (db: sqlite.Database, }; -export const addOrganizationReminder = (reqBody: ReminderData, reqSession: Express.SessionData) => { +export const addOrganizationReminder = (reqBody: ReminderData, reqSession: expressSession.Session) => { const db = sqlite(dbPath); diff --git a/helpers/licencesDB/createLicence.js b/helpers/licencesDB/createLicence.js index 57e7e9bf..267e999d 100644 --- a/helpers/licencesDB/createLicence.js +++ b/helpers/licencesDB/createLicence.js @@ -2,13 +2,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.createLicence = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const dateTimeFns = require("@cityssm/expressjs-server-js/dateTimeFns"); const configFns = require("../configFns"); const getLicence_1 = require("./getLicence"); const licencesDB_1 = require("../licencesDB"); exports.createLicence = (reqBody, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); let externalLicenceNumberInteger = -1; try { diff --git a/helpers/licencesDB/createLocation.d.ts b/helpers/licencesDB/createLocation.d.ts index 85eda62f..cecb05e9 100644 --- a/helpers/licencesDB/createLocation.d.ts +++ b/helpers/licencesDB/createLocation.d.ts @@ -1,7 +1,3 @@ -/// -/// -/// -/// -/// import * as llm from "../../types/recordTypes"; -export declare const createLocation: (reqBody: llm.Location, reqSession: Express.SessionData) => number; +import type * as expressSession from "express-session"; +export declare const createLocation: (reqBody: llm.Location, reqSession: expressSession.Session) => number; diff --git a/helpers/licencesDB/createLocation.ts b/helpers/licencesDB/createLocation.ts index acf5c712..8dc635c8 100644 --- a/helpers/licencesDB/createLocation.ts +++ b/helpers/licencesDB/createLocation.ts @@ -3,9 +3,10 @@ import * as sqlite from "better-sqlite3"; import { licencesDB as dbPath } from "../../data/databasePaths"; import * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; -export const createLocation = (reqBody: llm.Location, reqSession: Express.SessionData) => { +export const createLocation = (reqBody: llm.Location, reqSession: expressSession.Session) => { const db = sqlite(dbPath); diff --git a/helpers/licencesDB/deleteLicence.js b/helpers/licencesDB/deleteLicence.js index 582c6738..b4b03467 100644 --- a/helpers/licencesDB/deleteLicence.js +++ b/helpers/licencesDB/deleteLicence.js @@ -2,10 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteLicence = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const licencesDB_1 = require("../licencesDB"); exports.deleteLicence = (licenceID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update LotteryLicences" + " set recordDelete_userName = ?," + diff --git a/helpers/licencesDB/deleteLocation.d.ts b/helpers/licencesDB/deleteLocation.d.ts index ab2b4201..a0bc5d8b 100644 --- a/helpers/licencesDB/deleteLocation.d.ts +++ b/helpers/licencesDB/deleteLocation.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const deleteLocation: (locationID: number, reqSession: Express.SessionData) => boolean; +export declare const deleteLocation: (locationID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/deleteLocation.js b/helpers/licencesDB/deleteLocation.js index 37c2e29c..de1da5a8 100644 --- a/helpers/licencesDB/deleteLocation.js +++ b/helpers/licencesDB/deleteLocation.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteLocation = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.deleteLocation = (locationID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update Locations" + " set recordDelete_userName = ?," + diff --git a/helpers/licencesDB/deleteOrganizationBankRecord.d.ts b/helpers/licencesDB/deleteOrganizationBankRecord.d.ts new file mode 100644 index 00000000..0d551c4e --- /dev/null +++ b/helpers/licencesDB/deleteOrganizationBankRecord.d.ts @@ -0,0 +1,2 @@ +import type * as expressSession from "express-session"; +export declare const deleteOrganizationBankRecord: (organizationID: number, recordIndex: number, reqSession: expressSession.Session) => boolean; diff --git a/helpers/licencesDB/deleteOrganizationBankRecord.js b/helpers/licencesDB/deleteOrganizationBankRecord.js new file mode 100644 index 00000000..6437ae9a --- /dev/null +++ b/helpers/licencesDB/deleteOrganizationBankRecord.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.deleteOrganizationBankRecord = void 0; +const sqlite = require("better-sqlite3"); +const databasePaths_1 = require("../../data/databasePaths"); +exports.deleteOrganizationBankRecord = (organizationID, recordIndex, reqSession) => { + const db = sqlite(databasePaths_1.licencesDB); + const nowMillis = Date.now(); + const info = db.prepare("update OrganizationBankRecords" + + " set recordDelete_userName = ?," + + " recordDelete_timeMillis = ?" + + " where organizationID = ?" + + " and recordIndex = ?" + + " and recordDelete_timeMillis is null") + .run(reqSession.user.userName, nowMillis, organizationID, recordIndex); + db.close(); + return info.changes > 0; +}; diff --git a/helpers/licencesDB/deleteOrganizationBankRecord.ts b/helpers/licencesDB/deleteOrganizationBankRecord.ts new file mode 100644 index 00000000..143a00d1 --- /dev/null +++ b/helpers/licencesDB/deleteOrganizationBankRecord.ts @@ -0,0 +1,31 @@ +import * as sqlite from "better-sqlite3"; + +import { licencesDB as dbPath } from "../../data/databasePaths"; + +import type * as expressSession from "express-session"; + + +export const deleteOrganizationBankRecord = + (organizationID: number, recordIndex: number, reqSession: expressSession.Session) => { + + const db = sqlite(dbPath); + + const nowMillis = Date.now(); + + const info = db.prepare("update OrganizationBankRecords" + + " set recordDelete_userName = ?," + + " recordDelete_timeMillis = ?" + + " where organizationID = ?" + + " and recordIndex = ?" + + " and recordDelete_timeMillis is null") + .run( + reqSession.user.userName, + nowMillis, + organizationID, + recordIndex + ); + + db.close(); + + return info.changes > 0; + }; diff --git a/helpers/licencesDB/deleteOrganizationReminder.d.ts b/helpers/licencesDB/deleteOrganizationReminder.d.ts index b61c2f66..94728fc7 100644 --- a/helpers/licencesDB/deleteOrganizationReminder.d.ts +++ b/helpers/licencesDB/deleteOrganizationReminder.d.ts @@ -1,8 +1,3 @@ -/// -/// -/// -/// -/// import * as sqlite from "better-sqlite3"; -export declare const deleteOrganizationReminderWithDB: (db: sqlite.Database, organizationID: number, reminderIndex: number, reqSession: Express.SessionData) => boolean; -export declare const deleteOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: Express.SessionData) => boolean; +export declare const deleteOrganizationReminderWithDB: (db: sqlite.Database, organizationID: number, reminderIndex: number, reqSession: any) => boolean; +export declare const deleteOrganizationReminder: (organizationID: number, reminderIndex: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/deleteOrganizationReminder.js b/helpers/licencesDB/deleteOrganizationReminder.js index 59d14855..98660045 100644 --- a/helpers/licencesDB/deleteOrganizationReminder.js +++ b/helpers/licencesDB/deleteOrganizationReminder.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteOrganizationReminder = exports.deleteOrganizationReminderWithDB = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.deleteOrganizationReminderWithDB = (db, organizationID, reminderIndex, reqSession) => { const info = db.prepare("update OrganizationReminders" + " set recordDelete_userName = ?," + @@ -14,7 +14,7 @@ exports.deleteOrganizationReminderWithDB = (db, organizationID, reminderIndex, r return info.changes > 0; }; exports.deleteOrganizationReminder = (organizationID, reminderIndex, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const result = exports.deleteOrganizationReminderWithDB(db, organizationID, reminderIndex, reqSession); db.close(); return result; diff --git a/helpers/licencesDB/getApplicationSetting.js b/helpers/licencesDB/getApplicationSetting.js index 8bf6d445..b0cc1c9c 100644 --- a/helpers/licencesDB/getApplicationSetting.js +++ b/helpers/licencesDB/getApplicationSetting.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.getApplicationSetting = exports.getApplicationSettingWithDB = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.getApplicationSettingWithDB = (db, settingKey) => { const row = db.prepare("select settingValue" + " from ApplicationSettings" + @@ -14,7 +14,7 @@ exports.getApplicationSettingWithDB = (db, settingKey) => { return ""; }; exports.getApplicationSetting = (settingKey) => { - const db = sqlite(databasePaths_1.licencesDB, { + const db = sqlite(databasePaths_2.licencesDB, { readonly: true }); const settingValue = exports.getApplicationSettingWithDB(db, settingKey); diff --git a/helpers/licencesDB/getApplicationSettings.js b/helpers/licencesDB/getApplicationSettings.js index 3339d4de..df5397ea 100644 --- a/helpers/licencesDB/getApplicationSettings.js +++ b/helpers/licencesDB/getApplicationSettings.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.getApplicationSettings = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.getApplicationSettings = () => { - const db = sqlite(databasePaths_1.licencesDB, { + const db = sqlite(databasePaths_2.licencesDB, { readonly: true }); const rows = db.prepare("select * from ApplicationSettings order by orderNumber, settingKey").all(); diff --git a/helpers/licencesDB/getNextExternalLicenceNumberFromRange.js b/helpers/licencesDB/getNextExternalLicenceNumberFromRange.js index e2116e69..1fa80850 100644 --- a/helpers/licencesDB/getNextExternalLicenceNumberFromRange.js +++ b/helpers/licencesDB/getNextExternalLicenceNumberFromRange.js @@ -2,10 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.getNextExternalLicenceNumberFromRange = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const getApplicationSetting_1 = require("./getApplicationSetting"); exports.getNextExternalLicenceNumberFromRange = () => { - const db = sqlite(databasePaths_1.licencesDB, { + const db = sqlite(databasePaths_2.licencesDB, { readonly: true }); const rangeStartFromConfig = getApplicationSetting_1.getApplicationSettingWithDB(db, "licences.externalLicenceNumber.range.start"); diff --git a/helpers/licencesDB/issueLicence.d.ts b/helpers/licencesDB/issueLicence.d.ts index 915b4f2f..8138fe7e 100644 --- a/helpers/licencesDB/issueLicence.d.ts +++ b/helpers/licencesDB/issueLicence.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const issueLicence: (licenceID: number, reqSession: Express.SessionData) => boolean; +export declare const issueLicence: (licenceID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/issueLicence.js b/helpers/licencesDB/issueLicence.js index f959bde5..e2e4dbc4 100644 --- a/helpers/licencesDB/issueLicence.js +++ b/helpers/licencesDB/issueLicence.js @@ -2,10 +2,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.issueLicence = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const dateTimeFns = require("@cityssm/expressjs-server-js/dateTimeFns"); exports.issueLicence = (licenceID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowDate = new Date(); const issueDate = dateTimeFns.dateToInteger(nowDate); const issueTime = dateTimeFns.dateToTimeInteger(nowDate); diff --git a/helpers/licencesDB/mergeLocations.d.ts b/helpers/licencesDB/mergeLocations.d.ts index 37efd9c7..3b3c41f7 100644 --- a/helpers/licencesDB/mergeLocations.d.ts +++ b/helpers/licencesDB/mergeLocations.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const mergeLocations: (targetLocationID: number, sourceLocationID: number, reqSession: Express.SessionData) => boolean; +export declare const mergeLocations: (targetLocationID: number, sourceLocationID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/mergeLocations.js b/helpers/licencesDB/mergeLocations.js index da6e4f69..e86ff35b 100644 --- a/helpers/licencesDB/mergeLocations.js +++ b/helpers/licencesDB/mergeLocations.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeLocations = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.mergeLocations = (targetLocationID, sourceLocationID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const locationAttributes = db.prepare("select max(locationIsDistributor) as locationIsDistributorMax," + " max(locationIsManufacturer) as locationIsManufacturerMax," + diff --git a/helpers/licencesDB/pokeEvent.d.ts b/helpers/licencesDB/pokeEvent.d.ts index cbb7b540..ea71b36b 100644 --- a/helpers/licencesDB/pokeEvent.d.ts +++ b/helpers/licencesDB/pokeEvent.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const pokeEvent: (licenceID: number, eventDate: number, reqSession: Express.SessionData) => boolean; +export declare const pokeEvent: (licenceID: number, eventDate: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/pokeEvent.js b/helpers/licencesDB/pokeEvent.js index 646ba718..a59d92a1 100644 --- a/helpers/licencesDB/pokeEvent.js +++ b/helpers/licencesDB/pokeEvent.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.pokeEvent = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.pokeEvent = (licenceID, eventDate, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update LotteryEvents" + " set recordUpdate_userName = ?," + diff --git a/helpers/licencesDB/pokeLicence.d.ts b/helpers/licencesDB/pokeLicence.d.ts index a6f6e40b..8765292a 100644 --- a/helpers/licencesDB/pokeLicence.d.ts +++ b/helpers/licencesDB/pokeLicence.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const pokeLicence: (licenceID: number, reqSession: Express.SessionData) => boolean; +export declare const pokeLicence: (licenceID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/pokeLicence.js b/helpers/licencesDB/pokeLicence.js index b9f0ec08..3f457cdd 100644 --- a/helpers/licencesDB/pokeLicence.js +++ b/helpers/licencesDB/pokeLicence.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.pokeLicence = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.pokeLicence = (licenceID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update LotteryLicences" + " set recordUpdate_userName = ?," + diff --git a/helpers/licencesDB/restoreLocation.d.ts b/helpers/licencesDB/restoreLocation.d.ts index bd6abbc2..9f485896 100644 --- a/helpers/licencesDB/restoreLocation.d.ts +++ b/helpers/licencesDB/restoreLocation.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const restoreLocation: (locationID: number, reqSession: Express.SessionData) => boolean; +export declare const restoreLocation: (locationID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/restoreLocation.js b/helpers/licencesDB/restoreLocation.js index e0a8f9b3..3fe856d6 100644 --- a/helpers/licencesDB/restoreLocation.js +++ b/helpers/licencesDB/restoreLocation.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.restoreLocation = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.restoreLocation = (locationID, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update Locations" + " set recordDelete_userName = null," + diff --git a/helpers/licencesDB/unissueLicence.d.ts b/helpers/licencesDB/unissueLicence.d.ts index 7e23ba42..95794b4f 100644 --- a/helpers/licencesDB/unissueLicence.d.ts +++ b/helpers/licencesDB/unissueLicence.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const unissueLicence: (licenceID: number, reqSession: Express.SessionData) => boolean; +export declare const unissueLicence: (licenceID: number, reqSession: any) => boolean; diff --git a/helpers/licencesDB/updateApplicationSetting.d.ts b/helpers/licencesDB/updateApplicationSetting.d.ts index e1f05414..dfe7fe28 100644 --- a/helpers/licencesDB/updateApplicationSetting.d.ts +++ b/helpers/licencesDB/updateApplicationSetting.d.ts @@ -1,6 +1 @@ -/// -/// -/// -/// -/// -export declare const updateApplicationSetting: (settingKey: string, settingValue: string, reqSession: Express.SessionData) => boolean; +export declare const updateApplicationSetting: (settingKey: string, settingValue: string, reqSession: any) => boolean; diff --git a/helpers/licencesDB/updateApplicationSetting.js b/helpers/licencesDB/updateApplicationSetting.js index c2791474..718daf5c 100644 --- a/helpers/licencesDB/updateApplicationSetting.js +++ b/helpers/licencesDB/updateApplicationSetting.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.updateApplicationSetting = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.updateApplicationSetting = (settingKey, settingValue, reqSession) => { - const db = sqlite(databasePaths_1.licencesDB); + const db = sqlite(databasePaths_2.licencesDB); const nowMillis = Date.now(); const info = db.prepare("update ApplicationSettings" + " set settingValue = ?," + diff --git a/helpers/licencesDB/updateLocation.d.ts b/helpers/licencesDB/updateLocation.d.ts index 53e777ca..a6b46eef 100644 --- a/helpers/licencesDB/updateLocation.d.ts +++ b/helpers/licencesDB/updateLocation.d.ts @@ -1,7 +1,3 @@ -/// -/// -/// -/// -/// import type * as llm from "../../types/recordTypes"; -export declare const updateLocation: (reqBody: llm.Location, reqSession: Express.SessionData) => boolean; +import type * as expressSession from "express-session"; +export declare const updateLocation: (reqBody: llm.Location, reqSession: expressSession.Session) => boolean; diff --git a/helpers/licencesDB/updateLocation.ts b/helpers/licencesDB/updateLocation.ts index 669fd658..e4f4f654 100644 --- a/helpers/licencesDB/updateLocation.ts +++ b/helpers/licencesDB/updateLocation.ts @@ -3,9 +3,10 @@ import * as sqlite from "better-sqlite3"; import { licencesDB as dbPath } from "../../data/databasePaths"; import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; -export const updateLocation = (reqBody: llm.Location, reqSession: Express.SessionData): boolean => { +export const updateLocation = (reqBody: llm.Location, reqSession: expressSession.Session): boolean => { const db = sqlite(dbPath); diff --git a/helpers/licencesDB/updateOrganizationBankRecord.d.ts b/helpers/licencesDB/updateOrganizationBankRecord.d.ts new file mode 100644 index 00000000..6159c29c --- /dev/null +++ b/helpers/licencesDB/updateOrganizationBankRecord.d.ts @@ -0,0 +1,3 @@ +import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; +export declare const updateOrganizationBankRecord: (reqBody: llm.OrganizationBankRecord, reqSession: expressSession.Session) => boolean; diff --git a/helpers/licencesDB/updateOrganizationBankRecord.js b/helpers/licencesDB/updateOrganizationBankRecord.js new file mode 100644 index 00000000..c5ab251c --- /dev/null +++ b/helpers/licencesDB/updateOrganizationBankRecord.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.updateOrganizationBankRecord = void 0; +const sqlite = require("better-sqlite3"); +const databasePaths_1 = require("../../data/databasePaths"); +const dateTimeFns = require("@cityssm/expressjs-server-js/dateTimeFns"); +exports.updateOrganizationBankRecord = (reqBody, reqSession) => { + const db = sqlite(databasePaths_1.licencesDB); + const nowMillis = Date.now(); + const info = db.prepare("update OrganizationBankRecords" + + " set recordDate = ?," + + " recordIsNA = ?," + + " recordNote = ?," + + " recordUpdate_userName = ?," + + " recordUpdate_timeMillis = ?" + + " where organizationID = ?" + + " and recordIndex = ?" + + " and recordDelete_timeMillis is null") + .run(dateTimeFns.dateStringToInteger(reqBody.recordDateString), reqBody.recordIsNA ? 1 : 0, reqBody.recordNote, reqSession.user.userName, nowMillis, reqBody.organizationID, reqBody.recordIndex); + db.close(); + return info.changes > 0; +}; diff --git a/helpers/licencesDB/updateOrganizationBankRecord.ts b/helpers/licencesDB/updateOrganizationBankRecord.ts new file mode 100644 index 00000000..c917e53c --- /dev/null +++ b/helpers/licencesDB/updateOrganizationBankRecord.ts @@ -0,0 +1,37 @@ +import * as sqlite from "better-sqlite3"; + +import { licencesDB as dbPath } from "../../data/databasePaths"; + +import * as dateTimeFns from "@cityssm/expressjs-server-js/dateTimeFns"; + +import type * as llm from "../../types/recordTypes"; +import type * as expressSession from "express-session"; + + +export const updateOrganizationBankRecord = (reqBody: llm.OrganizationBankRecord, reqSession: expressSession.Session) => { + + const db = sqlite(dbPath); + + const nowMillis = Date.now(); + + const info = db.prepare("update OrganizationBankRecords" + + " set recordDate = ?," + + " recordIsNA = ?," + + " recordNote = ?," + + " recordUpdate_userName = ?," + + " recordUpdate_timeMillis = ?" + + " where organizationID = ?" + + " and recordIndex = ?" + + " and recordDelete_timeMillis is null") + .run(dateTimeFns.dateStringToInteger(reqBody.recordDateString), + reqBody.recordIsNA ? 1 : 0, + reqBody.recordNote, + reqSession.user.userName, + nowMillis, + reqBody.organizationID, + reqBody.recordIndex); + + db.close(); + + return info.changes > 0; +}; diff --git a/helpers/usersDB/createUser.js b/helpers/usersDB/createUser.js index 16b4711f..52114833 100644 --- a/helpers/usersDB/createUser.js +++ b/helpers/usersDB/createUser.js @@ -2,14 +2,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.createUser = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const userFns = require("../../helpers/userFns"); const bcrypt = require("bcrypt"); const stringFns = require("@cityssm/expressjs-server-js/stringFns"); exports.createUser = (reqBody) => { const newPasswordPlain = stringFns.generatePassword(); const hash = bcrypt.hashSync(userFns.getHashString(reqBody.userName, newPasswordPlain), 10); - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); const row = db.prepare("select isActive" + " from Users" + " where userName = ?") diff --git a/helpers/usersDB/generateNewPassword.js b/helpers/usersDB/generateNewPassword.js index dc49bdde..8e1dabe9 100644 --- a/helpers/usersDB/generateNewPassword.js +++ b/helpers/usersDB/generateNewPassword.js @@ -2,14 +2,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.generateNewPassword = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const userFns = require("../../helpers/userFns"); const bcrypt = require("bcrypt"); const stringFns = require("@cityssm/expressjs-server-js/stringFns"); exports.generateNewPassword = (userName) => { const newPasswordPlain = stringFns.generatePassword(); const hash = bcrypt.hashSync(userFns.getHashString(userName, newPasswordPlain), 10); - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); db.prepare("update Users" + " set passwordHash = ?" + " where userName = ?") diff --git a/helpers/usersDB/inactivateUser.js b/helpers/usersDB/inactivateUser.js index 1c9ce658..1103516e 100644 --- a/helpers/usersDB/inactivateUser.js +++ b/helpers/usersDB/inactivateUser.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.inactivateUser = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.inactivateUser = (userName) => { - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); const info = db.prepare("update Users" + " set isActive = 0" + " where userName = ?" + diff --git a/helpers/usersDB/tryResetPassword.js b/helpers/usersDB/tryResetPassword.js index 072fbd9e..e61cd275 100644 --- a/helpers/usersDB/tryResetPassword.js +++ b/helpers/usersDB/tryResetPassword.js @@ -2,11 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.tryResetPassword = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); const userFns = require("../../helpers/userFns"); const bcrypt = require("bcrypt"); exports.tryResetPassword = (userName, oldPasswordPlain, newPasswordPlain) => { - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); const row = db.prepare("select passwordHash from Users" + " where userName = ?" + " and isActive = 1") diff --git a/helpers/usersDB/updateUser.js b/helpers/usersDB/updateUser.js index dd3010b2..1f1c3358 100644 --- a/helpers/usersDB/updateUser.js +++ b/helpers/usersDB/updateUser.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.updateUser = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.updateUser = (reqBody) => { - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); const info = db.prepare("update Users" + " set firstName = ?," + " lastName = ?" + diff --git a/helpers/usersDB/updateUserProperty.js b/helpers/usersDB/updateUserProperty.js index 545d9a64..ed5d78da 100644 --- a/helpers/usersDB/updateUserProperty.js +++ b/helpers/usersDB/updateUserProperty.js @@ -2,9 +2,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.updateUserProperty = void 0; const sqlite = require("better-sqlite3"); -const databasePaths_1 = require("../../data/databasePaths"); +const databasePaths_2 = require("../../data/databasePaths"); exports.updateUserProperty = (reqBody) => { - const db = sqlite(databasePaths_1.usersDB); + const db = sqlite(databasePaths_2.usersDB); let info; if (reqBody.propertyValue === "") { info = db.prepare("delete from UserProperties" + diff --git a/package-lock.json b/package-lock.json index 9aba4b8a..65087ca8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -449,168 +449,6 @@ "fastq": "^1.6.0" } }, - "@sindresorhus/is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz", - "integrity": "sha512-/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==", - "dev": true - }, - "@snyk/cli-interface": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.2.tgz", - "integrity": "sha512-C64bGtcQbh7941l7qgXFJ+FJIZdQtBHkPhKfGtUlCCMbC0FK0oaUmp6d7YPQxT4dEnkQdtlBT/eA2F6qIKbEng==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.4", - "@types/graphlib": "^2.1.7", - "tslib": "^1.9.3" - } - }, - "@snyk/cocoapods-lockfile-parser": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.5.2.tgz", - "integrity": "sha512-fIiUNCmhDp7lVKTs/nHCnLK1roMkG15HhuQhtZXxiFW3EZ5H9IqMdtrxqjXuzVWt7X2h7lbF5OMBzD07NODtug==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.4", - "@types/js-yaml": "^3.12.1", - "js-yaml": "^3.13.1", - "source-map-support": "^0.5.7", - "tslib": "^1.10.0" - } - }, - "@snyk/composer-lockfile-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.1.tgz", - "integrity": "sha512-wNANv235j95NFsQuODIXCiQZ9kcyg9fz92Kg1zoGvaP3kN/ma7fgCnvQL/dyml6iouQJR5aZovjhrrfEFoKtiQ==", - "dev": true, - "requires": { - "lodash.findkey": "^4.6.0", - "lodash.get": "^4.4.2", - "lodash.invert": "^4.3.0", - "lodash.isempty": "^4.4.0" - } - }, - "@snyk/dep-graph": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.4.tgz", - "integrity": "sha512-h3MMhjVm3BuIruwpDBqnMowKOG9viwr3TJHdIxTHulWKWSsPTTW1AAP3/RaK+UBp1y/Ua9yzeHncKIrzBdT5Nw==", - "dev": true, - "requires": { - "graphlib": "^2.1.8", - "lodash.isequal": "^4.5.0", - "object-hash": "^2.0.3", - "semver": "^6.0.0", - "source-map-support": "^0.5.19", - "tslib": "^1.13.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@snyk/docker-registry-v2-client": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.9.tgz", - "integrity": "sha512-DIFLEhr8m1GrAwsLGInJmpcQMacjuhf3jcbpQTR+LeMvZA9IuKq+B7kqw2O2FzMiHMZmUb5z+tV+BR7+IUHkFQ==", - "dev": true, - "requires": { - "needle": "^2.5.0", - "parse-link-header": "^1.0.1", - "tslib": "^1.10.0" - } - }, - "@snyk/gemfile": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@snyk/gemfile/-/gemfile-1.2.0.tgz", - "integrity": "sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==", - "dev": true - }, - "@snyk/java-call-graph-builder": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.16.2.tgz", - "integrity": "sha512-tJF+dY/wTfexwYuCgFB3RpWl4RGcf2H9RT9yurkTVi5wwKfvcNwZMUMwSlTDEFOqwmAsJ7e0uNVRlkPQHekCcQ==", - "dev": true, - "requires": { - "ci-info": "^2.0.0", - "debug": "^4.1.1", - "glob": "^7.1.6", - "graphlib": "^2.1.8", - "jszip": "^3.2.2", - "needle": "^2.3.3", - "progress": "^2.0.3", - "snyk-config": "^4.0.0-rc.2", - "source-map-support": "^0.5.7", - "temp-dir": "^2.0.0", - "tslib": "^1.9.3" - } - }, - "@snyk/rpm-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@snyk/rpm-parser/-/rpm-parser-2.2.1.tgz", - "integrity": "sha512-OAON0bPf3c5fgM/GK9DX0aZErB6SnuRyYlPH0rqI1TXGsKrYnVELhaE6ctNbEfPTQuY9r6q0vM+UYDaFM/YliA==", - "dev": true, - "requires": { - "event-loop-spinner": "^2.0.0" - } - }, - "@snyk/snyk-cocoapods-plugin": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.1.tgz", - "integrity": "sha512-A+1xHD+SpmXQa0p+dWmiApFZtz/y37qAW9aWmFx2B1j7fwRBf9Qr89/6RbJOznf1a4nEitjzE3fa98yNZk/MNg==", - "dev": true, - "requires": { - "@snyk/cli-interface": "^2.9.2", - "@snyk/cocoapods-lockfile-parser": "3.5.2", - "@snyk/dep-graph": "^1.19.4", - "source-map-support": "^0.5.7", - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, - "@snyk/snyk-docker-pull": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.3.tgz", - "integrity": "sha512-hiFiSmWGLc2tOI7FfgIhVdFzO2f69im8O6p3OV4xEZ/Ss1l58vwtqudItoswsk7wj/azRlgfBW8wGu2MjoudQg==", - "dev": true, - "requires": { - "@snyk/docker-registry-v2-client": "1.13.9", - "child-process": "^1.0.2", - "tar-stream": "^2.1.2", - "tmp": "^0.1.0" - }, - "dependencies": { - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - } - } - }, - "@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, "@types/bcrypt": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-3.0.0.tgz", @@ -636,18 +474,6 @@ "@types/node": "*" } }, - "@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, "@types/compression": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.0.tgz", @@ -684,12 +510,6 @@ "@types/express-serve-static-core": "*" } }, - "@types/debug": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", - "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", - "dev": true - }, "@types/ejs": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.0.5.tgz", @@ -735,9 +555,9 @@ } }, "@types/express-session": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.2.tgz", - "integrity": "sha512-QRm/fUuvr/BAosL9CvK351SDQP7wpD8+h3S8ZEE/8IvHJ/ZqHrjZbjx/flYfazyPw7yNi9O5fbjFZbh0vZ1ccg==", + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@types/express-session/-/express-session-1.17.3.tgz", + "integrity": "sha512-57DnyxiqClXOIjoCgeKCUYfKxBPOlOY/k+l1TPK+7bSwyiPTrS5FIk1Ycql7twk4wO7P5lfOVy6akDGiaMSLfw==", "dev": true, "requires": { "@types/express": "*" @@ -769,12 +589,6 @@ "@types/node": "*" } }, - "@types/graphlib": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/graphlib/-/graphlib-2.1.7.tgz", - "integrity": "sha512-K7T1n6U2HbTYu+SFHlBjz/RH74OA2D/zF1qlzn8uXbvB4uRg7knOM85ugS2bbXI1TXMh7rLqk4OVRwIwEBaixg==", - "dev": true - }, "@types/gulp": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.7.tgz", @@ -902,18 +716,6 @@ "@types/node": "*" } }, - "@types/hosted-git-info": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-2.7.0.tgz", - "integrity": "sha512-OW/D8GqCyQtH8F7xDdDxzPJTBgknZeZhlCakUcBCya2rYPRN53F+0YJVwSPyiyAhrknnjkl3P9qVk0oBI4S1qw==", - "dev": true - }, - "@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==", - "dev": true - }, "@types/http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz", @@ -926,12 +728,6 @@ "integrity": "sha512-DmZDpSVnsuBrOhtHwE1oKmUJ3qVjHhhNQ7WnZy9/RhH3A24Ar+9o4SoaCWcTzQhalpRDIAMsfdoZLWNJtdBR7A==", "dev": true }, - "@types/js-yaml": { - "version": "3.12.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.5.tgz", - "integrity": "sha512-JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww==", - "dev": true - }, "@types/json-schema": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", @@ -944,15 +740,6 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/marked": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-1.2.0.tgz", @@ -1004,21 +791,6 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==", "dev": true }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, "@types/serve-static": { "version": "1.13.7", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.7.tgz", @@ -1179,12 +951,6 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1241,49 +1007,6 @@ "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -1302,12 +1025,6 @@ "ansi-wrap": "0.1.0" } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, "ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -1343,12 +1060,6 @@ "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", @@ -1546,44 +1257,12 @@ "es-abstract": "^1.17.0-next.1" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, - "ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - }, - "dependencies": { - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -1769,15 +1448,6 @@ } } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "better-sqlite3": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.1.1.tgz", @@ -1912,151 +1582,40 @@ } } }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { + "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "^0.1.0" } } } @@ -2067,15 +1626,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "requires": { - "pako": "~0.2.0" - } - }, "buffer": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", @@ -2159,38 +1709,6 @@ "unset-value": "^1.0.0" } }, - "cacheable-lookup": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz", - "integrity": "sha512-W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==", - "dev": true - }, - "cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, "caching-transform": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", @@ -2225,18 +1743,6 @@ "supports-color": "^5.3.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "child-process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child-process/-/child-process-1.0.2.tgz", - "integrity": "sha1-mJdNx+0e5MYin44wX6cxOmiFp/I=", - "dev": true - }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", @@ -2270,12 +1776,6 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==" }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2305,33 +1805,6 @@ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinner": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", - "integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==", - "dev": true - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -2355,23 +1828,6 @@ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - }, - "dependencies": { - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - } - } - }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", @@ -2389,12 +1845,6 @@ "readable-stream": "^2.3.5" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -2515,20 +1965,6 @@ "typedarray": "^0.0.6" } }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, "connect-sqlite3": { "version": "0.9.11", "resolved": "https://registry.npmjs.org/connect-sqlite3/-/connect-sqlite3-0.9.11.tgz", @@ -2637,12 +2073,6 @@ } } }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, "csrf": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/csrf/-/csrf-3.1.0.tgz", @@ -2703,12 +2133,6 @@ "type": "^1.0.1" } }, - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", - "dev": true - }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2788,12 +2212,6 @@ "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", "dev": true }, - "defer-to-connect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz", - "integrity": "sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==", - "dev": true - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -2844,25 +2262,6 @@ } } }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "dev": true, - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - } - } - }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -2917,40 +2316,6 @@ } } }, - "docker-modem": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-2.1.3.tgz", - "integrity": "sha512-cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^0.8.7" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "dockerfile-ast": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.30.tgz", - "integrity": "sha512-QOeP5NjbjoSLtnMz6jzBLsrKtywLEVPoCOAwA54cQpulyKb1gBnZ63tr6Amq8oVDvu5PXa3aifBVw+wcoCGHKg==", - "dev": true, - "requires": { - "vscode-languageserver-types": "^3.15.1" - } - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2960,35 +2325,6 @@ "esutils": "^2.0.2" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotnet-deps-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/dotnet-deps-parser/-/dotnet-deps-parser-5.0.0.tgz", - "integrity": "sha512-1l9K4UnQQHSfKgeHeLrxnB53AidCZqPyf9dkRL4/fZl8//NPiiDD43zHtgylw8DHlO7gvM8+O5a0UPHesNYZKw==", - "dev": true, - "requires": { - "lodash.isempty": "^4.4.0", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "source-map-support": "^0.5.7", - "tslib": "^1.10.0", - "xml2js": "0.4.23" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -3024,12 +2360,6 @@ "jake": "^10.6.1" } }, - "email-validator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", - "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==", - "dev": true - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -3168,12 +2498,6 @@ "es6-symbol": "^3.1.1" } }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3184,67 +2508,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, "eslint": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz", @@ -3707,72 +2970,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-loop-spinner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-loop-spinner/-/event-loop-spinner-2.0.0.tgz", - "integrity": "sha512-1y4j/Mhttr8ordvHkbDsGzGrlQaSYJoXD/3YKUxiOXIk7myEn9UPfybEk/lLtrcU3D4QvCNmVUxVQaPtvAIaUw==", - "dev": true, - "requires": { - "tslib": "^1.10.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - } - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -3998,32 +3195,10 @@ } } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", @@ -4225,15 +3400,6 @@ "pend": "~1.2.0" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", @@ -4558,42 +3724,6 @@ "nan": "^2.12.1" } }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dev": true, - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -4639,46 +3769,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-uri": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", - "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", - "dev": true, - "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -4762,15 +3852,6 @@ "object.defaults": "^1.1.0" } }, - "global-dirs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", - "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", - "dev": true, - "requires": { - "ini": "^1.3.5" - } - }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -4827,57 +3908,12 @@ "sparkles": "^1.0.0" } }, - "got": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/got/-/got-11.4.0.tgz", - "integrity": "sha512-XysJZuZNVpaQ37Oo2LV90MIkPeYITehyy1A0QzO1JwOXm8EWuEf9eeGk2XuHePvLEGnm9AVOI37bHwD6KYyBtg==", - "dev": true, - "requires": { - "@sindresorhus/is": "^2.1.1", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.4.5", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - } - } - }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -4947,20 +3983,6 @@ "glogg": "^1.0.0" } }, - "gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", - "dev": true, - "requires": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -5018,12 +4040,6 @@ } } }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, "hasha": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", @@ -5061,12 +4077,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, "http-errors": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", @@ -5086,43 +4096,6 @@ } } }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "http2-wrapper": { - "version": "1.0.0-beta.5.2", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz", - "integrity": "sha512-xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, "https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", @@ -5169,12 +4142,6 @@ "minimatch": "^3.0.4" } }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, "import-fresh": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", @@ -5185,12 +4152,6 @@ "resolve-from": "^4.0.0" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -5222,131 +4183,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "interpret": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", @@ -5359,12 +4195,6 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", @@ -5427,15 +4257,6 @@ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -5462,12 +4283,6 @@ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, - "is-deflate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ=", - "dev": true - }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -5487,12 +4302,6 @@ } } }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -5522,34 +4331,12 @@ "is-extglob": "^2.1.1" } }, - "is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=", - "dev": true - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } - }, "is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", "dev": true }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -5570,22 +4357,10 @@ } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { @@ -5669,21 +4444,6 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -5852,12 +4612,6 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5879,41 +4633,12 @@ "minimist": "^1.2.0" } }, - "jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - }, - "dependencies": { - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - } - } - }, "just-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", "dev": true }, - "keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -5930,15 +4655,6 @@ "es6-weak-map": "^2.0.1" } }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, "lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", @@ -5976,15 +4692,6 @@ "type-check": "~0.4.0" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, "liftoff": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", @@ -6038,102 +4745,12 @@ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=", - "dev": true - }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.findkey": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.findkey/-/lodash.findkey-4.6.0.tgz", - "integrity": "sha1-gwWOkDtRy7dZ0JzPVG3qPqOcRxg=", - "dev": true - }, - "lodash.flatmap": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", - "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=", - "dev": true - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.invert": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.invert/-/lodash.invert-4.3.0.tgz", - "integrity": "sha1-j/4g1LYW9WvqjxqgxuvYDc90Ku4=", - "dev": true - }, - "lodash.isempty": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", - "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true - }, - "lodash.topairs": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz", - "integrity": "sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", @@ -6194,27 +4811,6 @@ } } }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==", - "dev": true - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -6257,9 +4853,9 @@ } }, "marked": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", - "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.5.tgz", + "integrity": "sha512-2AlqgYnVPOc9WDyWu7S5DJaEZsfk6dNh/neatQ3IHUW4QLutM/VPSH9lG7bif+XjFWc9K9XR3QvR+fXuECmfdA==" }, "matchdep": { "version": "2.0.0", @@ -6356,12 +4952,6 @@ "mime-db": "1.42.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, "mimic-response": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", @@ -6878,12 +5468,6 @@ "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", @@ -6950,24 +5534,12 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", - "dev": true - }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node-abi": { "version": "2.19.1", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", @@ -7042,12 +5614,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, "now-and-later": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", @@ -7071,23 +5637,6 @@ "npm-bundled": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } - } - }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -7384,12 +5933,6 @@ } } }, - "object-hash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", - "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", - "dev": true - }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", @@ -7497,25 +6040,6 @@ "wrappy": "1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", - "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -7553,16 +6077,6 @@ "lcid": "^1.0.0" } }, - "os-name": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", - "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", - "dev": true, - "requires": { - "macos-release": "^2.2.0", - "windows-release": "^3.1.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -7577,18 +6091,6 @@ "os-tmpdir": "^1.0.0" } }, - "p-cancelable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", - "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -7622,58 +6124,6 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, - "pac-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", - "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", - "dev": true, - "requires": { - "agent-base": "^4.2.0", - "debug": "^4.1.1", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", - "dev": true, - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, "package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", @@ -7686,155 +6136,6 @@ "release-zalgo": "^1.0.0" } }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -7864,15 +6165,6 @@ "error-ex": "^1.2.0" } }, - "parse-link-header": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-link-header/-/parse-link-header-1.0.1.tgz", - "integrity": "sha1-vt/g0hGK64S+deewJUGeyKYRQKc=", - "dev": true, - "requires": { - "xtend": "~4.0.1" - } - }, "parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", @@ -7966,17 +6258,6 @@ "puppeteer": "^1.20.0" } }, - "peek-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -8115,12 +6396,6 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -8147,15 +6422,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -8165,56 +6431,11 @@ "ipaddr.js": "1.9.0" } }, - "proxy-agent": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", - "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", - "dev": true, - "requires": { - "agent-base": "^4.2.0", - "debug": "4", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^3.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^3.0.1", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "https-proxy-agent": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", - "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -8253,15 +6474,6 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, "puppeteer": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz", @@ -8289,12 +6501,6 @@ } } }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -8451,24 +6657,6 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, "release-zalgo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", @@ -8555,12 +6743,6 @@ "path-parse": "^1.0.6" } }, - "resolve-alpn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz", - "integrity": "sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==", - "dev": true - }, "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", @@ -8592,25 +6774,6 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -8636,27 +6799,12 @@ "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", "integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w=" }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, "run-parallel": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", "dev": true }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8694,23 +6842,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, "semver-greatest-satisfied-range": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", @@ -8814,12 +6945,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -8908,12 +7033,6 @@ } } }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -8954,1081 +7073,84 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "snyk": { - "version": "1.428.0", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.428.0.tgz", - "integrity": "sha512-yV1f28PPVG7sJ0c4GAMO3nhuJMIJNDagYJRQVwA0zLCr5u3UraE0qK2wRxo2j53ICkMBslp0b073EIoaB0lVkA==", - "dev": true, - "requires": { - "@snyk/cli-interface": "2.9.2", - "@snyk/dep-graph": "1.19.4", - "@snyk/gemfile": "1.2.0", - "@snyk/snyk-cocoapods-plugin": "2.5.1", - "abbrev": "^1.1.1", - "ansi-escapes": "3.2.0", - "chalk": "^2.4.2", - "cli-spinner": "0.2.10", - "configstore": "^5.0.1", - "debug": "^4.1.1", - "diff": "^4.0.1", - "glob": "^7.1.3", - "graphlib": "^2.1.8", - "inquirer": "^7.3.3", - "lodash": "^4.17.20", - "micromatch": "4.0.2", - "needle": "2.5.0", - "open": "^7.0.3", - "os-name": "^3.0.0", - "proxy-agent": "^3.1.1", - "proxy-from-env": "^1.0.0", - "semver": "^6.0.0", - "snyk-config": "4.0.0-rc.2", - "snyk-cpp-plugin": "2.1.0", - "snyk-docker-plugin": "4.7.4", - "snyk-go-plugin": "1.16.2", - "snyk-gradle-plugin": "3.10.2", - "snyk-module": "3.1.0", - "snyk-mvn-plugin": "2.23.1", - "snyk-nodejs-lockfile-parser": "1.30.1", - "snyk-nuget-plugin": "1.19.4", - "snyk-php-plugin": "1.9.2", - "snyk-policy": "1.14.1", - "snyk-python-plugin": "1.19.1", - "snyk-resolve": "1.0.1", - "snyk-resolve-deps": "4.4.0", - "snyk-sbt-plugin": "2.11.0", - "snyk-tree": "^1.0.0", - "snyk-try-require": "1.3.1", - "source-map-support": "^0.5.11", - "strip-ansi": "^5.2.0", - "tempfile": "^2.0.0", - "update-notifier": "^4.1.0", - "uuid": "^3.3.2", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "needle": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz", - "integrity": "sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - } - } - }, - "snyk-config": { - "version": "4.0.0-rc.2", - "resolved": "https://registry.npmjs.org/snyk-config/-/snyk-config-4.0.0-rc.2.tgz", - "integrity": "sha512-HIXpMCRp5IdQDFH/CY6WqOUt5X5Ec55KC9dFVjlMLe/2zeqsImJn1vbjpE5uBoLYIdYi1SteTqtsJhyJZWRK8g==", - "dev": true, - "requires": { - "async": "^3.2.0", - "debug": "^4.1.1", - "lodash.merge": "^4.6.2", - "minimist": "^1.2.5" - }, - "dependencies": { - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - } - } - }, - "snyk-cpp-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snyk-cpp-plugin/-/snyk-cpp-plugin-2.1.0.tgz", - "integrity": "sha512-TcAlIkHtTvKdPIORxFRr/Ur//ucWK7eFBwlMR4gPeIhKbmEE/PZedBXW2IM8ZUdPIhG53lAP/Eq++1bVFSmZ9g==", - "dev": true, - "requires": { - "@snyk/dep-graph": "^1.19.3", - "chalk": "^4.1.0", - "debug": "^4.1.1", - "hosted-git-info": "^3.0.7", - "tslib": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "snyk-docker-plugin": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.7.4.tgz", - "integrity": "sha512-tGSuGCJjdhpW8Dpc6pvjISLPku6AOYUdJ8X98+6ntIeVeb974K9CpWeofWZIqTz5vKi+oFK5SbyVU9KDNAyHfQ==", - "dev": true, - "requires": { - "@snyk/dep-graph": "^1.19.4", - "@snyk/rpm-parser": "^2.0.0", - "@snyk/snyk-docker-pull": "3.2.3", - "chalk": "^2.4.2", - "debug": "^4.1.1", - "docker-modem": "2.1.3", - "dockerfile-ast": "0.0.30", - "event-loop-spinner": "^2.0.0", - "gunzip-maybe": "^1.4.2", - "mkdirp": "^1.0.4", - "semver": "^6.1.0", - "snyk-nodejs-lockfile-parser": "1.30.1", - "tar-stream": "^2.1.0", - "tmp": "^0.2.1", - "tslib": "^1", - "uuid": "^8.2.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", - "dev": true - } - } - }, - "snyk-go-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/snyk-go-parser/-/snyk-go-parser-1.4.1.tgz", - "integrity": "sha512-StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==", - "dev": true, - "requires": { - "toml": "^3.0.0", - "tslib": "^1.10.0" - } - }, - "snyk-go-plugin": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.2.tgz", - "integrity": "sha512-FAM56z3bl1iuxeqkCEA/jyZ2hpwkQK8xQxQbhR+QppEK5lole7w1PQyWYgZAJ9oRY/BU32zdRAJwGuZbhk7G2Q==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.4", - "debug": "^4.1.1", - "graphlib": "2.1.8", - "snyk-go-parser": "1.4.1", - "tmp": "0.2.1", - "tslib": "^1.10.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - } - } - }, - "snyk-gradle-plugin": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.10.2.tgz", - "integrity": "sha512-gTFKL0BLUN54asUQ4OIoa4lATGn27VZwWDJGQ0VuqSaaoy8I5W16Cbn/KN95oIKa7tgwrmasPLd5uviFWzo/Qw==", - "dev": true, - "requires": { - "@snyk/cli-interface": "2.9.1", - "@snyk/dep-graph": "^1.19.4", - "@snyk/java-call-graph-builder": "1.16.2", - "@types/debug": "^4.1.4", - "chalk": "^3.0.0", - "debug": "^4.1.1", - "tmp": "0.2.1", - "tslib": "^2.0.0" - }, - "dependencies": { - "@snyk/cli-interface": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.1.tgz", - "integrity": "sha512-2zHRvEt4S0DO+hPRX3hp5ssELouJqgb/JUTmPDMr/32r//qooSTxojwSvAK2A6VYgYOHuo1S3VTpsSP/ywkPXA==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.4", - "@types/graphlib": "^2.1.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, - "snyk-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/snyk-module/-/snyk-module-3.1.0.tgz", - "integrity": "sha512-HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "hosted-git-info": "^3.0.4" - }, - "dependencies": { - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "snyk-mvn-plugin": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.23.1.tgz", - "integrity": "sha512-WPEZxCoUyZUs/vvsI3OF9nVQLbED8FlhrLG1HHtSM2JPZs4ashB2HqgM93zG0Vk5kxns3aiZcWL4q6vnZReyFA==", - "dev": true, - "requires": { - "@snyk/cli-interface": "2.9.1", - "@snyk/java-call-graph-builder": "1.16.2", - "debug": "^4.1.1", - "glob": "^7.1.6", - "needle": "^2.5.0", - "tmp": "^0.1.0", - "tslib": "1.11.1" - }, - "dependencies": { - "@snyk/cli-interface": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.1.tgz", - "integrity": "sha512-2zHRvEt4S0DO+hPRX3hp5ssELouJqgb/JUTmPDMr/32r//qooSTxojwSvAK2A6VYgYOHuo1S3VTpsSP/ywkPXA==", - "dev": true, - "requires": { - "@snyk/dep-graph": "1.19.4", - "@types/graphlib": "^2.1.7", - "tslib": "^1.9.3" - } - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - } - } - }, - "snyk-nodejs-lockfile-parser": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.30.1.tgz", - "integrity": "sha512-QyhE4pmy7GI7fQrVmZ+qrQB8GGSbxN7OoYueS4BEP9nDxIyH4dJAz8dME5zOUeUxh3frcgBWoWgZoSzE4VOYpg==", - "dev": true, - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "event-loop-spinner": "^2.0.0", - "got": "11.4.0", - "graphlib": "2.1.8", - "lodash.clonedeep": "^4.5.0", - "lodash.flatmap": "^4.5.0", - "lodash.isempty": "^4.4.0", - "lodash.set": "^4.3.2", - "lodash.topairs": "^4.3.0", - "p-map": "2.1.0", - "snyk-config": "^4.0.0-rc.2", - "tslib": "^1.9.3", - "uuid": "^8.3.0", - "yaml": "^1.9.2" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", - "dev": true - } - } - }, - "snyk-nuget-plugin": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.19.4.tgz", - "integrity": "sha512-6BvLJc7gpNdfPJSnvpmTL4BrbaOVbXh/9q1FNMs5OVp8NbnZ3l97iM+bpQXWTJHOa3BJBZz7iEg+3suH4AWoWw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "dotnet-deps-parser": "5.0.0", - "jszip": "3.4.0", - "lodash": "^4.17.20", - "snyk-paket-parser": "1.6.0", - "tslib": "^1.11.2", - "xml2js": "^0.4.17" - }, - "dependencies": { - "jszip": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz", - "integrity": "sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - } - } - }, - "snyk-paket-parser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/snyk-paket-parser/-/snyk-paket-parser-1.6.0.tgz", - "integrity": "sha512-6htFynjBe/nakclEHUZ1A3j5Eu32/0pNve5Qm4MFn3YQmJgj7UcAO8hdyK3QfzEY29/kAv/rkJQg+SKshn+N9Q==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "snyk-php-plugin": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/snyk-php-plugin/-/snyk-php-plugin-1.9.2.tgz", - "integrity": "sha512-IQcdsQBqqXVRY5DatlI7ASy4flbhtU2V7cr4P2rK9rkFnVHO6LHcitwKXVZa9ocdOmpZDzk7U6iwHJkVFcR6OA==", - "dev": true, - "requires": { - "@snyk/cli-interface": "^2.9.1", - "@snyk/composer-lockfile-parser": "^1.4.1", - "tslib": "1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - } - } - }, - "snyk-poetry-lockfile-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/snyk-poetry-lockfile-parser/-/snyk-poetry-lockfile-parser-1.1.1.tgz", - "integrity": "sha512-G3LX27V2KUsKObwVN4vDDjrYr5BERad9pXHAf+SST5+vZsdPUUZjd1ZUIrHgCv7IQhwq+7mZrtqedY5x7+LIGA==", - "dev": true, - "requires": { - "@snyk/cli-interface": "^2.9.2", - "@snyk/dep-graph": "^1.19.5", - "debug": "^4.2.0", - "toml": "^3.0.0", - "tslib": "^2.0.0" - }, - "dependencies": { - "@snyk/dep-graph": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.20.0.tgz", - "integrity": "sha512-/TOzXGh+JFgAu8pWdo1oLFKDNfFk99TnSQG2lbEu+vKLI2ZrGAk9oGO0geNogAN7Ib4EDQOEhgb7YwqwL7aA7w==", - "dev": true, - "requires": { - "graphlib": "^2.1.8", - "lodash.isequal": "^4.5.0", - "object-hash": "^2.0.3", - "semver": "^6.0.0", - "tslib": "^1.13.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - } - } - }, - "snyk-policy": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/snyk-policy/-/snyk-policy-1.14.1.tgz", - "integrity": "sha512-C5vSkoBYxPnaqb218sm4m6N5s1BhIXlldpIX5xRNnZ0QkDwVj3dy/PfgwxRgVQh7QFGa1ajbvKmsGmm4RRsN8g==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "email-validator": "^2.0.4", - "js-yaml": "^3.13.1", - "lodash.clonedeep": "^4.5.0", - "semver": "^6.0.0", - "snyk-module": "^2.0.2", - "snyk-resolve": "^1.0.1", - "snyk-try-require": "^1.3.1", - "then-fs": "^2.0.0" - }, - "dependencies": { - "@types/node": { - "version": "6.14.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.13.tgz", - "integrity": "sha512-J1F0XJ/9zxlZel5ZlbeSuHW2OpabrUAqpFuC2sm2I3by8sERQ8+KCjNKUcq8QHuzpGMWiJpo9ZxeHrqrP2KzQw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "snyk-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snyk-module/-/snyk-module-2.1.0.tgz", - "integrity": "sha512-K5xeA39vLbm23Y/29wFEhKGvo7FwV4x9XhCP5gB22dBPyYiCCNiDERX4ofHQvtM6q96cL0hIroMdlbctv/0nPw==", - "dev": true, - "requires": { - "@types/hosted-git-info": "^2.7.0", - "@types/node": "^6.14.7", - "debug": "^3.1.0", - "hosted-git-info": "^2.7.1" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - } - } - }, - "snyk-python-plugin": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.19.1.tgz", - "integrity": "sha512-JoOUHnA76L3pekCblSuE9jQ9CuA5jt+GqXpsLQbEIZ0FQQTBa+0F7vfolg3Q7+s1it4ZdtgSbSWrlxCngIJt8g==", - "dev": true, - "requires": { - "@snyk/cli-interface": "^2.0.3", - "snyk-poetry-lockfile-parser": "^1.1.1", - "tmp": "0.0.33" - } - }, - "snyk-resolve": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/snyk-resolve/-/snyk-resolve-1.0.1.tgz", - "integrity": "sha512-7+i+LLhtBo1Pkth01xv+RYJU8a67zmJ8WFFPvSxyCjdlKIcsps4hPQFebhz+0gC5rMemlaeIV6cqwqUf9PEDpw==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "then-fs": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "snyk-resolve-deps": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/snyk-resolve-deps/-/snyk-resolve-deps-4.4.0.tgz", - "integrity": "sha512-aFPtN8WLqIk4E1ulMyzvV5reY1Iksz+3oPnUVib1jKdyTHymmOIYF7z8QZ4UUr52UsgmrD9EA/dq7jpytwFoOQ==", - "dev": true, - "requires": { - "@types/node": "^6.14.4", - "@types/semver": "^5.5.0", - "ansicolors": "^0.3.2", - "debug": "^3.2.5", - "lodash.assign": "^4.2.0", - "lodash.assignin": "^4.2.0", - "lodash.clone": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lru-cache": "^4.0.0", - "semver": "^5.5.1", - "snyk-module": "^1.6.0", - "snyk-resolve": "^1.0.0", - "snyk-tree": "^1.0.0", - "snyk-try-require": "^1.1.1", - "then-fs": "^2.0.0" - }, - "dependencies": { - "@types/node": { - "version": "6.14.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.13.tgz", - "integrity": "sha512-J1F0XJ/9zxlZel5ZlbeSuHW2OpabrUAqpFuC2sm2I3by8sERQ8+KCjNKUcq8QHuzpGMWiJpo9ZxeHrqrP2KzQw==", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "snyk-module": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/snyk-module/-/snyk-module-1.9.1.tgz", - "integrity": "sha512-A+CCyBSa4IKok5uEhqT+hV/35RO6APFNLqk9DRRHg7xW2/j//nPX8wTSZUPF8QeRNEk/sX+6df7M1y6PBHGSHA==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "hosted-git-info": "^2.7.1" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "snyk-sbt-plugin": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/snyk-sbt-plugin/-/snyk-sbt-plugin-2.11.0.tgz", - "integrity": "sha512-wUqHLAa3MzV6sVO+05MnV+lwc+T6o87FZZaY+43tQPytBI2Wq23O3j4POREM4fa2iFfiQJoEYD6c7xmhiEUsSA==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "semver": "^6.1.2", - "tmp": "^0.1.0", - "tree-kill": "^1.2.2", - "tslib": "^1.10.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" + "is-extendable": "^0.1.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "snyk-tree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/snyk-tree/-/snyk-tree-1.0.0.tgz", - "integrity": "sha1-D7cxdtvzLngvGRAClBYESPkRHMg=", - "dev": true, - "requires": { - "archy": "^1.0.0" - } - }, - "snyk-try-require": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/snyk-try-require/-/snyk-try-require-1.3.1.tgz", - "integrity": "sha1-bgJvkuZK9/zM6h7lPVJIQeQYohI=", + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "debug": "^3.1.0", - "lodash.clonedeep": "^4.3.0", - "lru-cache": "^4.0.0", - "then-fs": "^2.0.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "ms": "^2.1.1" + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" } }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "kind-of": "^6.0.0" } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" + "kind-of": "^3.2.0" }, "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "is-buffer": "^1.1.5" } } } @@ -10148,12 +7270,6 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, - "split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY=", - "dev": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -10178,26 +7294,6 @@ "node-pre-gyp": "^0.11.0" } }, - "ssh2": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.8.9.tgz", - "integrity": "sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw==", - "dev": true, - "requires": { - "ssh2-streams": "~0.4.10" - } - }, - "ssh2-streams": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.4.10.tgz", - "integrity": "sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ==", - "dev": true, - "requires": { - "asn1": "~0.2.0", - "bcrypt-pbkdf": "^1.0.2", - "streamsearch": "~0.1.2" - } - }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -10242,12 +7338,6 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "dev": true - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -10303,12 +7393,6 @@ "is-utf8": "^0.2.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -10427,36 +7511,6 @@ } } }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true - }, - "tempfile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", - "dev": true, - "requires": { - "temp-dir": "^1.0.0", - "uuid": "^3.0.1" - }, - "dependencies": { - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", - "dev": true - } - } - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, "terser": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", @@ -10493,21 +7547,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "then-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz", - "integrity": "sha1-cveS3Z0xcFqRrhnr/Piz+WjIHaI=", - "dev": true, - "requires": { - "promise": ">=3.2 <8" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -10528,26 +7567,11 @@ "xtend": "~4.0.0" } }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", - "dev": true - }, "time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, "to-absolute-glob": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", @@ -10584,12 +7608,6 @@ } } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -10626,18 +7644,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "dev": true - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -10694,12 +7700,6 @@ "safe-buffer": "^5.0.1" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -10809,15 +7809,6 @@ "through2-filter": "^3.0.0" } }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -10869,78 +7860,6 @@ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", @@ -10956,15 +7875,6 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -11082,12 +7992,6 @@ "vinyl": "^2.0.0" } }, - "vscode-languageserver-types": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", - "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==", - "dev": true - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -11116,64 +8020,6 @@ "string-width": "^1.0.2 || 2" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "windows-release": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz", - "integrity": "sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==", - "dev": true, - "requires": { - "execa": "^1.0.0" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -11230,34 +8076,6 @@ "async-limiter": "~1.0.0" } }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", - "dev": true - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -11275,12 +8093,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true - }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", diff --git a/package.json b/package.json index 78c87970..3de62bd4 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.12.0-dev", "scripts": { "start": "node ./bin/www", - "test": "snyk test && mocha", + "test": "mocha", "coverage": "nyc mocha" }, "repository": { @@ -32,7 +32,7 @@ "express-session": "^1.17.1", "fancy-log": "^1.3.3", "http-errors": "^1.8.0", - "marked": "^1.2.4", + "marked": "^1.2.5", "morgan": "^1.10.0", "pdf-puppeteer": "^1.1.10", "sanitize-filename": "^1.6.3" @@ -48,7 +48,7 @@ "@types/express": "^4.17.9", "@types/express-rate-limit": "^5.1.0", "@types/express-serve-static-core": "^4.17.13", - "@types/express-session": "^1.17.2", + "@types/express-session": "^1.17.3", "@types/fancy-log": "^1.3.1", "@types/gulp": "^4.0.7", "@types/gulp-minify": "^3.1.0", @@ -69,7 +69,6 @@ "gulp-minify": "^3.1.0", "mocha": "^8.2.1", "nyc": "^15.1.0", - "snyk": "^1.428.0", "typescript": "^4.0.5" } } diff --git a/public/javascripts/organization-viewEdit.js b/public/javascripts/organization-viewEdit.js index ccb3269f..33922cd2 100644 --- a/public/javascripts/organization-viewEdit.js +++ b/public/javascripts/organization-viewEdit.js @@ -366,6 +366,59 @@ Object.defineProperty(exports, "__esModule", { value: true }); cityssm.alertModal("No Account Number Set", "Please add at least one bank record with the account number you are looking to record.", "OK", "warning"); return; } + let recordDateRowIndex = -1; + const syncFn_enableDateField = (rowIndexString) => { + const recordDateEle = document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString); + recordDateEle.classList.remove("is-readonly"); + recordDateEle.readOnly = false; + }; + const syncFn_disableDateField = (rowIndexString) => { + const recordDateEle = document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString); + recordDateEle.classList.add("is-readonly"); + recordDateEle.readOnly = true; + recordDateEle.value = document.getElementById("bankRecordMonthEdit--recordDateString-0").value; + }; + const syncFn_toggleDateField = (changeEvent) => { + const syncRecordDateCheckboxEle = changeEvent.currentTarget; + const rowIndexString = syncRecordDateCheckboxEle.value; + if (syncRecordDateCheckboxEle.checked) { + syncFn_disableDateField(rowIndexString); + } + else { + syncFn_enableDateField(rowIndexString); + } + }; + const syncFn_copyToSyncedDates = () => { + const recordDateString = document.getElementById("bankRecordMonthEdit--recordDateString-0").value; + for (let i = 1; i <= recordDateRowIndex; i += 1) { + if (document.getElementById("bankRecordMonthEdit--syncRecordDate-" + i.toString()).checked) { + document.getElementById("bankRecordMonthEdit--recordDateString-" + i.toString()).value = recordDateString; + } + } + }; + const dateFn_setToToday = (clickEvent) => { + const rowIndexString = clickEvent.currentTarget.value; + if (rowIndexString === "0" || + !document.getElementById("bankRecordMonthEdit--syncRecordDate-" + rowIndexString).checked) { + document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString).value = cityssm.dateToString(new Date()); + if (rowIndexString === "0") { + syncFn_copyToSyncedDates(); + } + } + else { + cityssm.alertModal("Date Not Changed", "This date is synced with the date on the first band record type.", "OK", "warning"); + } + }; + let closeBankRecordMonthEditModalFn; + const submitFn = (formEvent) => { + formEvent.preventDefault(); + cityssm.postJSON("/organizations/doUpdateBankRecordsByMonth", formEvent.currentTarget, (responseJSON) => { + if (responseJSON.success) { + closeBankRecordMonthEditModalFn(); + getBankRecordsFn(); + } + }); + }; const isNavBlockedByPage = cityssm.isNavBlockerEnabled(); const bankingYear = parseInt(bankRecordsBankingYearFilterEle.value, 10); const trEle = buttonEvent.currentTarget.closest("tr"); @@ -390,20 +443,21 @@ Object.defineProperty(exports, "__esModule", { value: true }); document.getElementById("bankRecordMonthEdit--bankingYear-span").innerText = bankingYear.toString(); document.getElementById("bankRecordMonthEdit--bankingMonth-span").innerText = bankingMonth.toString(); const recordTypeContainerEle = document.getElementById("container--bankRecordMonthEdit-recordTypes"); - let rowIndex = -1; for (const config_bankRecordType of exports.config_bankRecordTypes) { - rowIndex += 1; - const rowIndexString = rowIndex.toString(); + recordDateRowIndex += 1; + const rowIndexString = recordDateRowIndex.toString(); recordTypeContainerEle.insertAdjacentHTML("beforeend", "
"); + recordTypeContainerEle.insertAdjacentHTML("beforeend", ""); + recordTypeContainerEle.insertAdjacentHTML("beforeend", ""); recordTypeContainerEle.insertAdjacentHTML("beforeend", "
" + ("
" + "" + cityssm.escapeHTML(config_bankRecordType.bankRecordTypeName) + "" + "
") + ("
" + - (rowIndex === 0 + (recordDateRowIndex === 0 ? "" : "
" + - "" + + "" + "" + @@ -419,19 +473,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); recordTypeContainerEle.insertAdjacentHTML("beforeend", "
" + ("
" + "
" + - ("
" + + ("
" + "" + "" + "
") + ("
" + - "" + "
") + @@ -448,8 +502,34 @@ Object.defineProperty(exports, "__esModule", { value: true }); "
" + "
") + "
"); + const bankRecord = bankRecordTypeToRecord.get(config_bankRecordType.bankRecordType); + if (bankRecord) { + document.getElementById("bankRecordMonthEdit--recordIndex-" + rowIndexString).value = bankRecord.recordIndex.toString(); + if (bankRecord.recordIsNA) { + document.getElementById("bankRecordMonthEdit--recordIsNA-" + rowIndexString).checked = true; + } + document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString).value = bankRecord.recordDateString; + document.getElementById("bankRecordMonthEdit--recordNote-" + rowIndexString).value = bankRecord.recordNote; + } + if (recordDateRowIndex !== 0) { + const syncRecordDateCheckboxEle = document.getElementById("bankRecordMonthEdit--syncRecordDate-" + rowIndexString); + syncRecordDateCheckboxEle.addEventListener("change", syncFn_toggleDateField); + const mainRecordDateString = document.getElementById("bankRecordMonthEdit--recordDateString-0").value; + if ((bankRecord && bankRecord.recordDateString !== mainRecordDateString) || (!bankRecord && mainRecordDateString !== "")) { + syncRecordDateCheckboxEle.checked = false; + syncFn_enableDateField(rowIndexString); + } + } + document.getElementById("bankRecordMonthEdit--setToToday-" + rowIndexString).addEventListener("click", dateFn_setToToday); } - document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex").value = rowIndex.toString(); + document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex").value = recordDateRowIndex.toString(); + if (recordDateRowIndex >= 0) { + document.getElementById("bankRecordMonthEdit--recordDateString-0").addEventListener("change", syncFn_copyToSyncedDates); + } + }, + onshown: (_modalEle, closeModalFn) => { + document.getElementById("form--bankRecordMonthEdit").addEventListener("submit", submitFn); + closeBankRecordMonthEditModalFn = closeModalFn; }, onremoved: () => { if (!isNavBlockedByPage) { diff --git a/public/javascripts/organization-viewEdit.min.js b/public/javascripts/organization-viewEdit.min.js index e46ece4d..9f620c13 100644 --- a/public/javascripts/organization-viewEdit.min.js +++ b/public/javascripts/organization-viewEdit.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e="true"===document.getElementsByTagName("main")[0].getAttribute("data-can-create"),t=document.getElementById("container--remarks");if(e){const e=parseInt(t.getAttribute("data-organization-id"),10),n=t=>{const n=parseInt(t.currentTarget.getAttribute("data-remark-index"),10);llm.organizationRemarks.openEditRemarkModal(e,n,o)},a=t=>{const n=parseInt(t.currentTarget.getAttribute("data-remark-index"),10);llm.organizationRemarks.deleteRemark(e,n,!0,o)},o=()=>{llm.organizationRemarks.getRemarksByOrganizationID(e,e=>{if(cityssm.clearElement(t),0===e.length)t.innerHTML='

There are no remarks associated with this organization.

';else{for(const n of e)t.insertAdjacentHTML("beforeend",'
'+(n.isImportant?'':'')+'

'+cityssm.escapeHTML(n.remark)+'

'+(n.recordCreate_timeMillis===n.recordUpdate_timeMillis?"":' ')+n.recordUpdate_userName+" - "+n.remarkDateString+" "+n.remarkTimeString+"

"+(n.canUpdate?'
':"")+"
");const o=t.getElementsByClassName("is-edit-remark-button");for(const e of o)e.addEventListener("click",n);const s=t.getElementsByClassName("is-delete-remark-button");for(const e of s)e.addEventListener("click",a)}})};document.getElementsByClassName("is-add-remark-button")[0].addEventListener("click",t=>{t.preventDefault(),llm.organizationRemarks.openAddRemarkModal(e,o)});const s=t.getElementsByClassName("is-edit-remark-button");for(const e of s)e.addEventListener("click",n);const r=t.getElementsByClassName("is-delete-remark-button");for(const e of r)e.addEventListener("click",a)}const n=document.getElementById("remark--searchStr");if(n){n.value="";const e=document.getElementById("remark--displayCount"),a=t.getElementsByClassName("is-remark-block");n.addEventListener("keyup",()=>{const t=n.value.trim().toLowerCase().split(" ");let o=a.length;for(const e of a){const n=e.getElementsByClassName("is-remark")[0].innerText.trim().toLowerCase();let a=!0;for(const e of t)if(!n.includes(e)){a=!1,o-=1;break}a?e.classList.remove("is-hidden"):e.classList.add("is-hidden")}e.innerText=o.toString()})}let a=!1;const o=new Map,s=document.getElementById("bankRecordFilter--bankingYear"),r=document.getElementById("bankRecordFilter--accountNumber"),i=document.getElementById("table--bankRecords"),d=i.getAttribute("data-organization-id"),c=()=>{(()=>{o.clear(),i.classList.remove("has-status-loaded"),i.classList.add("has-status-loading");const e=i.getElementsByClassName("is-bank-record-info");for(const t of e){t.innerHTML='
No Record Recorded';const e=t.closest("td");e.setAttribute("data-record-index",""),e.classList.remove("has-background-success-light"),e.classList.remove("has-background-info-light")}})();const e=e=>{for(const t of e){o.set(t.recordIndex,t);const e=i.querySelector("[data-banking-month='"+t.bankingMonth.toString()+"']").querySelector("[data-bank-record-type='"+t.bankRecordType+"']");if(!e)continue;e.setAttribute("data-record-index",t.recordIndex.toString());const n=e.getElementsByClassName("is-bank-record-info")[0];t.recordIsNA?(e.classList.add("has-background-info-light"),n.innerHTML='
Not Applicable'):(e.classList.add("has-background-success-light"),n.innerHTML='
Recorded '+t.recordDateString+""),""!==t.recordNote&&n.insertAdjacentHTML("beforeend",'
'+cityssm.escapeHTML(t.recordNote)+"
")}i.classList.remove("has-status-loading"),i.classList.add("has-status-loaded")};""===r.value?e([]):cityssm.postJSON("/organizations/doGetBankRecords",{organizationID:d,bankingYear:s.value,accountNumber:r.value},e)},l=()=>{cityssm.postJSON("/organizations/doGetBankRecordStats",{organizationID:d},e=>{const t=(new Date).getFullYear();let n=t-1;if(0===e.length)r.innerHTML='';else{r.innerHTML="";for(const t of e){n=Math.min(t.bankingYearMin,n);const e=cityssm.escapeHTML(t.accountNumber);r.insertAdjacentHTML("beforeend",'")}}s.innerHTML="";for(let e=t;e>=n;e-=1)s.insertAdjacentHTML("beforeend",'");c()})};if(s.addEventListener("change",c),r.addEventListener("change",c),e){const e=e=>{const t=cityssm.isNavBlockerEnabled();let n,i=!1,m=!1,u=!0;const g=e=>{e.preventDefault(),cityssm.postJSON("/organizations/"+(i?"doEditBankRecord":"doAddBankRecord"),e.currentTarget,e=>{e.success?(n(),i||m&&!u?c():(a=!1,l())):cityssm.alertModal("Record Not Saved",e.message,"OK","danger")})},b=e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-record-index");cityssm.confirmModal("Delete Bank Record?","Are you sure you want to delete this bank record?","Yes, Delete","warning",()=>{cityssm.postJSON("/organizations/doDeleteBankRecord",{organizationID:d,recordIndex:t},()=>{n(),c()})})},k=e.currentTarget;let y="";const f=r.value;u=""===f;let p="",h=!1,v="";const E=new Date,R=E.getFullYear(),M=cityssm.dateToString(E);let I=M;E.setMonth(E.getMonth()-1);let B=E.getFullYear(),N=E.getMonth()+1;if("is-add-bank-record-button"!==k.id){m=!0;const e=k.closest("td");if(y=e.getAttribute("data-record-index"),B=parseInt(s.value,10),""===y)N=parseInt(e.closest("tr").getAttribute("data-banking-month"),10),p=e.getAttribute("data-bank-record-type");else{const e=o.get(parseInt(y,10));i=!0,N=e.bankingMonth,p=e.bankRecordType,h=e.recordIsNA,I=e.recordDateString,v=e.recordNote}}cityssm.openHtmlModal("organization-bankRecordEdit",{onshow(){cityssm.enableNavBlocker(),document.getElementById("bankRecordEdit--organizationID").value=d,document.getElementById("bankRecordEdit--recordIndex").value=y;const e=document.getElementById("bankRecordEdit--accountNumber");e.value=f;const t=document.getElementById("bankRecordEdit--bankingYear");t.value=B.toString(),t.setAttribute("max",R.toString());const n=document.getElementById("bankRecordEdit--bankingMonth");n.value=N.toString();const a=document.getElementById("bankRecordEdit--bankRecordType");for(const e of exports.config_bankRecordTypes)a.insertAdjacentHTML("beforeend",'");""===p&&a.insertAdjacentHTML("afterbegin",''),a.value=p;const o=document.getElementById("bankRecordEdit--recordDateString");if(o.value=I,o.setAttribute("max",M),h&&document.getElementById("bankRecordEdit--recordIsNA").setAttribute("checked","checked"),document.getElementById("bankRecordEdit--recordNote").value=v,m&&(u||(e.setAttribute("readonly","readonly"),e.classList.add("is-readonly")),t.setAttribute("readonly","readonly"),t.classList.add("is-readonly"),n.setAttribute("readonly","readonly"),n.classList.add("is-readonly"),a.setAttribute("readonly","readonly"),a.classList.add("is-readonly")),i){const e=document.getElementById("bankRecordEdit--deleteRecordButton");e.setAttribute("data-record-index",y),e.addEventListener("click",b)}else document.getElementById("bankRecordEdit--moreOptionsDropdown").remove()},onshown(e,t){n=t,e.getElementsByTagName("form")[0].addEventListener("submit",g)},onremoved(){t||cityssm.disableNavBlocker()}})},t=document.getElementById("is-add-bank-record-button");t&&t.addEventListener("click",e);const n=i.getElementsByClassName("is-bank-record-button");for(const t of n)t.addEventListener("click",e);const m=e=>{const t=r.value;if(""===t)return void cityssm.alertModal("No Account Number Set","Please add at least one bank record with the account number you are looking to record.","OK","warning");const n=cityssm.isNavBlockerEnabled(),a=parseInt(s.value,10),i=e.currentTarget.closest("tr"),c=parseInt(i.getAttribute("data-banking-month"),10),l=i.getElementsByTagName("td"),m=new Map;for(const e of l){const t=e.getAttribute("data-record-index");if(""!==t){const e=o.get(parseInt(t,10));m.set(e.bankRecordType,e)}}cityssm.openHtmlModal("organization-bankRecordMonthEdit",{onshow:()=>{cityssm.enableNavBlocker(),document.getElementById("bankRecordMonthEdit--organizationID").value=d,document.getElementById("bankRecordMonthEdit--accountNumber").value=t,document.getElementById("bankRecordMonthEdit--bankingYear").value=a.toString(),document.getElementById("bankRecordMonthEdit--bankingMonth").value=c.toString(),document.getElementById("bankRecordMonthEdit--accountNumber-span").innerText=t,document.getElementById("bankRecordMonthEdit--bankingYear-span").innerText=a.toString(),document.getElementById("bankRecordMonthEdit--bankingMonth-span").innerText=c.toString();const e=document.getElementById("container--bankRecordMonthEdit-recordTypes");let n=-1;for(const t of exports.config_bankRecordTypes){const a=(n+=1).toString();e.insertAdjacentHTML("beforeend","
"),e.insertAdjacentHTML("beforeend",'
'+cityssm.escapeHTML(t.bankRecordTypeName)+'
'+(0===n?"":'
')+'
'),e.insertAdjacentHTML("beforeend",'
')}document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex").value=n.toString()},onremoved:()=>{n||cityssm.disableNavBlocker()}})},u=i.getElementsByClassName("is-bank-record-month-button");for(const e of u)e.addEventListener("click",m)}llm.initializeTabs(document.getElementById("tabs--organization"),{onshown(e){"organizationTabContent--bankRecords"!==e.id||a||(a=!0,l())}})})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e="true"===document.getElementsByTagName("main")[0].getAttribute("data-can-create"),t=document.getElementById("container--remarks");if(e){const e=parseInt(t.getAttribute("data-organization-id"),10),n=t=>{const n=parseInt(t.currentTarget.getAttribute("data-remark-index"),10);llm.organizationRemarks.openEditRemarkModal(e,n,o)},a=t=>{const n=parseInt(t.currentTarget.getAttribute("data-remark-index"),10);llm.organizationRemarks.deleteRemark(e,n,!0,o)},o=()=>{llm.organizationRemarks.getRemarksByOrganizationID(e,e=>{if(cityssm.clearElement(t),0===e.length)t.innerHTML='

There are no remarks associated with this organization.

';else{for(const n of e)t.insertAdjacentHTML("beforeend",'
'+(n.isImportant?'':'')+'

'+cityssm.escapeHTML(n.remark)+'

'+(n.recordCreate_timeMillis===n.recordUpdate_timeMillis?"":' ')+n.recordUpdate_userName+" - "+n.remarkDateString+" "+n.remarkTimeString+"

"+(n.canUpdate?'
':"")+"
");const o=t.getElementsByClassName("is-edit-remark-button");for(const e of o)e.addEventListener("click",n);const r=t.getElementsByClassName("is-delete-remark-button");for(const e of r)e.addEventListener("click",a)}})};document.getElementsByClassName("is-add-remark-button")[0].addEventListener("click",t=>{t.preventDefault(),llm.organizationRemarks.openAddRemarkModal(e,o)});const r=t.getElementsByClassName("is-edit-remark-button");for(const e of r)e.addEventListener("click",n);const d=t.getElementsByClassName("is-delete-remark-button");for(const e of d)e.addEventListener("click",a)}const n=document.getElementById("remark--searchStr");if(n){n.value="";const e=document.getElementById("remark--displayCount"),a=t.getElementsByClassName("is-remark-block");n.addEventListener("keyup",()=>{const t=n.value.trim().toLowerCase().split(" ");let o=a.length;for(const e of a){const n=e.getElementsByClassName("is-remark")[0].innerText.trim().toLowerCase();let a=!0;for(const e of t)if(!n.includes(e)){a=!1,o-=1;break}a?e.classList.remove("is-hidden"):e.classList.add("is-hidden")}e.innerText=o.toString()})}let a=!1;const o=new Map,r=document.getElementById("bankRecordFilter--bankingYear"),d=document.getElementById("bankRecordFilter--accountNumber"),s=document.getElementById("table--bankRecords"),i=s.getAttribute("data-organization-id"),c=()=>{(()=>{o.clear(),s.classList.remove("has-status-loaded"),s.classList.add("has-status-loading");const e=s.getElementsByClassName("is-bank-record-info");for(const t of e){t.innerHTML='
No Record Recorded';const e=t.closest("td");e.setAttribute("data-record-index",""),e.classList.remove("has-background-success-light"),e.classList.remove("has-background-info-light")}})();const e=e=>{for(const t of e){o.set(t.recordIndex,t);const e=s.querySelector("[data-banking-month='"+t.bankingMonth.toString()+"']").querySelector("[data-bank-record-type='"+t.bankRecordType+"']");if(!e)continue;e.setAttribute("data-record-index",t.recordIndex.toString());const n=e.getElementsByClassName("is-bank-record-info")[0];t.recordIsNA?(e.classList.add("has-background-info-light"),n.innerHTML='
Not Applicable'):(e.classList.add("has-background-success-light"),n.innerHTML='
Recorded '+t.recordDateString+""),""!==t.recordNote&&n.insertAdjacentHTML("beforeend",'
'+cityssm.escapeHTML(t.recordNote)+"
")}s.classList.remove("has-status-loading"),s.classList.add("has-status-loaded")};""===d.value?e([]):cityssm.postJSON("/organizations/doGetBankRecords",{organizationID:i,bankingYear:r.value,accountNumber:d.value},e)},l=()=>{cityssm.postJSON("/organizations/doGetBankRecordStats",{organizationID:i},e=>{const t=(new Date).getFullYear();let n=t-1;if(0===e.length)d.innerHTML='';else{d.innerHTML="";for(const t of e){n=Math.min(t.bankingYearMin,n);const e=cityssm.escapeHTML(t.accountNumber);d.insertAdjacentHTML("beforeend",'")}}r.innerHTML="";for(let e=t;e>=n;e-=1)r.insertAdjacentHTML("beforeend",'");c()})};if(r.addEventListener("change",c),d.addEventListener("change",c),e){const e=e=>{const t=cityssm.isNavBlockerEnabled();let n,s=!1,m=!1,u=!0;const g=e=>{e.preventDefault(),cityssm.postJSON("/organizations/"+(s?"doEditBankRecord":"doAddBankRecord"),e.currentTarget,e=>{e.success?(n(),s||m&&!u?c():(a=!1,l())):cityssm.alertModal("Record Not Saved",e.message,"OK","danger")})},b=e=>{e.preventDefault();const t=e.currentTarget.getAttribute("data-record-index");cityssm.confirmModal("Delete Bank Record?","Are you sure you want to delete this bank record?","Yes, Delete","warning",()=>{cityssm.postJSON("/organizations/doDeleteBankRecord",{organizationID:i,recordIndex:t},()=>{n(),c()})})},k=e.currentTarget;let y="";const h=d.value;u=""===h;let E="",p=!1,v="";const f=new Date,R=f.getFullYear(),M=cityssm.dateToString(f);let I=M;f.setMonth(f.getMonth()-1);let B=f.getFullYear(),T=f.getMonth()+1;if("is-add-bank-record-button"!==k.id){m=!0;const e=k.closest("td");if(y=e.getAttribute("data-record-index"),B=parseInt(r.value,10),""===y)T=parseInt(e.closest("tr").getAttribute("data-banking-month"),10),E=e.getAttribute("data-bank-record-type");else{const e=o.get(parseInt(y,10));s=!0,T=e.bankingMonth,E=e.bankRecordType,p=e.recordIsNA,I=e.recordDateString,v=e.recordNote}}cityssm.openHtmlModal("organization-bankRecordEdit",{onshow(){cityssm.enableNavBlocker(),document.getElementById("bankRecordEdit--organizationID").value=i,document.getElementById("bankRecordEdit--recordIndex").value=y;const e=document.getElementById("bankRecordEdit--accountNumber");e.value=h;const t=document.getElementById("bankRecordEdit--bankingYear");t.value=B.toString(),t.setAttribute("max",R.toString());const n=document.getElementById("bankRecordEdit--bankingMonth");n.value=T.toString();const a=document.getElementById("bankRecordEdit--bankRecordType");for(const e of exports.config_bankRecordTypes)a.insertAdjacentHTML("beforeend",'");""===E&&a.insertAdjacentHTML("afterbegin",''),a.value=E;const o=document.getElementById("bankRecordEdit--recordDateString");if(o.value=I,o.setAttribute("max",M),p&&document.getElementById("bankRecordEdit--recordIsNA").setAttribute("checked","checked"),document.getElementById("bankRecordEdit--recordNote").value=v,m&&(u||(e.setAttribute("readonly","readonly"),e.classList.add("is-readonly")),t.setAttribute("readonly","readonly"),t.classList.add("is-readonly"),n.setAttribute("readonly","readonly"),n.classList.add("is-readonly"),a.setAttribute("readonly","readonly"),a.classList.add("is-readonly")),s){const e=document.getElementById("bankRecordEdit--deleteRecordButton");e.setAttribute("data-record-index",y),e.addEventListener("click",b)}else document.getElementById("bankRecordEdit--moreOptionsDropdown").remove()},onshown(e,t){n=t,e.getElementsByTagName("form")[0].addEventListener("submit",g)},onremoved(){t||cityssm.disableNavBlocker()}})},t=document.getElementById("is-add-bank-record-button");t&&t.addEventListener("click",e);const n=s.getElementsByClassName("is-bank-record-button");for(const t of n)t.addEventListener("click",e);const m=e=>{const t=d.value;if(""===t)return void cityssm.alertModal("No Account Number Set","Please add at least one bank record with the account number you are looking to record.","OK","warning");let n=-1;const a=e=>{const t=document.getElementById("bankRecordMonthEdit--recordDateString-"+e);t.classList.remove("is-readonly"),t.readOnly=!1},s=e=>{const t=e.currentTarget,n=t.value;t.checked?(e=>{const t=document.getElementById("bankRecordMonthEdit--recordDateString-"+e);t.classList.add("is-readonly"),t.readOnly=!0,t.value=document.getElementById("bankRecordMonthEdit--recordDateString-0").value})(n):a(n)},l=()=>{const e=document.getElementById("bankRecordMonthEdit--recordDateString-0").value;for(let t=1;t<=n;t+=1)document.getElementById("bankRecordMonthEdit--syncRecordDate-"+t.toString()).checked&&(document.getElementById("bankRecordMonthEdit--recordDateString-"+t.toString()).value=e)},m=e=>{const t=e.currentTarget.value;"0"!==t&&document.getElementById("bankRecordMonthEdit--syncRecordDate-"+t).checked?cityssm.alertModal("Date Not Changed","This date is synced with the date on the first band record type.","OK","warning"):(document.getElementById("bankRecordMonthEdit--recordDateString-"+t).value=cityssm.dateToString(new Date),"0"===t&&l())};let u;const g=e=>{e.preventDefault(),cityssm.postJSON("/organizations/doUpdateBankRecordsByMonth",e.currentTarget,e=>{e.success&&(u(),c())})},b=cityssm.isNavBlockerEnabled(),k=parseInt(r.value,10),y=e.currentTarget.closest("tr"),h=parseInt(y.getAttribute("data-banking-month"),10),E=y.getElementsByTagName("td"),p=new Map;for(const e of E){const t=e.getAttribute("data-record-index");if(""!==t){const e=o.get(parseInt(t,10));p.set(e.bankRecordType,e)}}cityssm.openHtmlModal("organization-bankRecordMonthEdit",{onshow:()=>{cityssm.enableNavBlocker(),document.getElementById("bankRecordMonthEdit--organizationID").value=i,document.getElementById("bankRecordMonthEdit--accountNumber").value=t,document.getElementById("bankRecordMonthEdit--bankingYear").value=k.toString(),document.getElementById("bankRecordMonthEdit--bankingMonth").value=h.toString(),document.getElementById("bankRecordMonthEdit--accountNumber-span").innerText=t,document.getElementById("bankRecordMonthEdit--bankingYear-span").innerText=k.toString(),document.getElementById("bankRecordMonthEdit--bankingMonth-span").innerText=h.toString();const e=document.getElementById("container--bankRecordMonthEdit-recordTypes");for(const t of exports.config_bankRecordTypes){const o=(n+=1).toString();e.insertAdjacentHTML("beforeend","
"),e.insertAdjacentHTML("beforeend",''),e.insertAdjacentHTML("beforeend",''),e.insertAdjacentHTML("beforeend",'
'+cityssm.escapeHTML(t.bankRecordTypeName)+'
'+(0===n?"":'
')+'
'),e.insertAdjacentHTML("beforeend",'
');const r=p.get(t.bankRecordType);if(r&&(document.getElementById("bankRecordMonthEdit--recordIndex-"+o).value=r.recordIndex.toString(),r.recordIsNA&&(document.getElementById("bankRecordMonthEdit--recordIsNA-"+o).checked=!0),document.getElementById("bankRecordMonthEdit--recordDateString-"+o).value=r.recordDateString,document.getElementById("bankRecordMonthEdit--recordNote-"+o).value=r.recordNote),0!==n){const e=document.getElementById("bankRecordMonthEdit--syncRecordDate-"+o);e.addEventListener("change",s);const t=document.getElementById("bankRecordMonthEdit--recordDateString-0").value;(r&&r.recordDateString!==t||!r&&""!==t)&&(e.checked=!1,a(o))}document.getElementById("bankRecordMonthEdit--setToToday-"+o).addEventListener("click",m)}document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex").value=n.toString(),n>=0&&document.getElementById("bankRecordMonthEdit--recordDateString-0").addEventListener("change",l)},onshown:(e,t)=>{document.getElementById("form--bankRecordMonthEdit").addEventListener("submit",g),u=t},onremoved:()=>{b||cityssm.disableNavBlocker()}})},u=s.getElementsByClassName("is-bank-record-month-button");for(const e of u)e.addEventListener("click",m)}llm.initializeTabs(document.getElementById("tabs--organization"),{onshown(e){"organizationTabContent--bankRecords"!==e.id||a||(a=!0,l())}})})(); \ No newline at end of file diff --git a/public/javascripts/organization-viewEdit.ts b/public/javascripts/organization-viewEdit.ts index d4776d1d..ee98b3be 100644 --- a/public/javascripts/organization-viewEdit.ts +++ b/public/javascripts/organization-viewEdit.ts @@ -621,6 +621,89 @@ declare const llm: llmGlobal; return; } + // Sync functions + + let recordDateRowIndex = -1; + + const syncFn_enableDateField = (rowIndexString: string) => { + const recordDateEle = document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString) as HTMLInputElement; + recordDateEle.classList.remove("is-readonly"); + recordDateEle.readOnly = false; + }; + + const syncFn_disableDateField = (rowIndexString: string) => { + const recordDateEle = document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString) as HTMLInputElement; + recordDateEle.classList.add("is-readonly"); + recordDateEle.readOnly = true; + recordDateEle.value = (document.getElementById("bankRecordMonthEdit--recordDateString-0") as HTMLInputElement).value; + }; + + const syncFn_toggleDateField = (changeEvent: Event) => { + + const syncRecordDateCheckboxEle = changeEvent.currentTarget as HTMLInputElement; + + const rowIndexString = syncRecordDateCheckboxEle.value; + + if (syncRecordDateCheckboxEle.checked) { + syncFn_disableDateField(rowIndexString); + } else { + syncFn_enableDateField(rowIndexString); + } + }; + + const syncFn_copyToSyncedDates = () => { + + const recordDateString = (document.getElementById("bankRecordMonthEdit--recordDateString-0") as HTMLInputElement).value; + + for (let i = 1; i <= recordDateRowIndex; i += 1) { + + if ((document.getElementById("bankRecordMonthEdit--syncRecordDate-" + i.toString()) as HTMLInputElement).checked) { + (document.getElementById("bankRecordMonthEdit--recordDateString-" + i.toString()) as HTMLInputElement).value = recordDateString; + } + } + }; + + const dateFn_setToToday = (clickEvent: Event) => { + + const rowIndexString = (clickEvent.currentTarget as HTMLButtonElement).value; + + if (rowIndexString === "0" || + !(document.getElementById("bankRecordMonthEdit--syncRecordDate-" + rowIndexString) as HTMLInputElement).checked) { + + (document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString) as HTMLInputElement).value = cityssm.dateToString(new Date()); + + if (rowIndexString === "0") { + syncFn_copyToSyncedDates(); + } + } else { + cityssm.alertModal("Date Not Changed", + "This date is synced with the date on the first band record type.", + "OK", + "warning"); + } + }; + + // Submit function + + let closeBankRecordMonthEditModalFn: () => void; + + const submitFn = (formEvent: Event) => { + formEvent.preventDefault(); + + cityssm.postJSON("/organizations/doUpdateBankRecordsByMonth", + formEvent.currentTarget, + (responseJSON: { + success: boolean; + message?: string; + }) => { + + if (responseJSON.success) { + closeBankRecordMonthEditModalFn(); + getBankRecordsFn(); + } + }); + }; + // Track if navigation is already blocked const isNavBlockedByPage = cityssm.isNavBlockerEnabled(); @@ -651,8 +734,11 @@ declare const llm: llmGlobal; cityssm.openHtmlModal("organization-bankRecordMonthEdit", { onshow: () => { + cityssm.enableNavBlocker(); + // Set organization and month data + (document.getElementById("bankRecordMonthEdit--organizationID") as HTMLInputElement).value = organizationID; (document.getElementById("bankRecordMonthEdit--accountNumber") as HTMLInputElement).value = accountNumber; @@ -663,20 +749,26 @@ declare const llm: llmGlobal; (document.getElementById("bankRecordMonthEdit--bankingYear-span") as HTMLSpanElement).innerText = bankingYear.toString(); (document.getElementById("bankRecordMonthEdit--bankingMonth-span") as HTMLSpanElement).innerText = bankingMonth.toString(); - const recordTypeContainerEle = document.getElementById("container--bankRecordMonthEdit-recordTypes"); + // Create record type fields - let rowIndex = -1; + const recordTypeContainerEle = document.getElementById("container--bankRecordMonthEdit-recordTypes"); for (const config_bankRecordType of (exports.config_bankRecordTypes as configTypes.ConfigBankRecordType[])) { - rowIndex += 1; + recordDateRowIndex += 1; - const rowIndexString = rowIndex.toString(); + const rowIndexString = recordDateRowIndex.toString(); recordTypeContainerEle.insertAdjacentHTML( "beforeend", "
"); + recordTypeContainerEle.insertAdjacentHTML("beforeend", + ""); + + recordTypeContainerEle.insertAdjacentHTML("beforeend", + ""); + recordTypeContainerEle.insertAdjacentHTML( "beforeend", "
" + @@ -684,10 +776,10 @@ declare const llm: llmGlobal; "" + cityssm.escapeHTML(config_bankRecordType.bankRecordTypeName) + "" + "
") + ("
" + - (rowIndex === 0 + (recordDateRowIndex === 0 ? "" : "
" + - "" + + "" + "" + @@ -706,19 +798,19 @@ declare const llm: llmGlobal; "
" + ("
" + "
" + - ("
" + + ("
" + "" + "" + "
") + ("
" + - "" + "
") + @@ -736,9 +828,56 @@ declare const llm: llmGlobal; "
") + "
"); + // Populate fields + + const bankRecord = bankRecordTypeToRecord.get(config_bankRecordType.bankRecordType); + + if (bankRecord) { + + (document.getElementById("bankRecordMonthEdit--recordIndex-" + rowIndexString) as HTMLInputElement).value = bankRecord.recordIndex.toString(); + + if (bankRecord.recordIsNA) { + (document.getElementById("bankRecordMonthEdit--recordIsNA-" + rowIndexString) as HTMLInputElement).checked = true; + } + + (document.getElementById("bankRecordMonthEdit--recordDateString-" + rowIndexString) as HTMLInputElement).value = bankRecord.recordDateString; + (document.getElementById("bankRecordMonthEdit--recordNote-" + rowIndexString) as HTMLInputElement).value = bankRecord.recordNote; + } + + // Sync setup + + if (recordDateRowIndex !== 0) { + + const syncRecordDateCheckboxEle = document.getElementById("bankRecordMonthEdit--syncRecordDate-" + rowIndexString) as HTMLInputElement; + + syncRecordDateCheckboxEle.addEventListener("change", syncFn_toggleDateField); + + // Disable sync + + const mainRecordDateString = (document.getElementById("bankRecordMonthEdit--recordDateString-0") as HTMLInputElement).value; + + if ((bankRecord && bankRecord.recordDateString !== mainRecordDateString) || (!bankRecord && mainRecordDateString !== "")) { + syncRecordDateCheckboxEle.checked = false; + syncFn_enableDateField(rowIndexString); + } + } + + // Today button + + document.getElementById("bankRecordMonthEdit--setToToday-" + rowIndexString).addEventListener("click", dateFn_setToToday); + } + + (document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex") as HTMLInputElement).value = recordDateRowIndex.toString(); + + if (recordDateRowIndex >= 0) { + document.getElementById("bankRecordMonthEdit--recordDateString-0").addEventListener("change", syncFn_copyToSyncedDates); } - (document.getElementById("bankRecordMonthEdit--bankRecordTypeIndex") as HTMLInputElement).value = rowIndex.toString(); + }, + onshown: (_modalEle, closeModalFn) => { + + document.getElementById("form--bankRecordMonthEdit").addEventListener("submit", submitFn); + closeBankRecordMonthEditModalFn = closeModalFn; }, onremoved: () => { if (!isNavBlockedByPage) { diff --git a/routes/organizations.js b/routes/organizations.js index 66344ab3..299722bc 100644 --- a/routes/organizations.js +++ b/routes/organizations.js @@ -2,20 +2,24 @@ const express_1 = require("express"); const configFns = require("../helpers/configFns"); const permissionHandlers = require("../handlers/permissions"); -const handler_cleanup = require("../handlers/organizations-get/cleanup"); -const handler_view = require("../handlers/organizations-get/view"); -const handler_edit = require("../handlers/organizations-get/edit"); -const handler_doSearch = require("../handlers/organizations-post/doSearch"); -const handler_doGetAll = require("../handlers/organizations-all/doGetAll"); -const handler_doAddRepresentative = require("../handlers/organizations-post/doAddRepresentative"); -const handler_doUpdateRepresentative = require("../handlers/organizations-post/doUpdateRepresentative"); -const handler_doGetRemarks = require("../handlers/organizations-post/doGetRemarks"); -const handler_doAddRemark = require("../handlers/organizations-post/doAddRemark"); -const handler_reminders = require("../handlers/organizations-get/reminders"); -const handler_doGetReminders = require("../handlers/organizations-post/doGetReminders"); -const handler_doAddReminder = require("../handlers/organizations-post/doAddReminder"); -const handler_doDeleteReminder = require("../handlers/organizations-post/doDeleteReminder"); -const handler_doRollForward = require("../handlers/organizations-post/doRollForward"); +const cleanup_1 = require("../handlers/organizations-get/cleanup"); +const view_1 = require("../handlers/organizations-get/view"); +const edit_1 = require("../handlers/organizations-get/edit"); +const doSearch_1 = require("../handlers/organizations-post/doSearch"); +const doGetAll_1 = require("../handlers/organizations-all/doGetAll"); +const doAddRepresentative_1 = require("../handlers/organizations-post/doAddRepresentative"); +const doUpdateRepresentative_1 = require("../handlers/organizations-post/doUpdateRepresentative"); +const doGetRemarks_1 = require("../handlers/organizations-post/doGetRemarks"); +const doAddRemark_1 = require("../handlers/organizations-post/doAddRemark"); +const reminders_1 = require("../handlers/organizations-get/reminders"); +const doGetReminders_1 = require("../handlers/organizations-post/doGetReminders"); +const doAddReminder_1 = require("../handlers/organizations-post/doAddReminder"); +const doDeleteReminder_1 = require("../handlers/organizations-post/doDeleteReminder"); +const doAddBankRecord_1 = require("../handlers/organizations-post/doAddBankRecord"); +const doEditBankRecord_1 = require("../handlers/organizations-post/doEditBankRecord"); +const doUpdateBankRecordsByMonth_1 = require("../handlers/organizations-post/doUpdateBankRecordsByMonth"); +const doDeleteBankRecord_1 = require("../handlers/organizations-post/doDeleteBankRecord"); +const doRollForward_1 = require("../handlers/organizations-post/doRollForward"); const licencesDBOrganizations = require("../helpers/licencesDB-organizations"); const userFns_1 = require("../helpers/userFns"); const router = express_1.Router(); @@ -24,10 +28,10 @@ router.get("/", (_req, res) => { headTitle: "Organizations" }); }); -router.post("/doSearch", handler_doSearch.handler); -router.all("/doGetAll", handler_doGetAll.handler); -router.get("/reminders", handler_reminders.handler); -router.get("/cleanup", permissionHandlers.updateGetHandler, handler_cleanup.handler); +router.post("/doSearch", doSearch_1.handler); +router.all("/doGetAll", doGetAll_1.handler); +router.get("/reminders", reminders_1.handler); +router.get("/cleanup", permissionHandlers.updateGetHandler, cleanup_1.handler); router.post("/doGetInactive", (req, res) => { const inactiveYears = parseInt(req.body.inactiveYears, 10); res.json(licencesDBOrganizations.getInactiveOrganizations(inactiveYears)); @@ -43,13 +47,13 @@ router.get("/recovery", (req, res) => { organizations }); }); -router.post("/doGetRemarks", handler_doGetRemarks.handler); +router.post("/doGetRemarks", doGetRemarks_1.handler); router.post("/doGetRemark", (req, res) => { const organizationID = req.body.organizationID; const remarkIndex = req.body.remarkIndex; res.json(licencesDBOrganizations.getOrganizationRemark(organizationID, remarkIndex, req.session)); }); -router.post("/doAddRemark", permissionHandlers.createPostHandler, handler_doAddRemark.handler); +router.post("/doAddRemark", permissionHandlers.createPostHandler, doAddRemark_1.handler); router.post("/doEditRemark", (req, res) => { if (!userFns_1.userCanCreate(req)) { return userFns_1.forbiddenJSON(res); @@ -88,13 +92,13 @@ router.post("/doDeleteRemark", (req, res) => { }); } }); -router.post("/doGetReminders", handler_doGetReminders.handler); +router.post("/doGetReminders", doGetReminders_1.handler); router.post("/doGetReminder", (req, res) => { const organizationID = req.body.organizationID; const reminderIndex = req.body.reminderIndex; res.json(licencesDBOrganizations.getOrganizationReminder(organizationID, reminderIndex, req.session)); }); -router.post("/doAddReminder", permissionHandlers.createPostHandler, handler_doAddReminder.handler); +router.post("/doAddReminder", permissionHandlers.createPostHandler, doAddReminder_1.handler); router.post("/doEditReminder", (req, res) => { if (!userFns_1.userCanCreate(req)) { return userFns_1.forbiddenJSON(res); @@ -133,7 +137,7 @@ router.post("/doDismissReminder", (req, res) => { }); } }); -router.post("/doDeleteReminder", permissionHandlers.createPostHandler, handler_doDeleteReminder.handler); +router.post("/doDeleteReminder", permissionHandlers.createPostHandler, doDeleteReminder_1.handler); router.post("/doGetBankRecords", (req, res) => { const organizationID = req.body.organizationID; const bankingYear = req.body.bankingYear; @@ -144,60 +148,10 @@ router.post("/doGetBankRecordStats", (req, res) => { const organizationID = req.body.organizationID; res.json(licencesDBOrganizations.getOrganizationBankRecordStats(organizationID)); }); -router.post("/doAddBankRecord", (req, res) => { - if (!userFns_1.userCanCreate(req)) { - return userFns_1.forbiddenJSON(res); - } - const success = licencesDBOrganizations.addOrganizationBankRecord(req.body, req.session); - if (success) { - return res.json({ - success: true, - message: "Record added successfully." - }); - } - else { - return res.json({ - success: false, - message: "Please make sure that the record you are trying to create does not already exist." - }); - } -}); -router.post("/doEditBankRecord", (req, res) => { - if (!userFns_1.userCanCreate(req)) { - return userFns_1.forbiddenJSON(res); - } - const success = licencesDBOrganizations.updateOrganizationBankRecord(req.body, req.session); - if (success) { - return res.json({ - success: true, - message: "Record updated successfully." - }); - } - else { - return res.json({ - success: false, - message: "Please try again." - }); - } -}); -router.post("/doDeleteBankRecord", (req, res) => { - if (!userFns_1.userCanCreate(req)) { - return userFns_1.forbiddenJSON(res); - } - const success = licencesDBOrganizations.deleteOrganizationBankRecord(req.body.organizationID, req.body.recordIndex, req.session); - if (success) { - res.json({ - success: true, - message: "Organization updated successfully." - }); - } - else { - res.json({ - success: false, - message: "Record Not Saved" - }); - } -}); +router.post("/doAddBankRecord", permissionHandlers.createPostHandler, doAddBankRecord_1.handler); +router.post("/doEditBankRecord", permissionHandlers.createPostHandler, doEditBankRecord_1.handler); +router.post("/doUpdateBankRecordsByMonth", permissionHandlers.createPostHandler, doUpdateBankRecordsByMonth_1.handler); +router.post("/doDeleteBankRecord", permissionHandlers.createPostHandler, doDeleteBankRecord_1.handler); router.get("/new", (req, res) => { if (!userFns_1.userCanCreate(req)) { res.redirect("/organizations/?error=accessDenied"); @@ -276,11 +230,11 @@ router.post("/doRestore", (req, res) => { }); } }); -router.post("/doRollForward", permissionHandlers.createPostHandler, handler_doRollForward.handler); -router.get("/:organizationID", handler_view.handler); -router.get("/:organizationID/edit", permissionHandlers.createGetHandler, handler_edit.handler); -router.post("/:organizationID/doAddOrganizationRepresentative", permissionHandlers.createPostHandler, handler_doAddRepresentative.handler); -router.post("/:organizationID/doEditOrganizationRepresentative", permissionHandlers.createPostHandler, handler_doUpdateRepresentative.handler); +router.post("/doRollForward", permissionHandlers.createPostHandler, doRollForward_1.handler); +router.get("/:organizationID", view_1.handler); +router.get("/:organizationID/edit", permissionHandlers.createGetHandler, edit_1.handler); +router.post("/:organizationID/doAddOrganizationRepresentative", permissionHandlers.createPostHandler, doAddRepresentative_1.handler); +router.post("/:organizationID/doEditOrganizationRepresentative", permissionHandlers.createPostHandler, doUpdateRepresentative_1.handler); router.post("/:organizationID/doDeleteOrganizationRepresentative", (req, res) => { if (!userFns_1.userCanCreate(req)) { return userFns_1.forbiddenJSON(res); diff --git a/routes/organizations.ts b/routes/organizations.ts index a683a046..f5b00540 100644 --- a/routes/organizations.ts +++ b/routes/organizations.ts @@ -4,25 +4,30 @@ import * as configFns from "../helpers/configFns"; import * as permissionHandlers from "../handlers/permissions"; -import * as handler_cleanup from "../handlers/organizations-get/cleanup"; -import * as handler_view from "../handlers/organizations-get/view"; -import * as handler_edit from "../handlers/organizations-get/edit"; +import { handler as handler_cleanup } from "../handlers/organizations-get/cleanup"; +import { handler as handler_view } from "../handlers/organizations-get/view"; +import { handler as handler_edit } from "../handlers/organizations-get/edit"; -import * as handler_doSearch from "../handlers/organizations-post/doSearch"; -import * as handler_doGetAll from "../handlers/organizations-all/doGetAll"; +import { handler as handler_doSearch } from "../handlers/organizations-post/doSearch"; +import { handler as handler_doGetAll } from "../handlers/organizations-all/doGetAll"; -import * as handler_doAddRepresentative from "../handlers/organizations-post/doAddRepresentative"; -import * as handler_doUpdateRepresentative from "../handlers/organizations-post/doUpdateRepresentative"; +import { handler as handler_doAddRepresentative } from "../handlers/organizations-post/doAddRepresentative"; +import { handler as handler_doUpdateRepresentative } from "../handlers/organizations-post/doUpdateRepresentative"; -import * as handler_doGetRemarks from "../handlers/organizations-post/doGetRemarks"; -import * as handler_doAddRemark from "../handlers/organizations-post/doAddRemark"; +import { handler as handler_doGetRemarks } from "../handlers/organizations-post/doGetRemarks"; +import { handler as handler_doAddRemark } from "../handlers/organizations-post/doAddRemark"; -import * as handler_reminders from "../handlers/organizations-get/reminders"; -import * as handler_doGetReminders from "../handlers/organizations-post/doGetReminders"; -import * as handler_doAddReminder from "../handlers/organizations-post/doAddReminder"; -import * as handler_doDeleteReminder from "../handlers/organizations-post/doDeleteReminder"; +import { handler as handler_reminders } from "../handlers/organizations-get/reminders"; +import { handler as handler_doGetReminders } from "../handlers/organizations-post/doGetReminders"; +import { handler as handler_doAddReminder } from "../handlers/organizations-post/doAddReminder"; +import { handler as handler_doDeleteReminder } from "../handlers/organizations-post/doDeleteReminder"; -import * as handler_doRollForward from "../handlers/organizations-post/doRollForward"; +import { handler as handler_doAddBankRecord } from "../handlers/organizations-post/doAddBankRecord"; +import { handler as handler_doEditBankRecord } from "../handlers/organizations-post/doEditBankRecord"; +import { handler as handler_doUpdateBankRecordsByMonth } from "../handlers/organizations-post/doUpdateBankRecordsByMonth"; +import { handler as handler_doDeleteBankRecord } from "../handlers/organizations-post/doDeleteBankRecord"; + +import { handler as handler_doRollForward } from "../handlers/organizations-post/doRollForward"; import * as licencesDBOrganizations from "../helpers/licencesDB-organizations"; @@ -47,11 +52,11 @@ router.get("/", (_req, res) => { router.post("/doSearch", - handler_doSearch.handler); + handler_doSearch); router.all("/doGetAll", - handler_doGetAll.handler); + handler_doGetAll); /* @@ -60,7 +65,7 @@ router.all("/doGetAll", router.get("/reminders", - handler_reminders.handler); + handler_reminders); /* @@ -70,7 +75,7 @@ router.get("/reminders", router.get("/cleanup", permissionHandlers.updateGetHandler, - handler_cleanup.handler); + handler_cleanup); router.post("/doGetInactive", (req, res) => { @@ -111,7 +116,7 @@ router.get("/recovery", (req, res) => { */ -router.post("/doGetRemarks", handler_doGetRemarks.handler); +router.post("/doGetRemarks", handler_doGetRemarks); router.post("/doGetRemark", (req, res) => { @@ -124,7 +129,9 @@ router.post("/doGetRemark", (req, res) => { }); -router.post("/doAddRemark", permissionHandlers.createPostHandler, handler_doAddRemark.handler); +router.post("/doAddRemark", + permissionHandlers.createPostHandler, + handler_doAddRemark); router.post("/doEditRemark", (req, res) => { @@ -187,7 +194,7 @@ router.post("/doDeleteRemark", (req, res) => { */ -router.post("/doGetReminders", handler_doGetReminders.handler); +router.post("/doGetReminders", handler_doGetReminders); router.post("/doGetReminder", (req, res) => { @@ -199,7 +206,9 @@ router.post("/doGetReminder", (req, res) => { }); -router.post("/doAddReminder", permissionHandlers.createPostHandler, handler_doAddReminder.handler); +router.post("/doAddReminder", + permissionHandlers.createPostHandler, + handler_doAddReminder); router.post("/doEditReminder", (req, res) => { @@ -260,7 +269,9 @@ router.post("/doDismissReminder", (req, res) => { }); -router.post("/doDeleteReminder", permissionHandlers.createPostHandler, handler_doDeleteReminder.handler); +router.post("/doDeleteReminder", + permissionHandlers.createPostHandler, + handler_doDeleteReminder); /* @@ -287,81 +298,24 @@ router.post("/doGetBankRecordStats", (req, res) => { }); -router.post("/doAddBankRecord", (req, res) => { - - if (!userCanCreate(req)) { - return forbiddenJSON(res); - } - - const success = licencesDBOrganizations.addOrganizationBankRecord(req.body, req.session); - - if (success) { - - return res.json({ - success: true, - message: "Record added successfully." - }); - - } else { - - return res.json({ - success: false, - message: "Please make sure that the record you are trying to create does not already exist." - }); - - } - -}); - - -router.post("/doEditBankRecord", (req, res) => { - - if (!userCanCreate(req)) { - return forbiddenJSON(res); - } - - const success = licencesDBOrganizations.updateOrganizationBankRecord(req.body, req.session); - - if (success) { - - return res.json({ - success: true, - message: "Record updated successfully." - }); - - } else { - - return res.json({ - success: false, - message: "Please try again." - }); - - } +router.post("/doAddBankRecord", + permissionHandlers.createPostHandler, + handler_doAddBankRecord); -}); +router.post("/doEditBankRecord", + permissionHandlers.createPostHandler, + handler_doEditBankRecord); -router.post("/doDeleteBankRecord", (req, res) => { - if (!userCanCreate(req)) { - return forbiddenJSON(res); - } +router.post("/doUpdateBankRecordsByMonth", + permissionHandlers.createPostHandler, + handler_doUpdateBankRecordsByMonth); - const success = - licencesDBOrganizations.deleteOrganizationBankRecord(req.body.organizationID, req.body.recordIndex, req.session); - if (success) { - res.json({ - success: true, - message: "Organization updated successfully." - }); - } else { - res.json({ - success: false, - message: "Record Not Saved" - }); - } -}); +router.post("/doDeleteBankRecord", + permissionHandlers.createPostHandler, + handler_doDeleteBankRecord); /* @@ -483,7 +437,9 @@ router.post("/doRestore", (req, res) => { }); -router.post("/doRollForward", permissionHandlers.createPostHandler, handler_doRollForward.handler); +router.post("/doRollForward", + permissionHandlers.createPostHandler, + handler_doRollForward); /* @@ -492,7 +448,7 @@ router.post("/doRollForward", permissionHandlers.createPostHandler, handler_doRo router.get("/:organizationID", - handler_view.handler); + handler_view); /* @@ -502,16 +458,16 @@ router.get("/:organizationID", router.get("/:organizationID/edit", permissionHandlers.createGetHandler, - handler_edit.handler); + handler_edit); router.post("/:organizationID/doAddOrganizationRepresentative", permissionHandlers.createPostHandler, - handler_doAddRepresentative.handler); + handler_doAddRepresentative); router.post("/:organizationID/doEditOrganizationRepresentative", permissionHandlers.createPostHandler, - handler_doUpdateRepresentative.handler); + handler_doUpdateRepresentative); router.post("/:organizationID/doDeleteOrganizationRepresentative", (req, res) => { diff --git a/types/recordTypes.d.ts b/types/recordTypes.d.ts index 07d4ab09..7cfef55b 100644 --- a/types/recordTypes.d.ts +++ b/types/recordTypes.d.ts @@ -1,17 +1,17 @@ export interface Record { recordType: "location" | "organization" | "remark" | "reminder" | "bankRecord" | "licence" | "event"; success?: true; - recordCreate_userName: string; - recordCreate_timeMillis: number; + recordCreate_userName?: string; + recordCreate_timeMillis?: number; recordCreate_dateString?: string; - recordUpdate_userName: string; - recordUpdate_timeMillis: number; + recordUpdate_userName?: string; + recordUpdate_timeMillis?: number; recordUpdate_dateString?: string; recordUpdate_timeString?: string; recordDelete_userName?: string; recordDelete_timeMillis?: number; recordDelete_dateString?: string; - canUpdate: boolean; + canUpdate?: boolean; } export interface Location extends Record { recordType: "location" | "licence" | "event"; @@ -105,7 +105,7 @@ export interface OrganizationBankRecord extends Record { bankingMonth: number; bankRecordType: "statement" | "cheques" | "receipts"; accountNumber: string; - recordDate: number; + recordDate?: number; recordDateString: string; recordNote: string; recordIsNA: boolean; @@ -219,3 +219,8 @@ export interface UserProperties { canUpdate: boolean; isAdmin: boolean; } +declare module "express-session" { + interface Session { + user: User; + } +} diff --git a/types/recordTypes.js b/types/recordTypes.js index c8ad2e54..04363ad2 100644 --- a/types/recordTypes.js +++ b/types/recordTypes.js @@ -1,2 +1,3 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +; diff --git a/types/recordTypes.ts b/types/recordTypes.ts index 9af344c6..5b7f55c3 100644 --- a/types/recordTypes.ts +++ b/types/recordTypes.ts @@ -8,12 +8,12 @@ export interface Record { success?: true; - recordCreate_userName: string; - recordCreate_timeMillis: number; + recordCreate_userName?: string; + recordCreate_timeMillis?: number; recordCreate_dateString?: string; - recordUpdate_userName: string; - recordUpdate_timeMillis: number; + recordUpdate_userName?: string; + recordUpdate_timeMillis?: number; recordUpdate_dateString?: string; recordUpdate_timeString?: string; @@ -21,7 +21,7 @@ export interface Record { recordDelete_timeMillis?: number; recordDelete_dateString?: string; - canUpdate: boolean; + canUpdate?: boolean; } export interface Location extends Record { @@ -145,7 +145,7 @@ export interface OrganizationBankRecord extends Record { bankRecordType: "statement" | "cheques" | "receipts"; accountNumber: string; - recordDate: number; + recordDate?: number; recordDateString: string; recordNote: string; @@ -284,3 +284,10 @@ export interface UserProperties { canUpdate: boolean; isAdmin: boolean; } + + +declare module "express-session" { + interface Session { + user: User; + } +};