From 3c58f3f8da49c614a057070fd432dd05f82c1fa9 Mon Sep 17 00:00:00 2001 From: Wynne Crisman Date: Tue, 21 Jun 2022 18:36:45 -0700 Subject: [PATCH] Added a search for Chromebook usage after a specific date. Removed references to the schema code which was not working. Ran into a deployment issue that requires I manually run `sudo npm run install` from the `bundle/programs/server` folder after deploying. --- .meteor/packages | 4 +- .meteor/versions | 7 - imports/api/asset-assignments.js | 2 +- imports/api/asset-types.js | 2 +- imports/api/assets.js | 2 +- imports/api/data-collection.js | 11 +- imports/ui/Chromebooks.svelte | 45 +- imports/ui/DateInput.svelte | 16 + package-lock.json | 731 +++++++++++++++++++------------ package.json | 2 +- server/CheckEnvironment.js | 32 ++ server/main.js | 2 +- 12 files changed, 555 insertions(+), 301 deletions(-) create mode 100644 imports/ui/DateInput.svelte create mode 100644 server/CheckEnvironment.js diff --git a/.meteor/packages b/.meteor/packages index ec09d16..e1570ef 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -18,8 +18,8 @@ ecmascript@0.16.2 # Enable ECMAScript2015+ syntax in app code typescript@4.5.4 # Enable TypeScript syntax in .ts and .tsx modules shell-server@0.5.0 # Server-side component of the `meteor shell` command -aldeed:collection2 # Attaches a schema to a collection -aldeed:schema-index # Allows the schema to specify fields to be indexed +#aldeed:collection2 # Attaches a schema to a collection +#aldeed:schema-index # Allows the schema to specify fields to be indexed svelte:compiler #static-html@1.3.2 diff --git a/.meteor/versions b/.meteor/versions index 1346557..4c7787c 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -5,11 +5,6 @@ accounts-password@2.3.1 accounts-ui@1.4.2 accounts-ui-unstyled@1.7.0 alanning:roles@3.4.0 -aldeed:collection2@2.10.0 -aldeed:collection2-core@1.2.0 -aldeed:schema-deny@1.1.0 -aldeed:schema-index@1.1.1 -aldeed:simple-schema@1.5.4 allow-deny@1.1.1 autoupdate@1.8.0 babel-compiler@7.9.0 @@ -52,7 +47,6 @@ launch-screen@1.3.0 less@4.0.0 localstorage@1.2.0 logging@1.3.1 -mdg:validation-error@0.2.0 meteor@1.10.0 meteor-base@1.5.1 meteortesting:browser-tests@1.3.5 @@ -78,7 +72,6 @@ oauth2@1.3.1 observe-sequence@1.0.20 ordered-dict@1.1.0 promise@0.12.0 -raix:eventemitter@0.1.3 random@1.2.0 rate-limit@1.0.9 rdb:svelte-meteor-data@1.0.0 diff --git a/imports/api/asset-assignments.js b/imports/api/asset-assignments.js index c4225cd..15e20a3 100644 --- a/imports/api/asset-assignments.js +++ b/imports/api/asset-assignments.js @@ -2,7 +2,7 @@ import {Mongo} from "meteor/mongo"; import {Meteor} from "meteor/meteor"; import { check } from 'meteor/check'; import { Roles } from 'meteor/alanning:roles'; -import SimpleSchema from "simpl-schema"; +//import SimpleSchema from "simpl-schema"; import {AssetTypes} from "./asset-types"; export const AssetAssignments = new Mongo.Collection('assetAssignments'); diff --git a/imports/api/asset-types.js b/imports/api/asset-types.js index 5dc2bd5..0b4a3c3 100644 --- a/imports/api/asset-types.js +++ b/imports/api/asset-types.js @@ -2,7 +2,7 @@ import {Mongo} from "meteor/mongo"; import {Meteor} from "meteor/meteor"; import { check } from 'meteor/check'; import { Roles } from 'meteor/alanning:roles'; -import SimpleSchema from "simpl-schema"; +//import SimpleSchema from "simpl-schema"; // // An asset type is a specific type of equipment. Example: Lenovo 100e Chromebook. diff --git a/imports/api/assets.js b/imports/api/assets.js index 2fd06fa..758310e 100644 --- a/imports/api/assets.js +++ b/imports/api/assets.js @@ -2,7 +2,7 @@ import {Mongo} from "meteor/mongo"; import {Meteor} from "meteor/meteor"; import { check } from 'meteor/check'; import { Roles } from 'meteor/alanning:roles'; -import SimpleSchema from "simpl-schema"; +//import SimpleSchema from "simpl-schema"; import {AssetTypes} from "./asset-types"; export const Assets = new Mongo.Collection('assets'); diff --git a/imports/api/data-collection.js b/imports/api/data-collection.js index a153059..af30ed2 100644 --- a/imports/api/data-collection.js +++ b/imports/api/data-collection.js @@ -52,10 +52,15 @@ if (Meteor.isServer) { $regex: params.email, $options: "i" } : params.email; + else if (params.date) { //Assume that date is a number. Finds all Chromebook Data with the last check in time greater than or equal to the given date. + query.endTime = {'$gte': params.date} + } - // console.log("Collecting Chromebook Data: "); - // console.log(query); - let result = Meteor.Records.find(query).fetch(); + console.log("Collecting Chromebook Data: "); + console.log(query); + + //Sort by the last time the record was updated from most to least recent. + let result = Meteor.Records.find(query, {sort: {endTime: -1}}).fetch(); // console.log("Found: "); // console.log(result); diff --git a/imports/ui/Chromebooks.svelte b/imports/ui/Chromebooks.svelte index a5704b5..43003e3 100644 --- a/imports/ui/Chromebooks.svelte +++ b/imports/ui/Chromebooks.svelte @@ -54,15 +54,30 @@ import HelperText from '@smui/textfield/helper-text'; import Icon from '@smui/textfield/icon'; import { Icon as CommonIcon } from '@smui/common'; + import DateInput from "./DateInput.svelte"; + + let serialInput = null; + let emailInput = null; + let dateInput = null; - $: serialInput = null; - $: emailInput = null; function serialSearch() { router.goto("/chromebooks?serial=" + encodeURIComponent(serialInput) + "®ex=true"); } function emailSearch() { router.goto("/chromebooks?email=" + encodeURIComponent(emailInput) + "®ex=true"); } + function dateSearch() { + console.log("Date Search") + console.log(dateInput); + + if(dateInput) { + console.log(dateInput instanceof Date) + //console.log(!isNaN(date.valueOf())); + console.log(dateInput.getTime()) + } + if(dateInput && dateInput instanceof Date) + router.goto("/chromebooks?date=" + encodeURIComponent(dateInput.getTime())); + } // console.log("Loading Script"); // //Attempt to listen for URL changes (query portion specifically). @@ -85,37 +100,44 @@ // console.log("Params: "); // console.log(params); - $: deviceId = null; - $: serial = null; - $: email = null - $: regex = false; + let deviceId = null; + let serial = null; + let email = null; + let date = null; + let regex = false; $: router.subscribe(query => { deviceId = router.location.query.get("deviceId"); serial = router.location.query.get("serial"); email = router.location.query.get("email"); regex = router.location.query.get("regex"); + date = router.location.query.get("date"); if(deviceId) deviceId = decodeURIComponent(deviceId); if(serial) serial = decodeURIComponent(serial); if(email) email = decodeURIComponent(email); + if(date) date = decodeURIComponent(date); if(regex) regex = true; // console.log("Query:"); // console.log(deviceId); // console.log(serial); // console.log(email); + // console.log(date); }); - $: chromebookData = null; + let chromebookData = null; $: { - if(deviceId || serial || email) { + if(deviceId || serial || email || date) { let params = {}; if(deviceId) params.deviceId = deviceId; else if(serial) params.serial = serial; else if(email) params.email = email; + else if(date) params.date = parseInt(date, 10); - if(regex) params.regex = true; + if(!date && regex) params.regex = true; + console.log("Calling DataCollection.chromebookData") + console.log(params); Meteor.call("DataCollection.chromebookData", params, (error, result) => { if (error) { console.error(error); @@ -174,6 +196,11 @@ @avpanthers.org
+
  • + All records since:
    + + +
  • diff --git a/imports/ui/DateInput.svelte b/imports/ui/DateInput.svelte new file mode 100644 index 0000000..6000645 --- /dev/null +++ b/imports/ui/DateInput.svelte @@ -0,0 +1,16 @@ + + + diff --git a/package-lock.json b/package-lock.json index e44ff9b..56d665e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,9 +4,9 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -729,9 +729,9 @@ } }, "@rollup/pluginutils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz", - "integrity": "sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, "requires": { "estree-walker": "^2.0.1", @@ -1244,9 +1244,9 @@ "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==" }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz", + "integrity": "sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==" }, "@types/webidl-conversions": { "version": "6.1.1", @@ -1254,9 +1254,9 @@ "integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" }, "@types/whatwg-url": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz", - "integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", "requires": { "@types/node": "*", "@types/webidl-conversions": "*" @@ -1311,9 +1311,9 @@ "dev": true }, "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "base64-js": { "version": "1.5.1", @@ -1336,9 +1336,9 @@ } }, "bson": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz", - "integrity": "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.4.tgz", + "integrity": "sha512-TdQ3FzguAu5HKPPlr0kYQCyrYUYh8tFM+CMTpxjNzVzxeiJY00Rtuj3LXLHSgiGvmaWlZ8PE+4KyM2thqE38pQ==", "requires": { "buffer": "^5.6.0" } @@ -1353,23 +1353,24 @@ } }, "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", - "pathval": "^1.1.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", "type-detect": "^4.0.5" } }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", "dev": true }, "chokidar": { @@ -1399,11 +1400,6 @@ "wrap-ansi": "^7.0.0" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" - }, "color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -1424,12 +1420,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -1447,7 +1443,12 @@ "connect-route": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/connect-route/-/connect-route-0.1.5.tgz", - "integrity": "sha1-48IYMZ0uiKiprgsOD+Cacpw5dEo=" + "integrity": "sha512-6OZGYeoKS7zzhCAGP+Du7WYjP4geK3ii0sZlS+Oqx+ANFPcS5t/jDJr9BuhgN9qPz1ld8iahiPxNrgJyHeZ3cw==" + }, + "dayjs": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", + "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" }, "dedent-js": { "version": "1.0.1", @@ -1492,9 +1493,9 @@ "dev": true }, "fecha": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz", - "integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" }, "file-stream-rotator": { "version": "0.6.1", @@ -1534,7 +1535,7 @@ "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", "dev": true }, "glob-parent": { @@ -1547,9 +1548,9 @@ } }, "html5-qrcode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.2.0.tgz", - "integrity": "sha512-8fkxks2N0NEfHnhxmq7AQnDTvx3IWp0VD2h5yhHufDTflWhC1dXPy/Xvdl+tA9nOsPCRqirOOZpl/OQbTYhnSw==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.2.1.tgz", + "integrity": "sha512-itYnSlSxC3gNRe825mUkKaMzlmevLc4hpH2XLlhCdiEYIE3aMdQUr1XjQ9/zk7NuRMcYRerlbCaMKM+Z66KpSg==" }, "ieee754": { "version": "1.2.1", @@ -1568,9 +1569,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" }, "is-arrayish": { "version": "0.3.2", @@ -1628,32 +1629,10 @@ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, "logform": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz", - "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.1.tgz", + "integrity": "sha512-7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A==", "requires": { "@colors/colors": "1.5.0", "fecha": "^4.2.0", @@ -1662,6 +1641,15 @@ "triple-beam": "^1.3.0" } }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", @@ -1676,75 +1664,73 @@ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", "optional": true }, - "message-box": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/message-box/-/message-box-0.2.7.tgz", - "integrity": "sha512-C4ccA5nHb58kTS+pLrgF/JWtr7fAIkHxRDceH7tdy5fMA783nUfbYwZ7H2XLvSeYfcnWIYCig5dWW+icK9X/Ag==", - "requires": { - "lodash.template": "^4.5.0" - } - }, "meteor-node-stubs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz", - "integrity": "sha512-QJwyv23wyXD3uEMzk5Xr/y5ezoVlCbHvBbrgdkVadn84dmifLRbs0PtD6EeNw5NLIk+SQSfxld7IMdEsneGz5w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.3.tgz", + "integrity": "sha512-2kyYFh45428+q8EjydBhyHqPO30CG09yQ6xRNHMJSiFLqHaVoRJE1tWr7QrBKstjy8HkNH4UuKSp5S11HeZv/w==", "requires": { - "assert": "^1.4.1", + "assert": "^2.0.0", "browserify-zlib": "^0.2.0", - "buffer": "^5.2.1", - "console-browserify": "^1.1.0", + "buffer": "^5.7.1", + "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", "crypto-browserify": "^3.12.0", - "domain-browser": "^1.2.0", - "events": "^3.0.0", + "domain-browser": "^4.19.0", + "elliptic": "^6.5.4", + "events": "^3.3.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "^1.0.0", "process": "^0.11.10", - "punycode": "^2.1.1", + "punycode": "^1.4.1", "querystring-es3": "^0.2.1", - "readable-stream": "^3.3.0", - "stream-browserify": "^2.0.2", - "stream-http": "^3.0.0", - "string_decoder": "^1.2.0", - "timers-browserify": "^2.0.10", + "readable-stream": "^3.6.0", + "stream-browserify": "^3.0.0", + "stream-http": "^3.2.0", + "string_decoder": "^1.3.0", + "timers-browserify": "^2.0.12", "tty-browserify": "0.0.1", "url": "^0.11.0", - "util": "^0.11.1", - "vm-browserify": "^1.1.0" + "util": "^0.12.4", + "vm-browserify": "^1.1.2" }, "dependencies": { "asn1.js": { - "version": "4.10.1", + "version": "5.4.1", "bundled": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "bundled": true, - "requires": { - "util": "0.10.3" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { - "util": { - "version": "0.10.3", - "bundled": true, - "requires": { - "inherits": "2.0.1" - } + "bn.js": { + "version": "4.12.0", + "bundled": true } } }, + "assert": { + "version": "2.0.0", + "bundled": true, + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "available-typed-arrays": { + "version": "1.0.4", + "bundled": true + }, "base64-js": { - "version": "1.3.0", + "version": "1.5.1", "bundled": true }, "bn.js": { - "version": "4.11.8", + "version": "5.2.0", "bundled": true }, "brorand": { @@ -1783,24 +1769,26 @@ } }, "browserify-rsa": { - "version": "4.0.1", + "version": "4.1.0", "bundled": true, "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", + "version": "4.2.1", "bundled": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, "browserify-zlib": { @@ -1811,11 +1799,11 @@ } }, "buffer": { - "version": "5.2.1", + "version": "5.7.1", "bundled": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-xor": { @@ -1826,6 +1814,14 @@ "version": "3.0.0", "bundled": true }, + "call-bind": { + "version": "1.0.2", + "bundled": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "cipher-base": { "version": "1.0.4", "bundled": true, @@ -1835,26 +1831,25 @@ } }, "console-browserify": { - "version": "1.1.0", - "bundled": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "bundled": true }, "constants-browserify": { "version": "1.0.0", "bundled": true }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, "create-ecdh": { - "version": "4.0.3", + "version": "4.0.4", "bundled": true, "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "create-hash": { @@ -1897,12 +1892,15 @@ "randomfill": "^1.0.3" } }, - "date-now": { - "version": "0.1.4", - "bundled": true + "define-properties": { + "version": "1.1.3", + "bundled": true, + "requires": { + "object-keys": "^1.0.12" + } }, "des.js": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true, "requires": { "inherits": "^2.0.1", @@ -1916,27 +1914,74 @@ "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "domain-browser": { - "version": "1.2.0", + "version": "4.19.0", "bundled": true }, "elliptic": { - "version": "6.4.1", + "version": "6.5.4", "bundled": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, + "es-abstract": { + "version": "1.18.3", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "bundled": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "bundled": true + }, "events": { - "version": "3.0.0", + "version": "3.3.0", "bundled": true }, "evp_bytestokey": { @@ -1947,12 +1992,45 @@ "safe-buffer": "^5.1.1" } }, - "hash-base": { - "version": "3.0.4", + "foreach": { + "version": "2.0.5", + "bundled": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true + }, + "get-intrinsic": { + "version": "1.1.1", "bundled": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "bundled": true + }, + "has-symbols": { + "version": "1.0.2", + "bundled": true + }, + "hash-base": { + "version": "3.1.0", + "bundled": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, "hash.js": { @@ -1961,12 +2039,6 @@ "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "bundled": true - } } }, "hmac-drbg": { @@ -1983,17 +2055,89 @@ "bundled": true }, "ieee754": { - "version": "1.1.13", + "version": "1.2.1", "bundled": true }, "inherits": { + "version": "2.0.4", + "bundled": true + }, + "is-arguments": { + "version": "1.1.0", + "bundled": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.2", + "bundled": true + }, + "is-boolean-object": { + "version": "1.1.1", + "bundled": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.3", + "bundled": true + }, + "is-date-object": { + "version": "1.0.4", + "bundled": true + }, + "is-generator-function": { + "version": "1.0.9", + "bundled": true + }, + "is-nan": { + "version": "1.3.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { "version": "2.0.1", "bundled": true }, - "isarray": { - "version": "1.0.0", + "is-number-object": { + "version": "1.0.5", "bundled": true }, + "is-regex": { + "version": "1.1.3", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.6", + "bundled": true + }, + "is-symbol": { + "version": "1.0.4", + "bundled": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.5", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, "md5.js": { "version": "1.3.5", "bundled": true, @@ -2009,6 +2153,12 @@ "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "minimalistic-assert": { @@ -2019,32 +2169,57 @@ "version": "1.0.1", "bundled": true }, + "object-inspect": { + "version": "1.10.3", + "bundled": true + }, + "object-is": { + "version": "1.1.5", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "bundled": true + }, + "object.assign": { + "version": "4.1.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, "os-browserify": { "version": "0.3.0", "bundled": true }, "pako": { - "version": "1.0.10", + "version": "1.0.11", "bundled": true }, "parse-asn1": { - "version": "5.1.4", + "version": "5.1.6", "bundled": true, "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, "path-browserify": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true }, "pbkdf2": { - "version": "3.0.17", + "version": "3.1.2", "bundled": true, "requires": { "create-hash": "^1.1.2", @@ -2058,10 +2233,6 @@ "version": "0.11.10", "bundled": true }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true - }, "public-encrypt": { "version": "4.0.3", "bundled": true, @@ -2072,10 +2243,16 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } } }, "punycode": { - "version": "2.1.1", + "version": "1.4.1", "bundled": true }, "querystring": { @@ -2102,18 +2279,12 @@ } }, "readable-stream": { - "version": "3.3.0", + "version": "3.6.0", "bundled": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "bundled": true - } } }, "ripemd160": { @@ -2125,7 +2296,11 @@ } }, "safe-buffer": { - "version": "5.1.2", + "version": "5.2.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", "bundled": true }, "setimmediate": { @@ -2141,60 +2316,48 @@ } }, "stream-browserify": { - "version": "2.0.2", - "bundled": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "bundled": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-http": { "version": "3.0.0", "bundled": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.2.0", + "bundled": true, "requires": { "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6", - "xtend": "^4.0.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string_decoder": { - "version": "1.2.0", + "version": "1.3.0", "bundled": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "timers-browserify": { - "version": "2.0.10", + "version": "2.0.12", "bundled": true, "requires": { "setimmediate": "^1.0.4" @@ -2204,6 +2367,16 @@ "version": "0.0.1", "bundled": true }, + "unbox-primitive": { + "version": "1.0.1", + "bundled": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "url": { "version": "0.11.0", "bundled": true, @@ -2219,16 +2392,15 @@ } }, "util": { - "version": "0.11.1", + "version": "0.12.4", "bundled": true, "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "bundled": true - } + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" } }, "util-deprecate": { @@ -2236,31 +2408,50 @@ "bundled": true }, "vm-browserify": { - "version": "1.1.0", + "version": "1.1.2", "bundled": true }, + "which-boxed-primitive": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.4", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, "xtend": { - "version": "4.0.1", + "version": "4.0.2", "bundled": true } } }, "moment": { - "version": "2.29.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz", - "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==" - }, - "mongo-object": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/mongo-object/-/mongo-object-0.1.4.tgz", - "integrity": "sha512-QtYk0gupWEn2+iB+DDRt1L+WbcNYvJRaHdih/dcqthOa1DbnREUGSs2WGcW478GNYpElflo/yybZXu0sTiRXHg==" + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }, "mongodb": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz", - "integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.7.0.tgz", + "integrity": "sha512-HhVar6hsUeMAVlIbwQwWtV36iyjKd9qdhY+s4wcU8K6TOj4Q331iiMy+FoPuxEntDIijTYWivwFJkLv8q/ZgvA==", "requires": { - "bson": "^4.6.1", + "bson": "^4.6.3", "denque": "^2.0.1", "mongodb-connection-string-url": "^2.5.2", "saslprep": "^1.0.3", @@ -2302,19 +2493,19 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { "tr46": "~0.0.3", @@ -2395,7 +2586,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "rollup-plugin-css-only": { @@ -2427,9 +2618,9 @@ } }, "sass": { - "version": "1.52.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.2.tgz", - "integrity": "sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==", + "version": "1.52.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz", + "integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -2437,20 +2628,10 @@ "source-map-js": ">=0.6.2 <2.0.0" } }, - "simpl-schema": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/simpl-schema/-/simpl-schema-1.12.2.tgz", - "integrity": "sha512-FaisAjfJEt7Ie7K39wNqb/0F7FQ1q7yXmZcNa5JEBiPA9hIt4MpWMouL9mLqNB89alGpZAEiU7U9BelDxRqCVg==", - "requires": { - "clone": "^2.1.2", - "message-box": "^0.2.7", - "mongo-object": "^0.1.4" - } - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "requires": { "is-arrayish": "^0.3.1" } @@ -2489,7 +2670,7 @@ "sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "optional": true, "requires": { "memory-pager": "^1.0.2" @@ -2498,7 +2679,7 @@ "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" }, "string-width": { "version": "4.2.3", @@ -2529,9 +2710,9 @@ } }, "svelte": { - "version": "3.46.4", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz", - "integrity": "sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==" + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.48.0.tgz", + "integrity": "sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==" }, "svelte-material-ui": { "version": "6.0.0-beta.16", @@ -2634,14 +2815,14 @@ "dev": true }, "underscore": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz", + "integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==" }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "webidl-conversions": { "version": "7.0.0", @@ -2675,9 +2856,9 @@ } }, "winston-daily-rotate-file": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.6.1.tgz", - "integrity": "sha512-Ycch4LZmTycbhgiI2eQXBKI1pKcEQgAqmBjyq7/dC6Dk77nasdxvhLKraqTdCw7wNDSs8/M0jXaLATHquG7xYg==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz", + "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==", "requires": { "file-stream-rotator": "^0.6.1", "object-hash": "^2.0.1", @@ -2707,9 +2888,9 @@ } }, "ws": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", - "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==" + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==" }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index df29991..342906c 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,12 @@ "dependencies": { "@babel/runtime": "^7.16.7", "connect-route": "^0.1.5", + "dayjs": "^1.11.3", "html5-qrcode": "^2.2.0", "jquery": "^3.6.0", "meteor-node-stubs": "^1.0.0", "moment": "^2.29.2", "mongodb": "^4.4.1", - "simpl-schema": "^1.12.2", "svelte": "^3.46.4", "svelte-material-ui": "^6.0.0-beta.16", "tinro": "^0.6.12", diff --git a/server/CheckEnvironment.js b/server/CheckEnvironment.js new file mode 100644 index 0000000..dc0b4a3 --- /dev/null +++ b/server/CheckEnvironment.js @@ -0,0 +1,32 @@ +if(!process.env.MONGO_URL) { + console.log("Must provide the MONGO_URL environment variable point to the district central's main database. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.") + process.exit(0); +} + +if(!process.env.MONGO_URL2) { + console.log("Must provide the MONGO_URL2 environment variable pointing to the chromebook data collection dataset. Should be of the format: `mongodb://localhost:27017/DatabaseName` or `mongodb://user_name:password@host.domain.com,host2.domain.com,host3.domain.com/DatabaseName?replicaSet=set_name`.") + process.exit(0); +} + +try { + let settings = Assets.getText('settings.json'); +} +catch(e) { + console.log("Must have a /private/settings.json file with the following format:"); + console.log(` +{ + "google": { + "clientId": "xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com", + "secret": "xxxxxxxxxxxxxxxxxxx", + "loginStyle": "redirect", + "scope": [ + "email", + "https://www.googleapis.com/auth/plus.login", + "https://www.googleapis.com/auth/contacts.readonly" + ] + } +} + + `); + process.exit(0); +} \ No newline at end of file diff --git a/server/main.js b/server/main.js index f9d637f..6d7214e 100644 --- a/server/main.js +++ b/server/main.js @@ -1,4 +1,4 @@ - +import './CheckEnvironment.js'; import './DataCollection.js'; import '../imports/api/'; import './google-oauth.js';