From 076038d40365979fcbf6fa0b6a77a97f5f3a5916 Mon Sep 17 00:00:00 2001 From: YUUU23 Date: Wed, 14 Aug 2024 17:36:58 -0500 Subject: [PATCH] add: add back commander and util functions --- cli.mjs | 16 ++++++++++++++++ package-lock.json | 39 ++++++++++++++++----------------------- package.json | 1 - 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/cli.mjs b/cli.mjs index 0b31f15a..08a27a43 100644 --- a/cli.mjs +++ b/cli.mjs @@ -3,6 +3,7 @@ import fsExtra from "fs-extra"; import { cert, initializeApp } from "firebase-admin/app"; // eslint-disable-line import/no-unresolved import { getFirestore } from "firebase-admin/firestore"; // eslint-disable-line import/no-unresolved +import { Command } from "commander"; /** -------------------- GLOBALS -------------------- */ @@ -422,6 +423,21 @@ async function confirmOverwritePrompt(file, overwriteAll) { return answer; } +/** -------------------- FIRESTORE VALIDATIONS -------------------- */ +/** helper to check if the given study (input) is in firestore */ +async function validateStudyFirebase(input) { + // subcollection is programmatically generated, if it doesn't exist then input must not be a valid studyID + const studyIDCollections = await getStudyRef(input).listCollections(); + return studyIDCollections.find((c) => c.id === PARTICIPANTS_COL); +} + +/** helper to check if the given participant (input) is in firestore under study */ +async function validateParticipantFirebase(input) { + // subcollection is programmatically generated, if it doesn't exist then input must not be a valid participantID + const studyIDCollections = await getParticipantRef(STUDY_ID, input).listCollections(); + return studyIDCollections.find((c) => c.id === DATA_COL); +} + /** -------------------- FIRESTORE HELPERS -------------------- */ const RESPONSES_COL = "participant_responses"; diff --git a/package-lock.json b/package-lock.json index 47f00e60..1981eae6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,6 @@ "@jspsych/plugin-instructions": "^1.1.3", "@jspsych/plugin-preload": "^1.1.2", "@jspsych/plugin-survey": "^1.0.1", - "commander": "^12.1.0", "electron-log": "^5.0.0", "electron-squirrel-startup": "^1.0.0", "firebase": "^10.11.0", @@ -656,15 +655,6 @@ "node": ">= 16.4.0" } }, - "node_modules/@electron-forge/cli/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/@electron-forge/cli/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -6316,11 +6306,13 @@ } }, "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 6" } }, "node_modules/commitizen": { @@ -9646,15 +9638,6 @@ "node": ">= 10" } }, - "node_modules/firebase-tools/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/firebase-tools/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -12556,6 +12539,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/lint-staged/node_modules/emoji-regex": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", diff --git a/package.json b/package.json index 7f79f107..83ea4663 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "@jspsych/plugin-instructions": "^1.1.3", "@jspsych/plugin-preload": "^1.1.2", "@jspsych/plugin-survey": "^1.0.1", - "commander": "^12.1.0", "electron-log": "^5.0.0", "electron-squirrel-startup": "^1.0.0", "firebase": "^10.11.0",