summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.js7
-rw-r--r--package-lock.json26
-rw-r--r--package.json4
-rwxr-xr-xroutes.js18
4 files changed, 25 insertions, 30 deletions
diff --git a/activitypub.js b/activitypub.js
index 765bee1..8ec2ee5 100644
--- a/activitypub.js
+++ b/activitypub.js
@@ -5,7 +5,10 @@ const isFederated = require('./config/domain.js').isFederated;
const request = require('request');
const addToLog = require('./helpers.js').addToLog;
const crypto = require('crypto');
-const shortid = require('shortid');
+// This alphabet (used to generate all event, group, etc. IDs) is missing '-'
+// because ActivityPub doesn't like it in IDs
+const nanoid = require('nanoid/generate');
+const alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
var moment = require('moment-timezone');
const mongoose = require('mongoose');
const Event = mongoose.model('Event');
@@ -802,7 +805,7 @@ function _handleCreateNoteComment(req, res) {
if (ourEvents.length === 1) {
let eventID = ourEvents[0];
// add comment
- let commentID = shortid.generate();
+ let commentID = nanoid(alphabet, 21);
// get the actor for the commenter
request({
url: req.body.actor,
diff --git a/package-lock.json b/package-lock.json
index f83cdeb..6fda918 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2623,7 +2623,7 @@
},
"get-stream": {
"version": "3.0.0",
- "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
"dev": true
},
@@ -2701,7 +2701,7 @@
},
"got": {
"version": "6.7.1",
- "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz",
+ "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
"integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
"dev": true,
"requires": {
@@ -3214,7 +3214,7 @@
},
"is-obj": {
"version": "1.0.1",
- "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
"dev": true
},
@@ -3840,9 +3840,9 @@
"dev": true
},
"nanoid": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.1.9.tgz",
- "integrity": "sha512-J2X7aUpdmTlkAuSe9WaQ5DsTZZPW1r/zmEWKsGhbADO6Gm9FMd2ZzJ8NhsmP4OtA9oFhXfxNqPlreHEDOGB4sg=="
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.9.tgz",
+ "integrity": "sha512-fFiXlFo4Wkuei3i6w9SQI6yuzGRTGi8Z2zZKZpUxv/bQlBi4jtbVPBSNFZHQA9PNjofWqtIa8p+pnsc0kgZrhQ=="
},
"nanomatch": {
"version": "1.2.13",
@@ -4423,7 +4423,7 @@
},
"readable-stream": {
"version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
"core-util-is": "~1.0.0",
@@ -4642,7 +4642,7 @@
},
"safe-regex": {
"version": "1.1.0",
- "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"dev": true,
"requires": {
@@ -4776,14 +4776,6 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "shortid": {
- "version": "2.2.15",
- "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.15.tgz",
- "integrity": "sha512-5EaCy2mx2Jgc/Fdn9uuDuNIIfWBpzY4XIlhoqtXF6qsf+/+SGZ+FxDdX/ZsMZiWupIWNqAEmiNY4RC+LSmCeOw==",
- "requires": {
- "nanoid": "^2.1.0"
- }
- },
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
@@ -5058,7 +5050,7 @@
},
"strip-eof": {
"version": "1.0.0",
- "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"dev": true
},
diff --git a/package.json b/package.json
index 651eac0..b7fab6c 100644
--- a/package.json
+++ b/package.json
@@ -34,11 +34,11 @@
"moment-timezone": "^0.5.26",
"mongoose": "^5.7.5",
"multer": "^1.4.1",
+ "nanoid": "^3.1.9",
"node-schedule": "^1.3.1",
"randomstring": "^1.1.5",
"request": "^2.88.0",
- "sanitize-html": "^1.20.1",
- "shortid": "^2.2.15"
+ "sanitize-html": "^1.20.1"
},
"devDependencies": {
"eslint": "^6.1.0",
diff --git a/routes.js b/routes.js
index d6efaaa..abec8c1 100755
--- a/routes.js
+++ b/routes.js
@@ -4,7 +4,10 @@ const express = require('express');
const mongoose = require('mongoose');
-const shortid = require('shortid');
+// This alphabet (used to generate all event, group, etc. IDs) is missing '-'
+// because ActivityPub doesn't like it in IDs
+const nanoid = require('nanoid/generate');
+const alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
const randomstring = require("randomstring");
@@ -625,10 +628,7 @@ router.get('/exportevent/:eventID', (req, res) => {
router.post('/newevent', async (req, res) => {
- let eventID = shortid.generate();
- // this is a hack, activitypub does not like "-" in ids so we are essentially going
- // to have a 63-character alphabet instead of a 64-character one
- eventID = eventID.replace(/-/g,'_');
+ let eventID = nanoid(alphabet, 21);
let editToken = randomstring.generate();
let eventImageFilename = "";
let isPartOfEventGroup = false;
@@ -717,7 +717,7 @@ router.post('/newevent', async (req, res) => {
});
router.post('/importevent', (req, res) => {
- let eventID = shortid.generate();
+ let eventID = nanoid(alphabet, 21);
let editToken = randomstring.generate();
if (req.files && Object.keys(req.files).length !== 0) {
let iCalObject = ical.parseICS(req.files.icsImportControl.data.toString('utf8'));
@@ -788,7 +788,7 @@ router.post('/importevent', (req, res) => {
});
router.post('/neweventgroup', (req, res) => {
- let eventGroupID = shortid.generate();
+ let eventGroupID = nanoid(alphabet, 21);
let editToken = randomstring.generate();
let eventGroupImageFilename = "";
if (req.files && Object.keys(req.files).length !== 0) {
@@ -1395,7 +1395,7 @@ router.post('/removeattendee/:eventID/:attendeeID', (req, res) => {
});
router.post('/post/comment/:eventID', (req, res) => {
- let commentID = shortid.generate();
+ let commentID = nanoid(alphabet, 21);
const newComment = {
id: commentID,
author: req.body.commentAuthor,
@@ -1459,7 +1459,7 @@ router.post('/post/comment/:eventID', (req, res) => {
});
router.post('/post/reply/:eventID/:commentID', (req, res) => {
- let replyID = shortid.generate();
+ let replyID = nanoid(alphabet, 21);
let commentID = req.params.commentID;
const newReply = {
id: replyID,