@stamhoofd/email 2.118.1 → 2.120.0

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,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EmailAddress = void 0;
4
- const tslib_1 = require("tslib");
5
- const simple_database_1 = require("@simonbackx/simple-database");
6
- const queues_1 = require("@stamhoofd/queues");
7
- const sql_1 = require("@stamhoofd/sql");
8
- const crypto_1 = tslib_1.__importDefault(require("crypto"));
9
- const uuid_1 = require("uuid");
1
+ import { __decorate } from "tslib";
2
+ import { column, Database } from '@simonbackx/simple-database';
3
+ import { QueueHandler } from '@stamhoofd/queues';
4
+ import { QueryableModel, SQL } from '@stamhoofd/sql';
5
+ import crypto from 'crypto';
6
+ import { v4 as uuidv4 } from 'uuid';
10
7
  async function randomBytes(size) {
11
8
  return new Promise((resolve, reject) => {
12
- crypto_1.default.randomBytes(size, (err, buf) => {
9
+ crypto.randomBytes(size, (err, buf) => {
13
10
  if (err) {
14
11
  reject(err);
15
12
  return;
@@ -18,7 +15,7 @@ async function randomBytes(size) {
18
15
  });
19
16
  });
20
17
  }
21
- class EmailAddress extends sql_1.QueryableModel {
18
+ export class EmailAddress extends QueryableModel {
22
19
  static table = 'email_addresses';
23
20
  id;
24
21
  organizationId = null;
@@ -36,7 +33,7 @@ class EmailAddress extends sql_1.QueryableModel {
36
33
  updatedAt;
37
34
  static async getOrCreate(email, organizationId) {
38
35
  // Prevent race conditions when checking the same email address at the same time, and creating a new one
39
- return await queues_1.QueueHandler.schedule('email-address/create-' + email + '-' + organizationId, async () => {
36
+ return await QueueHandler.schedule('email-address/create-' + email + '-' + organizationId, async () => {
40
37
  const existing = await this.getByEmail(email, organizationId);
41
38
  if (existing) {
42
39
  return existing;
@@ -61,11 +58,11 @@ class EmailAddress extends sql_1.QueryableModel {
61
58
  }
62
59
  const query = EmailAddress.select().where('email', emails);
63
60
  if (organizationId) {
64
- query.andWhere(sql_1.SQL.where('organizationId', organizationId)
61
+ query.andWhere(SQL.where('organizationId', organizationId)
65
62
  .or('organizationId', null));
66
63
  }
67
64
  else {
68
- query.andWhere(sql_1.SQL.where('organizationId', null)
65
+ query.andWhere(SQL.where('organizationId', null)
69
66
  .or('hardBounce', 1)
70
67
  .or('markedAsSpam', 1));
71
68
  }
@@ -79,7 +76,7 @@ class EmailAddress extends sql_1.QueryableModel {
79
76
  * Search organization wide if this email has been marked as spam or hard bounced
80
77
  */
81
78
  static async getWhereHardBounceOrSpam(email) {
82
- return await this.select().where('email', email).where(sql_1.SQL.where('hardBounce', 1)
79
+ return await this.select().where('email', email).where(SQL.where('hardBounce', 1)
83
80
  .or('markedAsSpam', 1)).first(false);
84
81
  }
85
82
  // Methods
@@ -88,7 +85,7 @@ class EmailAddress extends sql_1.QueryableModel {
88
85
  return [];
89
86
  }
90
87
  const emails = recipients.map(r => r.email);
91
- const [results] = await simple_database_1.Database.select(`SELECT email FROM ${this.table} WHERE \`email\` IN (?) AND (\`hardBounce\` = 1 OR \`markedAsSpam\` = 1)`, [emails]);
88
+ const [results] = await Database.select(`SELECT email FROM ${this.table} WHERE \`email\` IN (?) AND (\`hardBounce\` = 1 OR \`markedAsSpam\` = 1)`, [emails]);
92
89
  const remove = results.map(r => r[this.table]['email']);
93
90
  if (remove.length === 0) {
94
91
  return recipients;
@@ -96,37 +93,36 @@ class EmailAddress extends sql_1.QueryableModel {
96
93
  return recipients.filter(r => !remove.includes(r.email));
97
94
  }
98
95
  }
99
- exports.EmailAddress = EmailAddress;
100
- tslib_1.__decorate([
101
- (0, simple_database_1.column)({
96
+ __decorate([
97
+ column({
102
98
  primary: true, type: 'string', beforeSave(value) {
103
- return value ?? (0, uuid_1.v4)();
99
+ return value ?? uuidv4();
104
100
  },
105
101
  })
106
102
  ], EmailAddress.prototype, "id", void 0);
107
- tslib_1.__decorate([
108
- (0, simple_database_1.column)({ type: 'string', nullable: true })
103
+ __decorate([
104
+ column({ type: 'string', nullable: true })
109
105
  ], EmailAddress.prototype, "organizationId", void 0);
110
- tslib_1.__decorate([
111
- (0, simple_database_1.column)({ type: 'string' })
106
+ __decorate([
107
+ column({ type: 'string' })
112
108
  ], EmailAddress.prototype, "email", void 0);
113
- tslib_1.__decorate([
114
- (0, simple_database_1.column)({ type: 'boolean' })
109
+ __decorate([
110
+ column({ type: 'boolean' })
115
111
  ], EmailAddress.prototype, "markedAsSpam", void 0);
116
- tslib_1.__decorate([
117
- (0, simple_database_1.column)({ type: 'boolean' })
112
+ __decorate([
113
+ column({ type: 'boolean' })
118
114
  ], EmailAddress.prototype, "hardBounce", void 0);
119
- tslib_1.__decorate([
120
- (0, simple_database_1.column)({ type: 'boolean' })
115
+ __decorate([
116
+ column({ type: 'boolean' })
121
117
  ], EmailAddress.prototype, "unsubscribedMarketing", void 0);
122
- tslib_1.__decorate([
123
- (0, simple_database_1.column)({ type: 'boolean' })
118
+ __decorate([
119
+ column({ type: 'boolean' })
124
120
  ], EmailAddress.prototype, "unsubscribedAll", void 0);
125
- tslib_1.__decorate([
126
- (0, simple_database_1.column)({ type: 'string', nullable: true })
121
+ __decorate([
122
+ column({ type: 'string', nullable: true })
127
123
  ], EmailAddress.prototype, "token", void 0);
128
- tslib_1.__decorate([
129
- (0, simple_database_1.column)({
124
+ __decorate([
125
+ column({
130
126
  type: 'datetime', beforeSave() {
131
127
  const date = new Date();
132
128
  date.setMilliseconds(0);
@@ -134,8 +130,8 @@ tslib_1.__decorate([
134
130
  },
135
131
  })
136
132
  ], EmailAddress.prototype, "createdAt", void 0);
137
- tslib_1.__decorate([
138
- (0, simple_database_1.column)({
133
+ __decorate([
134
+ column({
139
135
  type: 'datetime', beforeSave() {
140
136
  const date = new Date();
141
137
  date.setMilliseconds(0);
@@ -1 +1 @@
1
- {"version":3,"file":"EmailAddress.js","sourceRoot":"","sources":["../../src/models/EmailAddress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailAddress.js","sourceRoot":"","sources":["../../src/models/EmailAddress.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,19 @@
1
1
  {
2
2
  "name": "@stamhoofd/email",
3
- "version": "2.118.1",
4
- "main": "./dist/index.js",
3
+ "version": "2.120.0",
4
+ "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
6
8
  "license": "UNLICENCED",
7
9
  "sideEffects": false,
8
10
  "files": [
9
- "src",
10
- "dist"
11
+ "dist",
12
+ "migrations"
11
13
  ],
12
14
  "scripts": {
13
- "build": "tsc -b && mkdir -p ./dist/migrations && rsync --exclude='*.ts' --exclude='*.js' -r --checksum ./src/migrations/ ./dist/migrations/"
15
+ "build": "tsc --build tsconfig.build.json",
16
+ "lint": "eslint"
14
17
  },
15
18
  "peerDependencies": {
16
19
  "@simonbackx/simple-errors": "^1.5"
@@ -25,5 +28,5 @@
25
28
  "publishConfig": {
26
29
  "access": "public"
27
30
  },
28
- "gitHead": "7461e7ca17f68233be8a8acf1943f2d7882244fd"
31
+ "gitHead": "f38f79c15ce16b0c8c14743ff3eb61feda5a18d4"
29
32
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Email.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Email.test.d.ts","sourceRoot":"","sources":["../../src/classes/Email.test.ts"],"names":[],"mappings":""}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Email_1 = require("./Email");
4
- describe("Email", () => {
5
- it("should parse e-mail strings correctly", () => {
6
- expect(Email_1.Email.parseEmailStr('"My crazy name" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"]);
7
- expect(Email_1.Email.parseEmailStr('hallo@stamhoofd.be')).toEqual(["hallo@stamhoofd.be"]);
8
- expect(Email_1.Email.parseEmailStr('hallo@stamhoofd.be ')).toEqual(["hallo@stamhoofd.be"]);
9
- expect(Email_1.Email.parseEmailStr('"hallo@stamhoofd.be"')).toEqual(["hallo@stamhoofd.be"]);
10
- expect(Email_1.Email.parseEmailStr('<"hallo@stamhoofd.be">')).toEqual(["hallo@stamhoofd.be"]);
11
- expect(Email_1.Email.parseEmailStr('Gekke naam <"hallo@stamhoofd.be">')).toEqual(["hallo@stamhoofd.be"]);
12
- expect(Email_1.Email.parseEmailStr('<"hallo@stam\\"hoofd.be">')).toEqual([]);
13
- expect(Email_1.Email.parseEmailStr('<"hallo@stam,hoofd.be">')).toEqual([]);
14
- expect(Email_1.Email.parseEmailStr('<hallo@stam,hoofd.be>')).toEqual([]);
15
- expect(Email_1.Email.parseEmailStr('"Hallo <dit is een test>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"]);
16
- expect(Email_1.Email.parseEmailStr('"Hallo 👋🏽" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"]);
17
- expect(Email_1.Email.parseEmailStr('Hallo <hallo@stam.hoofd.be>')).toEqual(["hallo@stam.hoofd.be"]);
18
- expect(Email_1.Email.parseEmailStr('Hallo <hallo@stam.hoofd.be')).toEqual([]);
19
- expect(Email_1.Email.parseEmailStr('"Hallo <dit is \\" een test>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"]);
20
- expect(Email_1.Email.parseEmailStr('"Hallo <dit is \\" een test佐>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"]);
21
- expect(Email_1.Email.parseEmailStr('"Voornaam \'l Achternaam, en nog iets" <jwz@netscape.com>')).toEqual(["jwz@netscape.com"]);
22
- expect(Email_1.Email.parseEmailStr('"Voornaam \'l Achternaam, en nog iets" <jwz@netscape.com>, "My crazy name" <hallo@stamhoofd.be>')).toEqual(["jwz@netscape.com", "hallo@stamhoofd.be"]);
23
- expect(Email_1.Email.parseEmailStr('hallo@example.com, test@test.com')).toEqual(["hallo@example.com", "test@test.com"]);
24
- expect(Email_1.Email.parseEmailStr('hallo@example.com, invalid, test@test.com')).toEqual(["hallo@example.com", "test@test.com"]);
25
- });
26
- });
27
- //# sourceMappingURL=Email.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Email.test.js","sourceRoot":"","sources":["../../src/classes/Email.test.ts"],"names":[],"mappings":";;AAAA,mCAA+B;AAE/B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACnB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,sCAAsC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACnG,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACjF,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAClF,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACnF,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACrF,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChG,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpE,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAClE,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,gDAAgD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAC7G,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAChG,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAC3F,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAErE,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,oDAAoD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACjH,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,qDAAqD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAElH,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,2DAA2D,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;QACtH,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,iGAAiG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAA;QAElL,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAA;QAC/G,MAAM,CAAC,aAAK,CAAC,aAAa,CAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAA;IAC5H,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- {"root":["../src/index.ts","../src/classes/email.test.ts","../src/classes/email.ts","../src/classes/emailmocker.ts","../src/models/emailaddress.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
@@ -1,28 +0,0 @@
1
- import { Email } from "./Email"
2
-
3
- describe("Email", () => {
4
- it("should parse e-mail strings correctly", () => {
5
- expect(Email.parseEmailStr('"My crazy name" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"])
6
- expect(Email.parseEmailStr('hallo@stamhoofd.be')).toEqual(["hallo@stamhoofd.be"])
7
- expect(Email.parseEmailStr('hallo@stamhoofd.be ')).toEqual(["hallo@stamhoofd.be"])
8
- expect(Email.parseEmailStr('"hallo@stamhoofd.be"')).toEqual(["hallo@stamhoofd.be"])
9
- expect(Email.parseEmailStr('<"hallo@stamhoofd.be">')).toEqual(["hallo@stamhoofd.be"])
10
- expect(Email.parseEmailStr('Gekke naam <"hallo@stamhoofd.be">')).toEqual(["hallo@stamhoofd.be"])
11
- expect(Email.parseEmailStr('<"hallo@stam\\"hoofd.be">')).toEqual([])
12
- expect(Email.parseEmailStr('<"hallo@stam,hoofd.be">')).toEqual([])
13
- expect(Email.parseEmailStr('<hallo@stam,hoofd.be>')).toEqual([])
14
- expect(Email.parseEmailStr('"Hallo <dit is een test>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"])
15
- expect(Email.parseEmailStr('"Hallo 👋🏽" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"])
16
- expect(Email.parseEmailStr('Hallo <hallo@stam.hoofd.be>')).toEqual(["hallo@stam.hoofd.be"])
17
- expect(Email.parseEmailStr('Hallo <hallo@stam.hoofd.be')).toEqual([])
18
-
19
- expect(Email.parseEmailStr('"Hallo <dit is \\" een test>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"])
20
- expect(Email.parseEmailStr('"Hallo <dit is \\" een test佐>" <hallo@stamhoofd.be>')).toEqual(["hallo@stamhoofd.be"])
21
-
22
- expect(Email.parseEmailStr('"Voornaam \'l Achternaam, en nog iets" <jwz@netscape.com>')).toEqual(["jwz@netscape.com"])
23
- expect(Email.parseEmailStr('"Voornaam \'l Achternaam, en nog iets" <jwz@netscape.com>, "My crazy name" <hallo@stamhoofd.be>')).toEqual(["jwz@netscape.com", "hallo@stamhoofd.be"])
24
-
25
- expect(Email.parseEmailStr('hallo@example.com, test@test.com')).toEqual(["hallo@example.com", "test@test.com"])
26
- expect(Email.parseEmailStr('hallo@example.com, invalid, test@test.com')).toEqual(["hallo@example.com", "test@test.com"])
27
- })
28
- })