@stamhoofd/models 2.80.1 → 2.82.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.
- package/dist/src/helpers/EmailBuilder.d.ts.map +1 -1
- package/dist/src/helpers/EmailBuilder.js +7 -4
- package/dist/src/helpers/EmailBuilder.js.map +1 -1
- package/dist/src/helpers/RateLimiter.d.ts +6 -5
- package/dist/src/helpers/RateLimiter.d.ts.map +1 -1
- package/dist/src/helpers/RateLimiter.js +13 -6
- package/dist/src/helpers/RateLimiter.js.map +1 -1
- package/dist/src/migrations/1743070458-default-email-template-orders.sql +2 -0
- package/dist/src/models/Token.d.ts +0 -2
- package/dist/src/models/Token.d.ts.map +1 -1
- package/dist/src/models/Token.js +2 -26
- package/dist/src/models/Token.js.map +1 -1
- package/dist/src/models/Webshop.d.ts.map +1 -1
- package/dist/src/models/Webshop.js +3 -0
- package/dist/src/models/Webshop.js.map +1 -1
- package/package.json +2 -2
- package/src/helpers/EmailBuilder.ts +8 -4
- package/src/helpers/RateLimiter.ts +18 -9
- package/src/migrations/1743070458-default-email-template-orders.sql +2 -0
- package/src/models/Token.ts +2 -26
- package/src/models/Webshop.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailBuilder.d.ts","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EmailBuilder.d.ts","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -353,10 +353,13 @@ async function fillRecipientReplacements(recipient, options) {
|
|
|
353
353
|
}));
|
|
354
354
|
}
|
|
355
355
|
if (from || replyTo) {
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
356
|
+
const fromAddress = replyTo?.email ?? from.email;
|
|
357
|
+
if (fromAddress) {
|
|
358
|
+
recipient.replacements.push(structures_1.Replacement.create({
|
|
359
|
+
token: 'fromAddress',
|
|
360
|
+
value: fromAddress,
|
|
361
|
+
}));
|
|
362
|
+
}
|
|
360
363
|
const name = replyTo?.name ?? from?.name;
|
|
361
364
|
if (name) {
|
|
362
365
|
recipient.replacements.push(structures_1.Replacement.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailBuilder.js","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EmailBuilder.js","sourceRoot":"","sources":["../../../src/helpers/EmailBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
export declare class RateLimitWindow {
|
|
2
2
|
start: Date;
|
|
3
3
|
windows: Map<string, number>;
|
|
4
|
-
limit: number
|
|
4
|
+
limit: Record<string, number>;
|
|
5
5
|
/**
|
|
6
6
|
* in ms
|
|
7
7
|
*/
|
|
8
8
|
duration: number;
|
|
9
9
|
constructor(options: {
|
|
10
|
-
limit: number;
|
|
10
|
+
limit: Record<string, number> | number;
|
|
11
11
|
duration: number;
|
|
12
12
|
});
|
|
13
13
|
isExpired(): boolean;
|
|
14
14
|
get age(): number;
|
|
15
|
-
|
|
15
|
+
getLimit(category?: string): number;
|
|
16
|
+
track(key: string, amount?: number, category?: string): void;
|
|
16
17
|
}
|
|
17
18
|
export declare class RateLimiter {
|
|
18
19
|
windows: RateLimitWindow[];
|
|
19
20
|
constructor(options: {
|
|
20
21
|
limits: {
|
|
21
22
|
duration: number;
|
|
22
|
-
limit: number;
|
|
23
|
+
limit: Record<string, number> | number;
|
|
23
24
|
}[];
|
|
24
25
|
});
|
|
25
|
-
track(key: string, amount?: number): void;
|
|
26
|
+
track(key: string, amount?: number, category?: string): void;
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=RateLimiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IACxB,KAAK,EAAE,IAAI,CAAc;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEzC,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IACxB,KAAK,EAAE,IAAI,CAAc;IACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEzC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC;KACpB;IAKD,SAAS;IAIT,IAAI,GAAG,WAEN;IAED,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAO1B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;CAyBnD;AAED,qBAAa,WAAW;IACpB,OAAO,EAAE,eAAe,EAAE,CAAM;gBAEpB,OAAO,EAAE;QACjB,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;SAAE,EAAE,CAAC;KAC1E;IASD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;CAKnD"}
|
|
@@ -11,7 +11,7 @@ class RateLimitWindow {
|
|
|
11
11
|
*/
|
|
12
12
|
duration;
|
|
13
13
|
constructor(options) {
|
|
14
|
-
this.limit = options.limit;
|
|
14
|
+
this.limit = typeof options.limit === 'number' ? { '': options.limit } : options.limit;
|
|
15
15
|
this.duration = options.duration;
|
|
16
16
|
}
|
|
17
17
|
isExpired() {
|
|
@@ -20,7 +20,13 @@ class RateLimitWindow {
|
|
|
20
20
|
get age() {
|
|
21
21
|
return Date.now() - this.start.getTime();
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
getLimit(category) {
|
|
24
|
+
if (category) {
|
|
25
|
+
return this.limit[category] ?? this.limit[''] ?? 0;
|
|
26
|
+
}
|
|
27
|
+
return this.limit[''] ?? 0;
|
|
28
|
+
}
|
|
29
|
+
track(key, amount = 1, category) {
|
|
24
30
|
if (this.isExpired()) {
|
|
25
31
|
// We have a shared window
|
|
26
32
|
this.start = new Date();
|
|
@@ -28,11 +34,12 @@ class RateLimitWindow {
|
|
|
28
34
|
}
|
|
29
35
|
let w = this.windows.get(key) ?? 0;
|
|
30
36
|
w += amount;
|
|
31
|
-
|
|
37
|
+
const limit = this.getLimit(category);
|
|
38
|
+
if (w > limit) {
|
|
32
39
|
const retryAfter = Math.ceil((this.duration - this.age) / 1000);
|
|
33
40
|
throw new simple_errors_1.SimpleError({
|
|
34
41
|
code: 'rate_limit',
|
|
35
|
-
message: `Rate limit exceeded (${w} ${amount > 1 ? '(' + amount + ' added)' : ''} requests in ${Math.round(this.age / 1000)}s). Retry after ${retryAfter}s. Check your code and try to reduce the number of (parallel) requests you make. Add waiting periods if needed
|
|
42
|
+
message: `Rate limit exceeded (${w} ${amount > 1 ? '(' + amount + ' added)' : ''} requests in ${Math.round(this.age / 1000)}s). Retry after ${retryAfter}s. Check your code and try to reduce the number of (parallel) requests you make. Add waiting periods if needed. Limit ${limit} ${category ?? ''}`,
|
|
36
43
|
human: `Oeps! Te veel aanvragen. Om spam te vermijden is jouw aanvraag tijdelijk geblokkeerd. Probeer het over ${retryAfter} seconden opnieuw.`,
|
|
37
44
|
statusCode: 429,
|
|
38
45
|
});
|
|
@@ -52,9 +59,9 @@ class RateLimiter {
|
|
|
52
59
|
}));
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
|
-
track(key, amount = 1) {
|
|
62
|
+
track(key, amount = 1, category) {
|
|
56
63
|
for (const window of this.windows) {
|
|
57
|
-
window.track(key, amount);
|
|
64
|
+
window.track(key, amount, category);
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AAExD,MAAa,eAAe;IACxB,KAAK,GAAS,IAAI,IAAI,EAAE,CAAC;IACzB,OAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzC,KAAK,
|
|
1
|
+
{"version":3,"file":"RateLimiter.js","sourceRoot":"","sources":["../../../src/helpers/RateLimiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
2
|
+
('48d7fb00-4e68-468b-97ec-1ce7b5bc4436', '', NULL, NULL, NULL, 'DefaultOrdersEmail', '{{greeting}}Met vriendelijke groeten,{{organizationName}}Overzicht{{orderDetailsTable}}{{orderTable}}\n\n \n \n \n \n Bestelling bekijken\n \n \n \n \n\nGebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.Wil je geen e-mails van {{organizationName}} meer ontvangen? Klik dan hier om uit te schrijven.', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title></title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n}\n\n.email-style-inline-code {\n font-family: monospace;\n white-space: pre-wrap;\n display: inline-block;\n}\n\n.email-style-description-small {\n font-size: 14px;\n line-height: 1.5;\n font-weight: normal;\n color: var(--color-gray-4, #5e5e5e);\n font-variation-settings: \"opsz\" 19;\n}\n\n.email-style-title-list {\n font-size: 16px;\n line-height: 1.3;\n font-weight: 500;\n}\n.email-style-title-list + p {\n padding-top: 3px;\n}\n\n.email-style-title-prefix-list {\n font-size: 11px;\n line-height: 1.5;\n font-weight: bold;\n color: {{primaryColor}};\n text-transform: uppercase;\n margin-bottom: 3px;\n}\n.email-style-title-prefix-list.error {\n color: #f0153d;\n}\n\n.email-style-price-base, .email-style-discount-price, .email-style-discount-old-price, .email-style-price {\n font-size: 15px;\n line-height: 1.4;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n}\n.email-style-price-base.disabled, .disabled.email-style-discount-price, .disabled.email-style-discount-old-price, .disabled.email-style-price {\n opacity: 0.6;\n}\n.email-style-price-base.negative, .negative.email-style-discount-price, .negative.email-style-discount-old-price, .negative.email-style-price {\n color: #f0153d;\n}\n\n.email-style-price {\n font-weight: bold;\n color: {{primaryColor}};\n}\n\n.email-style-discount-old-price {\n text-decoration: line-through;\n color: var(--color-gray-4, #5e5e5e);\n}\n\n.email-style-discount-price {\n font-weight: bold;\n color: #ff4747;\n margin-left: 5px;\n}\n\n.pre-wrap {\n white-space: pre-wrap;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Met vriendelijke groeten,</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{organizationName}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><hr style=\"height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;\"><h2 style=\"margin: 0; padding: 0;\">Overzicht</h2><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartVariableBlock\" data-id=\"orderDetailsTable\">{{orderDetailsTable}}</div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartVariableBlock\" data-id=\"orderTable\">{{orderTable}}</div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartButton\" data-id=\"orderUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{orderUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">Bestelling bekijken</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p class=\"description\" style=\"color: #5e5e5e;\"><em>Gebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.</em></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><hr style=\"height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;\"><p class=\"description\" style=\"color: #5e5e5e;\">Wil je geen e-mails van {{organizationName}} meer ontvangen? <a class=\"inline-link\" href=\"{{unsubscribeUrl}}\" target=\"\" style=\"margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation;\">Klik dan hier om uit te schrijven</a>.</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Met vriendelijke groeten,\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"horizontalRule\"}, {\"type\": \"heading\", \"attrs\": {\"level\": 2}, \"content\": [{\"text\": \"Overzicht\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"smartVariableBlock\", \"attrs\": {\"id\": \"orderDetailsTable\"}}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\"}, {\"type\": \"smartVariableBlock\", \"attrs\": {\"id\": \"orderTable\"}}, {\"type\": \"paragraph\"}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"orderUrl\"}, \"content\": [{\"text\": \"Bestelling bekijken\", \"type\": \"text\"}]}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Gebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.\", \"type\": \"text\", \"marks\": [{\"type\": \"italic\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"horizontalRule\"}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Wil je geen e-mails van \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}, {\"text\": \" meer ontvangen? \", \"type\": \"text\"}, {\"type\": \"smartButtonInline\", \"attrs\": {\"id\": \"unsubscribeUrl\"}, \"content\": [{\"text\": \"Klik dan hier om uit te schrijven\", \"type\": \"text\"}]}, {\"text\": \".\", \"type\": \"text\"}]}]}, \"version\": 368}', '2025-03-27 10:13:00', '2025-03-27 10:13:00');
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ManyToOneRelation } from '@simonbackx/simple-database';
|
|
2
2
|
import { QueryableModel } from '@stamhoofd/sql';
|
|
3
3
|
import { ApiUser } from '@stamhoofd/structures';
|
|
4
|
-
import { RateLimiter } from '../helpers/RateLimiter';
|
|
5
4
|
import { User } from './';
|
|
6
5
|
export type TokenWithUser = Token & {
|
|
7
6
|
user: User;
|
|
8
7
|
};
|
|
9
|
-
export declare const apiUserRateLimiter: RateLimiter;
|
|
10
8
|
export declare class Token extends QueryableModel {
|
|
11
9
|
static table: string;
|
|
12
10
|
static MAX_DEVICES: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../../src/models/Token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../../src/models/Token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAqB,MAAM,uBAAuB,CAAC;AAInE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAcnD,qBAAa,KAAM,SAAQ,cAAc;IACrC,MAAM,CAAC,KAAK,SAAY;IACxB,MAAM,CAAC,WAAW,SAAM;IAGxB,MAAM,EAAE,MAAM,CAAC;IAIf,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,qBAAqB,EAAE,IAAI,CAAC;IAG5B,sBAAsB,EAAE,IAAI,CAAC;IAY7B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,MAAM,CAAC,IAAI,kCAAuC;IAElD,oBAAoB,IAAI,OAAO;WAIlB,mBAAmB,CAAC,IAAI,EAAE,IAAI;IAoB3C;;OAEG;WACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,UAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;WAmCnG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAqCxF;;;;OAIG;WACU,kBAAkB,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAWxF;;OAEG;WACU,kBAAkB,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;WAoC3E,WAAW,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;WAMpE,cAAc,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC;WAgBvE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAI7D"}
|
package/dist/src/models/Token.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Token =
|
|
3
|
+
exports.Token = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const simple_database_1 = require("@simonbackx/simple-database");
|
|
6
6
|
const sql_1 = require("@stamhoofd/sql");
|
|
7
7
|
const structures_1 = require("@stamhoofd/structures");
|
|
8
8
|
const crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
9
|
-
const RateLimiter_1 = require("../helpers/RateLimiter");
|
|
10
9
|
const _1 = require("./");
|
|
11
10
|
async function randomBytes(size) {
|
|
12
11
|
return new Promise((resolve, reject) => {
|
|
@@ -19,30 +18,6 @@ async function randomBytes(size) {
|
|
|
19
18
|
});
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
|
-
exports.apiUserRateLimiter = new RateLimiter_1.RateLimiter({
|
|
23
|
-
limits: [
|
|
24
|
-
{
|
|
25
|
-
// Block heavy bursts (5req/s for 5s)
|
|
26
|
-
limit: 25,
|
|
27
|
-
duration: 5 * 1000,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
// max 1req/s during 150s
|
|
31
|
-
limit: 150,
|
|
32
|
-
duration: 150 * 1000,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
// 1000 requests per hour
|
|
36
|
-
limit: 1000,
|
|
37
|
-
duration: 60 * 1000 * 60,
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
// 2000 requests per day
|
|
41
|
-
limit: 2000,
|
|
42
|
-
duration: 24 * 60 * 1000 * 60,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
});
|
|
46
21
|
class Token extends sql_1.QueryableModel {
|
|
47
22
|
static table = 'tokens';
|
|
48
23
|
static MAX_DEVICES = 15;
|
|
@@ -72,6 +47,7 @@ class Token extends sql_1.QueryableModel {
|
|
|
72
47
|
permissions: user.permissions,
|
|
73
48
|
expiresAt: lastToken?.accessTokenValidUntil ?? null,
|
|
74
49
|
createdAt: user.createdAt,
|
|
50
|
+
meta: user.meta,
|
|
75
51
|
});
|
|
76
52
|
}
|
|
77
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/models/Token.ts"],"names":[],"mappings":";;;;AAAA,iEAAkF;AAClF,wCAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../src/models/Token.ts"],"names":[],"mappings":";;;;AAAA,iEAAkF;AAClF,wCAAgD;AAChD,sDAAmE;AACnE,4DAA4B;AAG5B,yBAA0B;AAI1B,KAAK,UAAU,WAAW,CAAC,IAAY;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,gBAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,GAAW,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACX,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAa,KAAM,SAAQ,oBAAc;IACrC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;IAGxB,MAAM,CAAS;IAEf,UAAU;IAEV,WAAW,CAAS;IAGpB,YAAY,CAAS;IAGrB,qBAAqB,CAAO;IAG5B,sBAAsB,CAAO;IAY7B,SAAS,CAAO;IAUhB,SAAS,CAAO;IAEhB,MAAM,CAAC,IAAI,GAAG,IAAI,mCAAiB,CAAC,OAAI,EAAE,MAAM,CAAC,CAAC;IAElD,oBAAoB;QAChB,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;IAC/F,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAU;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,EAAE;SAClB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAEjB,OAAO,oBAAO,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,SAAS,EAAE,qBAAqB,IAAI,IAAI;YACnD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,gBAAgB,GAAG,KAAK;QACvE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0BAAQ,CAAC,MAAM,CAChC,UAAU,IAAI,CAAC,gBAAgB,EAAE,kBAC7B,IAAI,CAAC,KACT,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,EACtF,CAAC,WAAW,CAAC,CAChB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/G,gFAAgF;YAChF,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,OAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;QAEnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;IACV,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0BAAQ,CAAC,MAAM,CAChC,UAAU,IAAI,CAAC,gBAAgB,EAAE,KAAK,OAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAC/D,IAAI,CAAC,KACT,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,sCAAsC,EAClF,CAAC,YAAY,CAAC,CACjB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAC5C,2CAA2C;YAC3C,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,OAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC;QAEnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAiB,IAAO;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAElD,sDAAsD;QACtD,KAAK,CAAC,qBAAqB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QAC9E,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAiB,IAAO;QACnD,+CAA+C;QAE/C,qFAAqF;QACrF,4EAA4E;QAC5E,IAAI,CAAC;YACD,MAAM,CACF,IAAI,EACP,GAAG,MAAM,0BAAQ,CAAC,MAAM,CACrB,iBAAiB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,IAAI,iBAAiB,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,sFAAsF,EACrO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAChD,CAAC;YAEF,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,+FAA+F;YAC/F,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxD,KAAK,CAAC,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACzF,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/C,KAAK,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;QACtG,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEhD,KAAK,CAAC,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9E,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAiB,IAAO;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAiB,IAAO;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAElD,eAAe;QACf,KAAK,CAAC,qBAAqB,GAAG,IAAI,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3G,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE/C,KAAK,CAAC,sBAAsB,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1C,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAEhD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,YAAoB;QACtD,MAAM,KAAK,GAAG,eAAe,IAAI,CAAC,KAAK,wCAAwC,CAAC;QAChF,MAAM,0BAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;;AA/NL,sBAgOC;AA3NG;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;qCACpC;AAIf;IADC,IAAA,wBAAM,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;0CACtB;AAGpB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;2CACN;AAGrB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;oDACD;AAG5B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;qDACA;AAY7B;IAVC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,GAAS;YAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC;YACf,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;wCACc;AAUhB;IARC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU;YACxB,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,UAAU,EAAE,IAAI;KACnB,CAAC;wCACc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Webshop.d.ts","sourceRoot":"","sources":["../../../src/models/Webshop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAmB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI3I,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,qBAAa,OAAQ,SAAQ,cAAc;IACvC,MAAM,CAAC,KAAK,SAAc;IAQ1B,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAC;IAKvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAK7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKhC,GAAG,EAAE,MAAM,CAAC;IAKZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,IAAI,EAAE,eAAe,CAA8B;IAEnD;;OAEG;IAEH,WAAW,EAAE,sBAAsB,CAAqC;IAExE;;OAEG;IAEH,UAAU,EAAE,qBAAqB,CAAoC;IAErE;;OAEG;IAEH,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEzB;;OAEG;IAEH,UAAU,EAAE,QAAQ,EAAE,CAAM;IAY5B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,MAAM,CAAC,YAAY,kDAAuD;WAG7D,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;WAejF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;WAenD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAWjD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IA4BxF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG;QAAE,YAAY,EAAE,YAAY,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"Webshop.d.ts","sourceRoot":"","sources":["../../../src/models/Webshop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAmB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI3I,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,qBAAa,OAAQ,SAAQ,cAAc;IACvC,MAAM,CAAC,KAAK,SAAc;IAQ1B,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAC;IAKvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAK7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAKhC,GAAG,EAAE,MAAM,CAAC;IAKZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEhC;;OAEG;IAEH,IAAI,EAAE,eAAe,CAA8B;IAEnD;;OAEG;IAEH,WAAW,EAAE,sBAAsB,CAAqC;IAExE;;OAEG;IAEH,UAAU,EAAE,qBAAqB,CAAoC;IAErE;;OAEG;IAEH,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEzB;;OAEG;IAEH,UAAU,EAAE,QAAQ,EAAE,CAAM;IAY5B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,MAAM,CAAC,YAAY,kDAAuD;WAG7D,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;WAejF,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;WAenD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAWjD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IA4BxF,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG;QAAE,YAAY,EAAE,YAAY,CAAA;KAAE;IAgBhD,gBAAgB,CAAC,UAAU,UAAQ;CA2B5C"}
|
|
@@ -98,6 +98,9 @@ class Webshop extends sql_1.QueryableModel {
|
|
|
98
98
|
}
|
|
99
99
|
return this.domain;
|
|
100
100
|
}
|
|
101
|
+
if (!STAMHOOFD.domains.webshop) {
|
|
102
|
+
throw new Error('No webshop domains configured');
|
|
103
|
+
}
|
|
101
104
|
const domain = STAMHOOFD.domains.webshop[this.organization.address.country] ?? STAMHOOFD.domains.webshop[''];
|
|
102
105
|
return domain + '/' + this.uri;
|
|
103
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Webshop.js","sourceRoot":"","sources":["../../../src/models/Webshop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Webshop.js","sourceRoot":"","sources":["../../../src/models/Webshop.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stamhoofd/models",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.82.0",
|
|
4
4
|
"main": "./dist/src/index.js",
|
|
5
5
|
"types": "./dist/src/index.d.ts",
|
|
6
6
|
"license": "UNLICENCED",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "ce2a8fa52bc4881cc00f1c5d61c737cf19f3a62e"
|
|
34
34
|
}
|
|
@@ -452,10 +452,14 @@ export async function fillRecipientReplacements(recipient: Recipient, options: {
|
|
|
452
452
|
}
|
|
453
453
|
|
|
454
454
|
if (from || replyTo) {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
455
|
+
const fromAddress = replyTo?.email ?? from!.email;
|
|
456
|
+
|
|
457
|
+
if (fromAddress) {
|
|
458
|
+
recipient.replacements.push(Replacement.create({
|
|
459
|
+
token: 'fromAddress',
|
|
460
|
+
value: fromAddress,
|
|
461
|
+
}));
|
|
462
|
+
}
|
|
459
463
|
|
|
460
464
|
const name = replyTo?.name ?? from?.name;
|
|
461
465
|
if (name) {
|
|
@@ -4,7 +4,7 @@ export class RateLimitWindow {
|
|
|
4
4
|
start: Date = new Date();
|
|
5
5
|
windows: Map<string, number> = new Map();
|
|
6
6
|
|
|
7
|
-
limit: number
|
|
7
|
+
limit: Record<string, number>;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* in ms
|
|
@@ -12,10 +12,10 @@ export class RateLimitWindow {
|
|
|
12
12
|
duration: number;
|
|
13
13
|
|
|
14
14
|
constructor(options: {
|
|
15
|
-
limit: number;
|
|
15
|
+
limit: Record<string, number> | number;
|
|
16
16
|
duration: number;
|
|
17
17
|
}) {
|
|
18
|
-
this.limit = options.limit;
|
|
18
|
+
this.limit = typeof options.limit === 'number' ? { '': options.limit } : options.limit;
|
|
19
19
|
this.duration = options.duration;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -27,7 +27,14 @@ export class RateLimitWindow {
|
|
|
27
27
|
return Date.now() - this.start.getTime();
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
getLimit(category?: string) {
|
|
31
|
+
if (category) {
|
|
32
|
+
return this.limit[category] ?? this.limit[''] ?? 0;
|
|
33
|
+
}
|
|
34
|
+
return this.limit[''] ?? 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
track(key: string, amount = 1, category?: string) {
|
|
31
38
|
if (this.isExpired()) {
|
|
32
39
|
// We have a shared window
|
|
33
40
|
this.start = new Date();
|
|
@@ -37,11 +44,13 @@ export class RateLimitWindow {
|
|
|
37
44
|
let w = this.windows.get(key) ?? 0;
|
|
38
45
|
w += amount;
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
const limit = this.getLimit(category);
|
|
48
|
+
|
|
49
|
+
if (w > limit) {
|
|
41
50
|
const retryAfter = Math.ceil((this.duration - this.age) / 1000);
|
|
42
51
|
throw new SimpleError({
|
|
43
52
|
code: 'rate_limit',
|
|
44
|
-
message: `Rate limit exceeded (${w} ${amount > 1 ? '(' + amount + ' added)' : ''} requests in ${Math.round(this.age / 1000)}s). Retry after ${retryAfter}s. Check your code and try to reduce the number of (parallel) requests you make. Add waiting periods if needed
|
|
53
|
+
message: `Rate limit exceeded (${w} ${amount > 1 ? '(' + amount + ' added)' : ''} requests in ${Math.round(this.age / 1000)}s). Retry after ${retryAfter}s. Check your code and try to reduce the number of (parallel) requests you make. Add waiting periods if needed. Limit ${limit} ${category ?? ''}`,
|
|
45
54
|
human: `Oeps! Te veel aanvragen. Om spam te vermijden is jouw aanvraag tijdelijk geblokkeerd. Probeer het over ${retryAfter} seconden opnieuw.`,
|
|
46
55
|
statusCode: 429,
|
|
47
56
|
});
|
|
@@ -56,7 +65,7 @@ export class RateLimiter {
|
|
|
56
65
|
windows: RateLimitWindow[] = [];
|
|
57
66
|
|
|
58
67
|
constructor(options: {
|
|
59
|
-
limits: { duration: number; limit: number }[];
|
|
68
|
+
limits: { duration: number; limit: Record<string, number> | number }[];
|
|
60
69
|
}) {
|
|
61
70
|
for (const limit of options.limits) {
|
|
62
71
|
this.windows.push(new RateLimitWindow({
|
|
@@ -66,9 +75,9 @@ export class RateLimiter {
|
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
77
|
|
|
69
|
-
track(key: string, amount = 1) {
|
|
78
|
+
track(key: string, amount = 1, category?: string) {
|
|
70
79
|
for (const window of this.windows) {
|
|
71
|
-
window.track(key, amount);
|
|
80
|
+
window.track(key, amount, category);
|
|
72
81
|
}
|
|
73
82
|
}
|
|
74
83
|
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
INSERT INTO `email_templates` (`id`, `subject`, `groupId`, `webshopId`, `organizationId`, `type`, `text`, `html`, `json`, `updatedAt`, `createdAt`) VALUES
|
|
2
|
+
('48d7fb00-4e68-468b-97ec-1ce7b5bc4436', '', NULL, NULL, NULL, 'DefaultOrdersEmail', '{{greeting}}Met vriendelijke groeten,{{organizationName}}Overzicht{{orderDetailsTable}}{{orderTable}}\n\n \n \n \n \n Bestelling bekijken\n \n \n \n \n\nGebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.Wil je geen e-mails van {{organizationName}} meer ontvangen? Klik dan hier om uit te schrijven.', '<!DOCTYPE html>\n<html>\n\n<head>\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n<title></title>\n<style type=\"text/css\">body {\n color: #000716;\n color: var(--color-dark, #000716);\n font-family: -apple-system-body, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 12pt;\n line-height: 1.4;\n}\n\np {\n margin: 0;\n padding: 0;\n line-height: 1.4;\n}\n\np.description {\n color: var(--color-gray-4, #5e5e5e);\n}\np.description a, p.description a:link, p.description a:visited, p.description a:active, p.description a:hover {\n text-decoration: underline;\n color: var(--color-gray-4, #5e5e5e);\n}\n\nstrong {\n font-weight: bold;\n}\n\nem {\n font-style: italic;\n}\n\nh1 {\n font-size: 30px;\n font-weight: bold;\n line-height: 1.2;\n margin: 0;\n padding: 0;\n}\n@media (max-width: 350px) {\n h1 {\n font-size: 24px;\n }\n}\n\nh2 {\n font-size: 20px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh3 {\n font-size: 16px;\n line-height: 1.2;\n font-weight: bold;\n margin: 0;\n padding: 0;\n}\n\nh4 {\n line-height: 1.2;\n font-weight: 500;\n margin: 0;\n padding: 0;\n}\n\nol, ul {\n list-style-position: outside;\n padding-left: 30px;\n}\n\nhr {\n height: 1px;\n background: var(--color-border, var(--color-gray-2, #dcdcdc));\n border-radius: 1px;\n padding: 0;\n margin: 20px 0;\n outline: none;\n border: 0;\n}\n\n.button {\n touch-action: inherit;\n user-select: auto;\n cursor: pointer;\n display: inline-block !important;\n line-height: 42px;\n font-size: 16px;\n font-weight: bold;\n}\n.button:active {\n transform: none;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n}\n\na, a:link, a:visited, a:active, a:hover {\n text-decoration: underline;\n color: blue;\n}\n\n.email-data-table {\n width: 100%;\n border-collapse: collapse;\n}\n.email-data-table th, .email-data-table td {\n text-align: left;\n padding: 10px 10px 10px 0;\n border-bottom: 1px solid var(--color-border, var(--color-gray-2, #dcdcdc));\n vertical-align: middle;\n}\n.email-data-table th:last-child, .email-data-table td:last-child {\n text-align: right;\n padding-right: 0;\n}\n.email-data-table thead {\n font-weight: bold;\n}\n.email-data-table thead th {\n font-size: 10pt;\n}\n.email-data-table h4 ~ p {\n padding-top: 3px;\n opacity: 0.8;\n font-size: 11pt;\n}\n\n.email-style-inline-code {\n font-family: monospace;\n white-space: pre-wrap;\n display: inline-block;\n}\n\n.email-style-description-small {\n font-size: 14px;\n line-height: 1.5;\n font-weight: normal;\n color: var(--color-gray-4, #5e5e5e);\n font-variation-settings: \"opsz\" 19;\n}\n\n.email-style-title-list {\n font-size: 16px;\n line-height: 1.3;\n font-weight: 500;\n}\n.email-style-title-list + p {\n padding-top: 3px;\n}\n\n.email-style-title-prefix-list {\n font-size: 11px;\n line-height: 1.5;\n font-weight: bold;\n color: {{primaryColor}};\n text-transform: uppercase;\n margin-bottom: 3px;\n}\n.email-style-title-prefix-list.error {\n color: #f0153d;\n}\n\n.email-style-price-base, .email-style-discount-price, .email-style-discount-old-price, .email-style-price {\n font-size: 15px;\n line-height: 1.4;\n font-weight: 500;\n font-variant-numeric: tabular-nums;\n}\n.email-style-price-base.disabled, .disabled.email-style-discount-price, .disabled.email-style-discount-old-price, .disabled.email-style-price {\n opacity: 0.6;\n}\n.email-style-price-base.negative, .negative.email-style-discount-price, .negative.email-style-discount-old-price, .negative.email-style-price {\n color: #f0153d;\n}\n\n.email-style-price {\n font-weight: bold;\n color: {{primaryColor}};\n}\n\n.email-style-discount-old-price {\n text-decoration: line-through;\n color: var(--color-gray-4, #5e5e5e);\n}\n\n.email-style-discount-price {\n font-weight: bold;\n color: #ff4747;\n margin-left: 5px;\n}\n\n.pre-wrap {\n white-space: pre-wrap;\n} hr {height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;} .button.primary { margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity; } .button.primary:active { transform: scale(0.95, 0.95); } .inline-link, .inline-link:link, .inline-link:visited, .inline-link:active, .inline-link:hover { margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation; } .inline-link:active { opacity: 0.5; } .description { color: #5e5e5e; } </style>\n</head>\n\n<body>\n<p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{greeting}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">Met vriendelijke groeten,</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\">{{organizationName}}</p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><hr style=\"height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;\"><h2 style=\"margin: 0; padding: 0;\">Overzicht</h2><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartVariableBlock\" data-id=\"orderDetailsTable\">{{orderDetailsTable}}</div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartVariableBlock\" data-id=\"orderTable\">{{orderTable}}</div><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><div data-type=\"smartButton\" data-id=\"orderUrl\"><table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 5px 0;\">\n<tbody><tr>\n <td>\n <table cellspacing=\"0\" cellpadding=\"0\">\n <tbody><tr>\n <td style=\"border-radius: 7px;\" bgcolor=\"{{primaryColor}}\">\n <a class=\"button primary\" href=\"{{orderUrl}}\" target=\"\" style=\"margin: 0; text-decoration: none; font-size: 16px; font-weight: bold; color: {{primaryColorContrast}}; padding: 0 27px; line-height: 42px; background: {{primaryColor}}; text-align: center; border-radius: 7px; touch-action: manipulation; display: inline-block; transition: 0.2s transform, 0.2s opacity;\">Bestelling bekijken</a>\n </td>\n </tr>\n </tbody></table>\n </td>\n</tr>\n</tbody></table></div><p class=\"description\" style=\"color: #5e5e5e;\"><em>Gebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.</em></p><p style=\"margin: 0; padding: 0; line-height: 1.4;\"><br></p><hr style=\"height: 2px;background: #e7e7e7; border-radius: 1px; padding: 0; margin: 20px 0; outline: none; border: 0;\"><p class=\"description\" style=\"color: #5e5e5e;\">Wil je geen e-mails van {{organizationName}} meer ontvangen? <a class=\"inline-link\" href=\"{{unsubscribeUrl}}\" target=\"\" style=\"margin: 0; text-decoration: underline; font-size: inherit; font-weight: inherit; color: inherit; touch-action: manipulation;\">Klik dan hier om uit te schrijven</a>.</p>\n</body>\n\n</html>', '{\"value\": {\"type\": \"doc\", \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"greeting\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\", \"content\": [{\"text\": \"Met vriendelijke groeten,\", \"type\": \"text\"}]}, {\"type\": \"paragraph\", \"content\": [{\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}]}, {\"type\": \"paragraph\"}, {\"type\": \"horizontalRule\"}, {\"type\": \"heading\", \"attrs\": {\"level\": 2}, \"content\": [{\"text\": \"Overzicht\", \"type\": \"text\"}]}, {\"type\": \"paragraph\"}, {\"type\": \"smartVariableBlock\", \"attrs\": {\"id\": \"orderDetailsTable\"}}, {\"type\": \"paragraph\"}, {\"type\": \"paragraph\"}, {\"type\": \"smartVariableBlock\", \"attrs\": {\"id\": \"orderTable\"}}, {\"type\": \"paragraph\"}, {\"type\": \"smartButton\", \"attrs\": {\"id\": \"orderUrl\"}, \"content\": [{\"text\": \"Bestelling bekijken\", \"type\": \"text\"}]}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Gebruik de bovenstaande knop om de gegevens van jouw bestelling na te kijken.\", \"type\": \"text\", \"marks\": [{\"type\": \"italic\"}]}]}, {\"type\": \"paragraph\"}, {\"type\": \"horizontalRule\"}, {\"type\": \"descriptiveText\", \"content\": [{\"text\": \"Wil je geen e-mails van \", \"type\": \"text\"}, {\"type\": \"smartVariable\", \"attrs\": {\"id\": \"organizationName\"}}, {\"text\": \" meer ontvangen? \", \"type\": \"text\"}, {\"type\": \"smartButtonInline\", \"attrs\": {\"id\": \"unsubscribeUrl\"}, \"content\": [{\"text\": \"Klik dan hier om uit te schrijven\", \"type\": \"text\"}]}, {\"text\": \".\", \"type\": \"text\"}]}]}, \"version\": 368}', '2025-03-27 10:13:00', '2025-03-27 10:13:00');
|
package/src/models/Token.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { column, Database, ManyToOneRelation } from '@simonbackx/simple-database';
|
|
2
2
|
import { QueryableModel } from '@stamhoofd/sql';
|
|
3
|
-
import { ApiUser } from '@stamhoofd/structures';
|
|
3
|
+
import { ApiUser, ApiUserRateLimits } from '@stamhoofd/structures';
|
|
4
4
|
import crypto from 'crypto';
|
|
5
5
|
|
|
6
6
|
import { RateLimiter } from '../helpers/RateLimiter';
|
|
@@ -20,31 +20,6 @@ async function randomBytes(size: number): Promise<Buffer> {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export const apiUserRateLimiter = new RateLimiter({
|
|
24
|
-
limits: [
|
|
25
|
-
{
|
|
26
|
-
// Block heavy bursts (5req/s for 5s)
|
|
27
|
-
limit: 25,
|
|
28
|
-
duration: 5 * 1000,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
// max 1req/s during 150s
|
|
32
|
-
limit: 150,
|
|
33
|
-
duration: 150 * 1000,
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
// 1000 requests per hour
|
|
37
|
-
limit: 1000,
|
|
38
|
-
duration: 60 * 1000 * 60,
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
// 2000 requests per day
|
|
42
|
-
limit: 2000,
|
|
43
|
-
duration: 24 * 60 * 1000 * 60,
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
});
|
|
47
|
-
|
|
48
23
|
export class Token extends QueryableModel {
|
|
49
24
|
static table = 'tokens';
|
|
50
25
|
static MAX_DEVICES = 15;
|
|
@@ -109,6 +84,7 @@ export class Token extends QueryableModel {
|
|
|
109
84
|
permissions: user.permissions,
|
|
110
85
|
expiresAt: lastToken?.accessTokenValidUntil ?? null,
|
|
111
86
|
createdAt: user.createdAt,
|
|
87
|
+
meta: user.meta,
|
|
112
88
|
});
|
|
113
89
|
}
|
|
114
90
|
|
package/src/models/Webshop.ts
CHANGED
|
@@ -173,6 +173,10 @@ export class Webshop extends QueryableModel {
|
|
|
173
173
|
return this.domain;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
if (!STAMHOOFD.domains.webshop) {
|
|
177
|
+
throw new Error('No webshop domains configured');
|
|
178
|
+
}
|
|
179
|
+
|
|
176
180
|
const domain = STAMHOOFD.domains.webshop[this.organization.address.country] ?? STAMHOOFD.domains.webshop[''];
|
|
177
181
|
return domain + '/' + this.uri;
|
|
178
182
|
}
|