biz-email-builder-shared 1.5.0 → 1.6.1

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 +1 @@
1
- {"version":3,"file":"template.entity.d.ts","sourceRoot":"","sources":["../../src/entity/template.entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,UAAU,CAAC;AAyDtD,eAAO,MAAM,aAAa;;eAAqD,CAAC"}
1
+ {"version":3,"file":"template.entity.d.ts","sourceRoot":"","sources":["../../src/entity/template.entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAc,MAAM,UAAU,CAAC;AA+DlE,eAAO,MAAM,aAAa;;eAAqD,CAAC"}
@@ -39,6 +39,12 @@ const TemplateSchema = new mongoose_1.Schema({
39
39
  type: Boolean,
40
40
  default: false,
41
41
  },
42
+ visibility: {
43
+ type: String,
44
+ required: true,
45
+ enum: Object.values(types_1.visibility),
46
+ default: types_1.visibility.PRIVATE
47
+ },
42
48
  user: { type: mongoose_1.Schema.Types.ObjectId, ref: 'user' },
43
49
  updateBy: { type: mongoose_1.Schema.Types.ObjectId, ref: 'user' },
44
50
  deletedAt: Date
@@ -1 +1 @@
1
- {"version":3,"file":"templateShare.entity.d.ts","sourceRoot":"","sources":["../../src/entity/templateShare.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAS,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,cAAc;IACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAkBD,eAAO,MAAM,kBAAkB;SACwlH,MAAO,QAAQ;eADxiH,CAAC"}
1
+ {"version":3,"file":"templateShare.entity.d.ts","sourceRoot":"","sources":["../../src/entity/templateShare.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAS,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,cAAc;IACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAkBD,eAAO,MAAM,kBAAkB;SAC8lH,MAAO,QAAQ;eAD9iH,CAAC"}
@@ -6,7 +6,7 @@ const utilities_1 = require("../utilities");
6
6
  const TemplateShareSchema = new mongoose_1.Schema({
7
7
  sharedBy: { type: mongoose_1.Schema.Types.ObjectId, ref: 'user', required: true },
8
8
  sharedTo: { type: mongoose_1.Schema.Types.ObjectId, ref: 'user', required: true },
9
- templateId: { type: mongoose_1.Schema.Types.ObjectId, ref: 'email-template', required: true },
9
+ templateId: { type: mongoose_1.Schema.Types.ObjectId, ref: 'template', required: true },
10
10
  accessType: { type: String, enum: Object.values(utilities_1.OWNERSHIP_TYPE), required: true },
11
11
  comment: { type: String, default: "" },
12
12
  isRevoked: { type: Boolean, default: false },
@@ -1,4 +1,4 @@
1
- import { Request, Response, NextFunction } from 'express';
1
+ import { Request, Response, NextFunction } from "express";
2
2
  export declare class BadRequestError extends Error {
3
3
  constructor(message: string);
4
4
  }
@@ -13,5 +13,11 @@ export declare class CustomRequestError {
13
13
  };
14
14
  constructor(title: string, description: string);
15
15
  }
16
+ export declare class UnauthorizedRequestError extends Error {
17
+ constructor(message: string);
18
+ }
19
+ export declare class ForbiddenRequestError extends Error {
20
+ constructor(message: string);
21
+ }
16
22
  export declare const errorHandler: (err: Error, req: Request, res: Response, next: NextFunction) => void;
17
23
  //# sourceMappingURL=errorHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/resHandler/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,kBAAkB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC;gBAEU,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO/C;AAKD,eAAO,MAAM,YAAY,QAClB,KAAK,OACL,OAAO,OACP,QAAQ,QACP,YAAY,SAwBnB,CAAC"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/resHandler/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,kBAAkB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;gBAEU,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO/C;AAED,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAK5B;AAED,eAAO,MAAM,YAAY,QAAS,KAAK,OAAO,OAAO,OAAO,QAAQ,QAAQ,YAAY,SA2BvF,CAAC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorHandler = exports.CustomRequestError = exports.NotFoundRequestError = exports.BadRequestError = void 0;
3
+ exports.errorHandler = exports.ForbiddenRequestError = exports.UnauthorizedRequestError = exports.CustomRequestError = exports.NotFoundRequestError = exports.BadRequestError = void 0;
4
4
  class BadRequestError extends Error {
5
5
  constructor(message) {
6
6
  super(message);
7
7
  Object.setPrototypeOf(this, BadRequestError.prototype);
8
- this.name = 'BadRequestError';
8
+ this.name = "BadRequestError";
9
9
  }
10
10
  }
11
11
  exports.BadRequestError = BadRequestError;
@@ -13,24 +13,39 @@ class NotFoundRequestError extends Error {
13
13
  constructor(message) {
14
14
  super(message);
15
15
  Object.setPrototypeOf(this, NotFoundRequestError.prototype);
16
- this.name = 'NotFoundRequestError';
16
+ this.name = "NotFoundRequestError";
17
17
  }
18
18
  }
19
19
  exports.NotFoundRequestError = NotFoundRequestError;
20
20
  class CustomRequestError {
21
21
  constructor(title, description) {
22
- this.name = 'CustomRequestError';
22
+ this.name = "CustomRequestError";
23
23
  this.message = {
24
24
  title,
25
- description
25
+ description,
26
26
  };
27
27
  }
28
28
  }
29
29
  exports.CustomRequestError = CustomRequestError;
30
- // Custom error handler middleware
30
+ class UnauthorizedRequestError extends Error {
31
+ constructor(message) {
32
+ super(message);
33
+ Object.setPrototypeOf(this, UnauthorizedRequestError.prototype);
34
+ this.name = "UnauthorizedRequestError";
35
+ }
36
+ }
37
+ exports.UnauthorizedRequestError = UnauthorizedRequestError;
38
+ class ForbiddenRequestError extends Error {
39
+ constructor(message) {
40
+ super(message);
41
+ Object.setPrototypeOf(this, ForbiddenRequestError.prototype);
42
+ this.name = "ForbiddenRequestError";
43
+ }
44
+ }
45
+ exports.ForbiddenRequestError = ForbiddenRequestError;
31
46
  const errorHandler = (err, req, res, next) => {
32
- let statusCode = 500; // Default status code
33
- let errorMessage = 'Internal Server Error'; // Default error message
47
+ let statusCode = 500;
48
+ let errorMessage = "Internal Server Error";
34
49
  if (err instanceof BadRequestError) {
35
50
  statusCode = 400;
36
51
  errorMessage = err.message;
@@ -39,17 +54,24 @@ const errorHandler = (err, req, res, next) => {
39
54
  statusCode = 404;
40
55
  errorMessage = err.message;
41
56
  }
57
+ else if (err instanceof UnauthorizedRequestError) {
58
+ statusCode = 401;
59
+ errorMessage = err.message;
60
+ }
61
+ else if (err instanceof ForbiddenRequestError) {
62
+ statusCode = 403;
63
+ errorMessage = err.message;
64
+ }
42
65
  else if (err instanceof CustomRequestError) {
43
66
  statusCode = 422;
44
67
  errorMessage = err.message;
45
68
  }
46
69
  else {
47
- console.error(err.stack); // Log the error for debugging
70
+ console.error(err.stack);
48
71
  }
49
- // Send an error response
50
72
  res.status(statusCode).json({
51
73
  message: errorMessage,
52
- error: err.name // Optionally send the error name/type
74
+ error: err.name,
53
75
  });
54
76
  };
55
77
  exports.errorHandler = errorHandler;
@@ -1,8 +1,9 @@
1
1
  import { Request } from "express";
2
- import { FEATURE_TYPE, ROLES } from "../utilities";
2
+ import { FEATURE_TYPE, OWNERSHIP_TYPE, ROLES } from "../utilities";
3
3
  export interface IRequestUser {
4
4
  email: string | null;
5
5
  role: ROLES;
6
+ accessType: OWNERSHIP_TYPE;
6
7
  groups: Array<{
7
8
  name: string;
8
9
  features: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"IRequest.d.ts","sourceRoot":"","sources":["../../src/types/IRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,YAAY,CAAA;SAAE,CAAC,CAAA;KAC1C,CAAC,CAAA;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,OAAO;IACrC,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;CACd"}
1
+ {"version":3,"file":"IRequest.d.ts","sourceRoot":"","sources":["../../src/types/IRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEnE,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,YAAY,CAAA;SAAE,CAAC,CAAA;KAC1C,CAAC,CAAA;IACF,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,OAAO;IACrC,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;CACd"}
@@ -10,6 +10,11 @@ export declare enum BlockType {
10
10
  DIVIDER = "Divider",
11
11
  EMAILLAYOUT = "EmailLayout"
12
12
  }
13
+ export declare enum visibility {
14
+ PUBLIC = "PUBLIC",
15
+ PRIVATE = "PRIVATE",
16
+ PRE_DEFINED = "PRE_DEFINED"
17
+ }
13
18
  interface IProps {
14
19
  imageUrl: string;
15
20
  text: string;
@@ -40,6 +45,7 @@ export interface ITemplateLayout {
40
45
  updatedAt: Date;
41
46
  deletedAt: Date;
42
47
  updateBy: Types.ObjectId;
48
+ visibility: visibility;
43
49
  }
44
50
  export {};
45
51
  //# sourceMappingURL=ITemplate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ITemplate.d.ts","sourceRoot":"","sources":["../../src/types/ITemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,oBAAY,SAAS;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC3B;AAED,UAAU,MAAM;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,MAAM;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACF;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;CACzB"}
1
+ {"version":3,"file":"ITemplate.d.ts","sourceRoot":"","sources":["../../src/types/ITemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,oBAAY,SAAS;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC3B;AACD,oBAAY,UAAU;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC3B;AAED,UAAU,MAAM;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,MAAM;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACF;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;CACvB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BlockType = void 0;
3
+ exports.visibility = exports.BlockType = void 0;
4
4
  var BlockType;
5
5
  (function (BlockType) {
6
6
  BlockType["TEXT"] = "Text";
@@ -13,3 +13,9 @@ var BlockType;
13
13
  BlockType["DIVIDER"] = "Divider";
14
14
  BlockType["EMAILLAYOUT"] = "EmailLayout";
15
15
  })(BlockType || (exports.BlockType = BlockType = {}));
16
+ var visibility;
17
+ (function (visibility) {
18
+ visibility["PUBLIC"] = "PUBLIC";
19
+ visibility["PRIVATE"] = "PRIVATE";
20
+ visibility["PRE_DEFINED"] = "PRE_DEFINED";
21
+ })(visibility || (exports.visibility = visibility = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "biz-email-builder-shared",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -15,6 +15,7 @@
15
15
  "express": "^4.18.2",
16
16
  "joi": "^17.11.0",
17
17
  "jsonwebtoken": "^9.0.2",
18
+ "mongoose": "^8.10.1",
18
19
  "nodemailer": "^6.10.0",
19
20
  "typescript": "^5.3.3"
20
21
  },