@stamhoofd/email 2.115.1 → 2.117.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,5 +1,5 @@
1
1
  import { QueryableModel } from '@stamhoofd/sql';
2
- import { EmailInterfaceRecipient } from '../classes/Email';
2
+ import { EmailInterfaceRecipient } from '../classes/Email.js';
3
3
  export declare class EmailAddress extends QueryableModel {
4
4
  static table: string;
5
5
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"EmailAddress.d.ts","sourceRoot":"","sources":["../../src/models/EmailAddress.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAO,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAc3D,qBAAa,YAAa,SAAQ,cAAc;IAC5C,MAAM,CAAC,KAAK,SAAqB;IAOjC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIrC,KAAK,EAAE,MAAM,CAAC;IAGd,YAAY,UAAS;IAGrB,UAAU,UAAS;IAGnB,qBAAqB,UAAS;IAG9B,eAAe,UAAS;IAGxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IAQH,SAAS,EAAE,IAAI,CAAC;IAShB,SAAS,EAAE,IAAI,CAAC;WAEH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;WAoBhF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;WA6BrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIxG;;OAEG;WACU,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;WAUrE,YAAY,CAAC,UAAU,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAkBvG"}
1
+ {"version":3,"file":"EmailAddress.d.ts","sourceRoot":"","sources":["../../src/models/EmailAddress.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAO,MAAM,gBAAgB,CAAC;AAGrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAc9D,qBAAa,YAAa,SAAQ,cAAc;IAC5C,MAAM,CAAC,KAAK,SAAqB;IAOjC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAIrC,KAAK,EAAE,MAAM,CAAC;IAGd,YAAY,UAAS;IAGrB,UAAU,UAAS;IAGnB,qBAAqB,UAAS;IAG9B,eAAe,UAAS;IAGxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IAQH,SAAS,EAAE,IAAI,CAAC;IAShB,SAAS,EAAE,IAAI,CAAC;WAEH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;WAoBhF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;WAgCrF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIxG;;OAEG;WACU,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;WAUrE,YAAY,CAAC,UAAU,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;CAkBvG"}
@@ -51,20 +51,25 @@ class EmailAddress extends sql_1.QueryableModel {
51
51
  }
52
52
  // Methods
53
53
  static async getByEmails(emails, organizationId) {
54
- if (emails.length > 30) {
54
+ if (emails.length > 1000) {
55
55
  // Normally an organization will never have so much bounces, so we'll request all emails and filter in them
56
56
  const all = await this.where({ organizationId }, { limit: 1000 });
57
57
  return all.filter(e => emails.includes(e.email));
58
58
  }
59
- if (emails.length == 0) {
59
+ if (emails.length === 0) {
60
60
  return [];
61
61
  }
62
- if (organizationId === null) {
63
- const [rows] = await simple_database_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM ${this.table} WHERE \`email\` IN (?) AND \`organizationId\` is NULL`, [emails]);
64
- return this.fromRows(rows, this.table);
62
+ const query = EmailAddress.select().where('email', emails);
63
+ if (organizationId) {
64
+ query.andWhere(sql_1.SQL.where('organizationId', organizationId)
65
+ .or('organizationId', null));
65
66
  }
66
- const [rows] = await simple_database_1.Database.select(`SELECT ${this.getDefaultSelect()} FROM ${this.table} WHERE \`email\` IN (?) AND \`organizationId\` = ?`, [emails, organizationId]);
67
- return this.fromRows(rows, this.table);
67
+ else {
68
+ query.andWhere(sql_1.SQL.where('organizationId', null)
69
+ .or('hardBounce', 1)
70
+ .or('markedAsSpam', 1));
71
+ }
72
+ return query.fetch();
68
73
  }
69
74
  // Methods
70
75
  static async getByEmail(email, organizationId) {
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/email",
3
- "version": "2.115.1",
3
+ "version": "2.117.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -25,5 +25,5 @@
25
25
  "publishConfig": {
26
26
  "access": "public"
27
27
  },
28
- "gitHead": "4b692d62820d095e00524e3c0214e8f73a69506e"
28
+ "gitHead": "ad4b006dca3aa5a7c14b2afc83b6df3c2a72424c"
29
29
  }
@@ -3,7 +3,7 @@ import { QueueHandler } from '@stamhoofd/queues';
3
3
  import { QueryableModel, SQL } from '@stamhoofd/sql';
4
4
  import crypto from 'crypto';
5
5
  import { v4 as uuidv4 } from 'uuid';
6
- import { EmailInterfaceRecipient } from '../classes/Email';
6
+ import { EmailInterfaceRecipient } from '../classes/Email.js';
7
7
 
8
8
  async function randomBytes(size: number): Promise<Buffer> {
9
9
  return new Promise((resolve, reject) => {
@@ -91,31 +91,34 @@ export class EmailAddress extends QueryableModel {
91
91
 
92
92
  // Methods
93
93
  static async getByEmails(emails: string[], organizationId: string | null): Promise<EmailAddress[]> {
94
- if (emails.length > 30) {
94
+ if (emails.length > 1000) {
95
95
  // Normally an organization will never have so much bounces, so we'll request all emails and filter in them
96
96
  const all = await this.where({ organizationId }, { limit: 1000 });
97
97
  return all.filter(e => emails.includes(e.email));
98
98
  }
99
99
 
100
- if (emails.length == 0) {
100
+ if (emails.length === 0) {
101
101
  return [];
102
102
  }
103
103
 
104
- if (organizationId === null) {
105
- const [rows] = await Database.select(
106
- `SELECT ${this.getDefaultSelect()} FROM ${this.table} WHERE \`email\` IN (?) AND \`organizationId\` is NULL`,
107
- [emails],
104
+ const query = EmailAddress.select().where(
105
+ 'email', emails,
106
+ );
107
+ if (organizationId) {
108
+ query.andWhere(
109
+ SQL.where('organizationId', organizationId)
110
+ .or('organizationId', null),
111
+ );
112
+ }
113
+ else {
114
+ query.andWhere(
115
+ SQL.where('organizationId', null)
116
+ .or('hardBounce', 1)
117
+ .or('markedAsSpam', 1),
108
118
  );
109
-
110
- return this.fromRows(rows, this.table);
111
119
  }
112
120
 
113
- const [rows] = await Database.select(
114
- `SELECT ${this.getDefaultSelect()} FROM ${this.table} WHERE \`email\` IN (?) AND \`organizationId\` = ?`,
115
- [emails, organizationId],
116
- );
117
-
118
- return this.fromRows(rows, this.table);
121
+ return query.fetch();
119
122
  }
120
123
 
121
124
  // Methods