@armi-wave/common 1.23.12 → 1.23.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,9 @@
1
1
  import { NextFunction, Request, Response } from 'express';
2
+ import mongoose from 'mongoose';
2
3
  interface UserPayload {
3
- id: string;
4
- email: string;
4
+ id: mongoose.Types.ObjectId;
5
5
  username: string;
6
+ profilePicUrl: string;
6
7
  }
7
8
  declare global {
8
9
  namespace Express {
@@ -1,30 +1,19 @@
1
- import mongoose from 'mongoose';
2
- interface CommentAttributes {
3
- postId: string;
4
- userId: string;
1
+ import mongoose, { Document } from 'mongoose';
2
+ interface Comment extends Document {
3
+ postId: mongoose.Types.ObjectId;
4
+ userId: mongoose.Types.ObjectId;
5
5
  username: string;
6
6
  profilePicUrl: string;
7
7
  text: string;
8
8
  likes?: number;
9
9
  upVotes?: number;
10
10
  downVotes?: number;
11
- reportNr?: number;
11
+ reportsNr?: number;
12
12
  replyNr?: number;
13
+ createdAt: Date;
13
14
  }
14
- interface CommentModel extends mongoose.Model<CommentDocument> {
15
- build(attrs: CommentAttributes): CommentDocument;
16
- }
17
- interface CommentDocument extends mongoose.Document {
18
- postId: string;
19
- userId: string;
20
- username: string;
21
- profilePicUrl: string;
22
- text: string;
23
- likes: number;
24
- upVotes: number;
25
- downVotes: number;
26
- reportNr: number;
27
- replyNr: number;
15
+ interface CommentModel extends mongoose.Model<Comment> {
16
+ build(attrs: Comment): Comment;
28
17
  }
29
18
  declare const Comment: CommentModel;
30
19
  export default Comment;
@@ -1,32 +1,73 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
5
35
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoose_1 = __importDefault(require("mongoose"));
7
- const commentSchema = new mongoose_1.default.Schema({
8
- postId: { type: String, required: true },
9
- userId: { type: String, required: true },
36
+ const mongoose_1 = __importStar(require("mongoose"));
37
+ const commentSchema = new mongoose_1.Schema({
38
+ postId: {
39
+ type: mongoose_1.Schema.Types.ObjectId,
40
+ ref: 'Post',
41
+ required: true,
42
+ index: true,
43
+ },
44
+ userId: {
45
+ type: mongoose_1.Schema.Types.ObjectId,
46
+ ref: 'User',
47
+ required: true,
48
+ },
10
49
  username: { type: String, required: true },
11
50
  profilePicUrl: { type: String, default: '' },
12
51
  text: { type: String, required: true },
13
52
  likes: { type: Number, required: false, default: 0 },
14
53
  upVotes: { type: Number, required: false, default: 0 },
15
54
  downVotes: { type: Number, required: false, default: 0 },
16
- reportNr: { type: Number, required: false, default: 0 },
55
+ reportsNr: { type: Number, required: false, default: 0 },
17
56
  replyNr: { type: Number, required: false, default: 0 },
57
+ createdAt: { type: Date, default: Date.now },
18
58
  }, {
19
59
  toJSON: {
20
60
  transform(doc, ret) {
21
61
  ret.id = ret._id;
22
62
  delete ret.__v;
23
63
  delete ret._id;
24
- delete ret.reportNr;
64
+ delete ret.reportsNr;
25
65
  },
26
66
  },
27
67
  });
28
68
  commentSchema.statics.build = (attrs) => {
29
69
  return new Comment(attrs);
30
70
  };
71
+ commentSchema.index({ postId: 1 });
31
72
  const Comment = mongoose_1.default.model('Comment', commentSchema);
32
73
  exports.default = Comment;
@@ -60,6 +60,8 @@ const followSchema = new mongoose_1.Schema({
60
60
  });
61
61
  // Ensure a user cannot follow the same person multiple times
62
62
  followSchema.index({ followerId: 1, followingId: 1 }, { unique: true });
63
+ followSchema.index({ followerId: 1 });
64
+ followSchema.index({ followingId: 1 });
63
65
  // Create and export the model
64
66
  const Follow = mongoose_1.default.model('Follow', followSchema);
65
67
  exports.default = Follow;
@@ -60,6 +60,7 @@ const likeSchema = new mongoose_1.Schema({
60
60
  });
61
61
  // Ensure a user cannot like the same person multiple times
62
62
  likeSchema.index({ userId: 1, postId: 1 }, { unique: true });
63
+ likeSchema.index({ userId: 1 });
63
64
  // Create and export the model
64
65
  const Like = mongoose_1.default.model('Like', likeSchema);
65
66
  exports.default = Like;
@@ -1,6 +1,6 @@
1
- import mongoose from 'mongoose';
1
+ import mongoose, { Document, Model } from 'mongoose';
2
2
  import { PostType } from '../enums/PostType';
3
- interface PostAttributes {
3
+ interface Post extends Document {
4
4
  userId: mongoose.Types.ObjectId;
5
5
  username: string;
6
6
  profilePicUrl: string;
@@ -11,21 +11,10 @@ interface PostAttributes {
11
11
  postType: PostType;
12
12
  reportsNr?: number;
13
13
  contentUrl: string;
14
+ createdAt: Date;
14
15
  }
15
- interface PostModel extends mongoose.Model<PostDocument> {
16
- build(attrs: PostAttributes): PostDocument;
17
- }
18
- interface PostDocument extends mongoose.Document {
19
- userId: mongoose.Types.ObjectId;
20
- username: string;
21
- profilePicUrl: string;
22
- caption: string;
23
- likesNr: number;
24
- commentsNr: number;
25
- savesNr: number;
26
- postType: PostType;
27
- reportsNr: number;
28
- contentUrl: string;
16
+ interface PostModel extends Model<Post> {
17
+ build(attrs: Post): Post;
29
18
  }
30
19
  declare const Post: PostModel;
31
20
  export default Post;
@@ -34,8 +34,13 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mongoose_1 = __importStar(require("mongoose"));
37
- const postSchema = new mongoose_1.default.Schema({
38
- userId: { type: mongoose_1.Schema.Types.ObjectId, required: true },
37
+ const postSchema = new mongoose_1.Schema({
38
+ userId: {
39
+ type: mongoose_1.Schema.Types.ObjectId,
40
+ ref: 'User',
41
+ required: true,
42
+ index: true,
43
+ },
39
44
  username: { type: String, required: true },
40
45
  profilePicUrl: { type: String, default: '' },
41
46
  caption: { type: String, default: '' },
@@ -45,6 +50,7 @@ const postSchema = new mongoose_1.default.Schema({
45
50
  postType: { type: String, required: true },
46
51
  reportsNr: { type: Number, required: false, default: 0 },
47
52
  contentUrl: { type: String, required: true },
53
+ createdAt: { type: Date, default: Date.now },
48
54
  }, {
49
55
  toJSON: {
50
56
  transform(doc, ret) {
@@ -58,5 +64,6 @@ const postSchema = new mongoose_1.default.Schema({
58
64
  postSchema.statics.build = (attrs) => {
59
65
  return new Post(attrs);
60
66
  };
67
+ postSchema.index({ userId: 1 });
61
68
  const Post = mongoose_1.default.model('Post', postSchema);
62
69
  exports.default = Post;
@@ -1,28 +1,18 @@
1
- import mongoose from 'mongoose';
2
- interface ReplyAttributes {
3
- commentId: string;
4
- userId: string;
1
+ import mongoose, { Document } from 'mongoose';
2
+ interface Reply extends Document {
3
+ commentId: mongoose.Types.ObjectId;
4
+ userId: mongoose.Types.ObjectId;
5
5
  username: string;
6
6
  profilePicUrl: string;
7
7
  text: string;
8
8
  likes?: number;
9
9
  upVotes?: number;
10
10
  downVotes?: number;
11
- reportNr?: number;
11
+ reportsNr?: number;
12
+ createdAt: Date;
12
13
  }
13
- interface ReplyModel extends mongoose.Model<ReplyDocument> {
14
- build(attrs: ReplyAttributes): ReplyDocument;
15
- }
16
- interface ReplyDocument extends mongoose.Document {
17
- commentId: string;
18
- userId: string;
19
- username: string;
20
- profilePicUrl: string;
21
- text: string;
22
- likes: number;
23
- upVotes: number;
24
- downVotes: number;
25
- reportNr: number;
14
+ interface ReplyModel extends mongoose.Model<Reply> {
15
+ build(attrs: Reply): Reply;
26
16
  }
27
17
  declare const Reply: ReplyModel;
28
18
  export default Reply;
@@ -1,31 +1,68 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
5
35
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const mongoose_1 = __importDefault(require("mongoose"));
36
+ const mongoose_1 = __importStar(require("mongoose"));
7
37
  const replySchema = new mongoose_1.default.Schema({
8
- commentId: { type: String, required: true },
9
- userId: { type: String, required: true },
38
+ commentId: {
39
+ type: mongoose_1.Schema.Types.ObjectId,
40
+ ref: 'Comment',
41
+ index: true,
42
+ required: true,
43
+ },
44
+ userId: { type: mongoose_1.Schema.Types.ObjectId, ref: 'User', required: true },
10
45
  username: { type: String, required: true },
11
46
  profilePicUrl: { type: String, default: '' },
12
47
  text: { type: String, required: true },
13
48
  likes: { type: Number, required: false, default: 0 },
14
49
  upVotes: { type: Number, required: false, default: 0 },
15
50
  downVotes: { type: Number, required: false, default: 0 },
16
- reportNr: { type: Number, required: false, default: 0 },
51
+ reportsNr: { type: Number, required: false, default: 0 },
52
+ createdAt: { type: Date, default: Date.now },
17
53
  }, {
18
54
  toJSON: {
19
55
  transform(doc, ret) {
20
56
  ret.id = ret._id;
21
57
  delete ret.__v;
22
58
  delete ret._id;
23
- delete ret.reportNr;
59
+ delete ret.reportsNr;
24
60
  },
25
61
  },
26
62
  });
27
63
  replySchema.statics.build = (attrs) => {
28
64
  return new Reply(attrs);
29
65
  };
66
+ replySchema.index({ commentId: 1 });
30
67
  const Reply = mongoose_1.default.model('Reply', replySchema);
31
68
  exports.default = Reply;
@@ -1,7 +1,7 @@
1
- import mongoose from 'mongoose';
1
+ import { Document, Model } from 'mongoose';
2
2
  import { AccountType } from '../enums/AccountType';
3
3
  import { PaidPlan } from '../enums/PaidPlan';
4
- interface UserAttributes {
4
+ interface User extends Document {
5
5
  email: string;
6
6
  username: string;
7
7
  password: string;
@@ -24,33 +24,10 @@ interface UserAttributes {
24
24
  profession?: string;
25
25
  grossIncome?: number;
26
26
  netIncome?: number;
27
+ createdAt: Date;
27
28
  }
28
- interface UserModel extends mongoose.Model<UserDocument> {
29
- build(attrs: UserAttributes): UserDocument;
30
- }
31
- interface UserDocument extends mongoose.Document {
32
- email: string;
33
- username: string;
34
- password: string;
35
- name: string;
36
- surname: string;
37
- profilePicUrl: string;
38
- accountType: AccountType;
39
- followers: number;
40
- following: number;
41
- postsNr: number;
42
- phoneNumber: string;
43
- verified: boolean;
44
- paidPlan: PaidPlan;
45
- totalLikes: number;
46
- totalUpVotes: number;
47
- totalDownVotes: number;
48
- location: string;
49
- height: number;
50
- weight: number;
51
- profession: string;
52
- grossIncome: number;
53
- netIncome: number;
29
+ interface UserModel extends Model<User> {
30
+ build(attrs: User): User;
54
31
  }
55
32
  declare const User: UserModel;
56
33
  export default User;
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -12,12 +45,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
46
  };
14
47
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const mongoose_1 = __importDefault(require("mongoose"));
48
+ const mongoose_1 = __importStar(require("mongoose"));
16
49
  const PaidPlan_1 = require("../enums/PaidPlan");
17
50
  const password_1 = __importDefault(require("../utils/password"));
18
- const userSchema = new mongoose_1.default.Schema({
51
+ const userSchema = new mongoose_1.Schema({
19
52
  email: { type: String, required: true, unique: true },
20
- username: { type: String, required: true, unique: true },
53
+ username: { type: String, required: true, index: true, unique: true },
21
54
  password: { type: String, required: true },
22
55
  name: { type: String, required: true },
23
56
  surname: { type: String, required: true },
@@ -38,6 +71,7 @@ const userSchema = new mongoose_1.default.Schema({
38
71
  profession: { type: String, required: false, default: '' },
39
72
  grossIncome: { type: Number, required: false, default: 0 },
40
73
  netIncome: { type: Number, required: false, default: 0 },
74
+ createdAt: { type: Date, default: Date.now },
41
75
  }, {
42
76
  toJSON: {
43
77
  transform(doc, ret) {
@@ -53,6 +87,7 @@ const userSchema = new mongoose_1.default.Schema({
53
87
  delete ret.profession;
54
88
  delete ret.grossIncome;
55
89
  delete ret.netIncome;
90
+ delete ret.createdAt;
56
91
  },
57
92
  },
58
93
  });
@@ -68,6 +103,6 @@ userSchema.pre('save', function (done) {
68
103
  userSchema.statics.build = (attrs) => {
69
104
  return new User(attrs);
70
105
  };
71
- userSchema.index({ email: 1, username: 1 }, { unique: true });
106
+ userSchema.index({ username: 1 }, { unique: true });
72
107
  const User = mongoose_1.default.model('User', userSchema);
73
108
  exports.default = User;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armi-wave/common",
3
- "version": "1.23.12",
3
+ "version": "1.23.14",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",