@saltcorn/data 1.4.4 → 1.4.5
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/base-plugin/index.d.ts +243 -243
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +13 -1
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/models/metadata.d.ts +2 -1
- package/dist/models/metadata.d.ts.map +1 -1
- package/dist/models/metadata.js +5 -0
- package/dist/models/metadata.js.map +1 -1
- package/package.json +8 -8
- package/dist/migrations/202510110312.d.ts +0 -3
- package/dist/migrations/202510110312.d.ts.map +0 -1
- package/dist/migrations/202510110312.js +0 -37
- package/dist/migrations/202510110312.js.map +0 -1
- package/dist/migrations/202511081024.d.ts +0 -2
- package/dist/migrations/202511081024.d.ts.map +0 -1
- package/dist/migrations/202511081024.js +0 -4
- package/dist/migrations/202511081024.js.map +0 -1
- package/dist/migrations/202603101553.d.ts +0 -4
- package/dist/migrations/202603101553.d.ts.map +0 -1
- package/dist/migrations/202603101553.js +0 -22
- package/dist/migrations/202603101553.js.map +0 -1
- package/dist/mobile-mocks/models/internal/mail_queue.d.ts +0 -1
- package/dist/mobile-mocks/models/internal/mail_queue.d.ts.map +0 -1
- package/dist/mobile-mocks/models/internal/mail_queue.js +0 -2
- package/dist/mobile-mocks/models/internal/mail_queue.js.map +0 -1
- package/dist/mobile-mocks/node/assert.d.ts +0 -1
- package/dist/mobile-mocks/node/assert.d.ts.map +0 -1
- package/dist/mobile-mocks/node/assert.js +0 -2
- package/dist/mobile-mocks/node/assert.js.map +0 -1
- package/dist/mobile-mocks/npm/apns2.d.ts +0 -1
- package/dist/mobile-mocks/npm/apns2.d.ts.map +0 -1
- package/dist/mobile-mocks/npm/apns2.js +0 -2
- package/dist/mobile-mocks/npm/apns2.js.map +0 -1
- package/dist/mobile-mocks/npm/dockerode.d.ts +0 -1
- package/dist/mobile-mocks/npm/dockerode.d.ts.map +0 -1
- package/dist/mobile-mocks/npm/dockerode.js +0 -2
- package/dist/mobile-mocks/npm/dockerode.js.map +0 -1
- package/dist/mobile-mocks/npm/vm2.d.ts +0 -1
- package/dist/mobile-mocks/npm/vm2.d.ts.map +0 -1
- package/dist/mobile-mocks/npm/vm2.js +0 -2
- package/dist/mobile-mocks/npm/vm2.js.map +0 -1
- package/dist/mobile-mocks/npm/xml2js.d.ts +0 -1
- package/dist/mobile-mocks/npm/xml2js.d.ts.map +0 -1
- package/dist/mobile-mocks/npm/xml2js.js +0 -2
- package/dist/mobile-mocks/npm/xml2js.js.map +0 -1
- package/dist/models/internal/mail_queue.d.ts +0 -24
- package/dist/models/internal/mail_queue.d.ts.map +0 -1
- package/dist/models/internal/mail_queue.js +0 -172
- package/dist/models/internal/mail_queue.js.map +0 -1
- package/dist/models/internal/s3_helpers.d.ts +0 -54
- package/dist/models/internal/s3_helpers.d.ts.map +0 -1
- package/dist/models/internal/s3_helpers.js +0 -561
- package/dist/models/internal/s3_helpers.js.map +0 -1
- package/dist/viewable_fields.d.ts +0 -227
- package/dist/viewable_fields.d.ts.map +0 -1
- package/dist/viewable_fields.js +0 -1928
- package/dist/viewable_fields.js.map +0 -1
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MailQueue = void 0;
|
|
4
|
-
const db = require("../../db");
|
|
5
|
-
const { getState } = require("../../db/state");
|
|
6
|
-
const buildSingleMail = (notification, recipient) => {
|
|
7
|
-
const state = getState();
|
|
8
|
-
state.log(6, `Building single mail for notification id: '${notification.id}`);
|
|
9
|
-
const email = {
|
|
10
|
-
from: state?.getConfig("email_from"),
|
|
11
|
-
to: recipient,
|
|
12
|
-
subject: notification.title,
|
|
13
|
-
text: `${notification.body}${notification.link ? `\n${notification.link}` : ""}`,
|
|
14
|
-
html: `${notification.body}<br/>${notification.link
|
|
15
|
-
? `<a href="${notification.link}" style="color: #1a73e8;">${notification.link}</a>`
|
|
16
|
-
: ""}`,
|
|
17
|
-
};
|
|
18
|
-
return email;
|
|
19
|
-
};
|
|
20
|
-
const buildCombinedMail = (notifications, recipient) => {
|
|
21
|
-
const state = getState();
|
|
22
|
-
state.log(6, `Building combined mail for notification ids: '${notifications.map((n) => n.id).join(", ")}'`);
|
|
23
|
-
let combinedText = "";
|
|
24
|
-
let combinedHtml = "";
|
|
25
|
-
for (const notification of notifications) {
|
|
26
|
-
const formattedDate = new Date(notification.created).toLocaleString(); // nice local format
|
|
27
|
-
combinedText += `${formattedDate}\n${notification.title}\n${notification.body}\n${notification.link}\n\n`;
|
|
28
|
-
combinedHtml += `
|
|
29
|
-
<div style="margin-bottom: 1.5em; font-family: Arial, sans-serif;">
|
|
30
|
-
<div style="font-size: 0.85em; color: #888;">${formattedDate}</div>
|
|
31
|
-
<h2 style="margin: 0.2em 0;">${notification.title}</h2>
|
|
32
|
-
<div>${notification.body}</div>
|
|
33
|
-
${notification.link
|
|
34
|
-
? `<div style="margin-top: 0.5em;">
|
|
35
|
-
<a href="${notification.link}" style="color: #1a73e8;">${notification.link}</a>
|
|
36
|
-
</div>`
|
|
37
|
-
: ""}
|
|
38
|
-
</div>
|
|
39
|
-
`;
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
from: state?.getConfig("email_from"),
|
|
43
|
-
to: recipient,
|
|
44
|
-
subject: "You have new notifications",
|
|
45
|
-
text: combinedText,
|
|
46
|
-
html: combinedHtml,
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Mail Queue class
|
|
51
|
-
*/
|
|
52
|
-
class MailQueue {
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
* @param notification Notification
|
|
56
|
-
*/
|
|
57
|
-
static async handleNotification(notification, user) {
|
|
58
|
-
await db.openOrUseTransaction(async () => {
|
|
59
|
-
const minDelay = getState().getConfig("mail_throttle_per_user", 30) * 1000;
|
|
60
|
-
if (!minDelay || minDelay <= 0) {
|
|
61
|
-
// send immediately
|
|
62
|
-
await MailQueue.send(buildSingleMail(notification, user.email));
|
|
63
|
-
await MailQueue.setSendStatus([notification.id], "sent");
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
const rows = await MailQueue.loadNotifications(notification.user_id);
|
|
67
|
-
if (rows.find((n) => n.send_status === "pending")) {
|
|
68
|
-
// sending was scheduled, set to pending
|
|
69
|
-
await MailQueue.setSendStatus([notification.id], "pending");
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
// check if delay has passed or schedule the next send
|
|
73
|
-
const passedDelay = MailQueue.getPassedDelay(rows);
|
|
74
|
-
if (passedDelay >= minDelay) {
|
|
75
|
-
// intervall passed - send now
|
|
76
|
-
await MailQueue.send(buildSingleMail(notification, user.email));
|
|
77
|
-
await MailQueue.setSendStatus([notification.id], "sent");
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
// schedule
|
|
81
|
-
await MailQueue.setSendStatus([notification.id], "pending");
|
|
82
|
-
MailQueue.scheduleSend(minDelay - passedDelay, user);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* calc time since last sent
|
|
90
|
-
* @param notifications
|
|
91
|
-
* @returns
|
|
92
|
-
*/
|
|
93
|
-
static getPassedDelay(notifications) {
|
|
94
|
-
let lastSendTimestamp = null;
|
|
95
|
-
for (const row of notifications) {
|
|
96
|
-
if (row.send_status === "sent" &&
|
|
97
|
-
row.created &&
|
|
98
|
-
(!lastSendTimestamp || row.created > lastSendTimestamp)) {
|
|
99
|
-
lastSendTimestamp = row.created;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return lastSendTimestamp
|
|
103
|
-
? new Date().valueOf() - lastSendTimestamp.valueOf()
|
|
104
|
-
: Infinity;
|
|
105
|
-
}
|
|
106
|
-
static async emptyQueue(user) {
|
|
107
|
-
return await db.whenTransactionisFree(async () => {
|
|
108
|
-
const rows = await MailQueue.loadNotifications(user.id, "pending");
|
|
109
|
-
if (rows.length > 0) {
|
|
110
|
-
await MailQueue.send(rows.length === 1
|
|
111
|
-
? buildSingleMail(rows[0], user.email)
|
|
112
|
-
: buildCombinedMail(rows, user.email));
|
|
113
|
-
await MailQueue.setSendStatus(rows.map((r) => r.id), "sent");
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
console.log("No pending notifications for user", user.email);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
static async loadNotifications(userId, sendStatus) {
|
|
121
|
-
const dateLimit = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
|
|
122
|
-
const rows = await db.select("_sc_notifications", {
|
|
123
|
-
user_id: userId,
|
|
124
|
-
created: { gt: !db.isSQLite ? dateLimit : dateLimit.valueOf() },
|
|
125
|
-
...(sendStatus ? { send_status: sendStatus } : {}),
|
|
126
|
-
}, {
|
|
127
|
-
...(!db.isSQLite ? { forupdate: true } : {}),
|
|
128
|
-
orderBy: "id",
|
|
129
|
-
});
|
|
130
|
-
return rows;
|
|
131
|
-
}
|
|
132
|
-
static scheduleSend(delay, user) {
|
|
133
|
-
setTimeout(() => MailQueue.emptyQueue(user), delay);
|
|
134
|
-
}
|
|
135
|
-
static async setSendStatus(notificationIds, status) {
|
|
136
|
-
const schema = db.getTenantSchemaPrefix();
|
|
137
|
-
const now = new Date();
|
|
138
|
-
if (status === "sent") {
|
|
139
|
-
if (!db.isSQLite) {
|
|
140
|
-
// pg
|
|
141
|
-
await db.query(`UPDATE ${schema}_sc_notifications SET send_status=$1, created=$2 WHERE id = ANY($3)`, [status, now, notificationIds]);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
// sqlite
|
|
145
|
-
await db.query(`UPDATE _sc_notifications
|
|
146
|
-
SET send_status = ?, created = ?
|
|
147
|
-
WHERE id IN (${notificationIds.map(() => "?").join(",")})`, [status, now.valueOf(), ...notificationIds]);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
if (!db.isSQLite) {
|
|
152
|
-
//pg
|
|
153
|
-
await db.query(`UPDATE ${schema}_sc_notifications SET send_status=$1 WHERE id = ANY($2)`, [status, notificationIds]);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
// sqlite
|
|
157
|
-
await db.query(`UPDATE _sc_notifications
|
|
158
|
-
SET send_status = ?
|
|
159
|
-
WHERE id IN (${notificationIds.map(() => "?").join(",")})`, [status, ...notificationIds]);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
static async send(email) {
|
|
164
|
-
const state = getState();
|
|
165
|
-
const emailModule = require("../email");
|
|
166
|
-
(await emailModule.getMailTransport())
|
|
167
|
-
.sendMail(email)
|
|
168
|
-
.catch((e) => state?.log(1, e.message));
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
exports.MailQueue = MailQueue;
|
|
172
|
-
//# sourceMappingURL=mail_queue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mail_queue.js","sourceRoot":"","sources":["../../../models/internal/mail_queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { S3 } from "@aws-sdk/client-s3";
|
|
2
|
-
type MetadataInput = {
|
|
3
|
-
min_role_read?: number;
|
|
4
|
-
user_id?: number;
|
|
5
|
-
mime_super?: string;
|
|
6
|
-
mime_sub?: string;
|
|
7
|
-
filename?: string;
|
|
8
|
-
};
|
|
9
|
-
type MetadataOutput = MetadataInput;
|
|
10
|
-
export type S3ListResult = {
|
|
11
|
-
key: string;
|
|
12
|
-
relativePath: string;
|
|
13
|
-
size: number;
|
|
14
|
-
lastModified?: Date;
|
|
15
|
-
};
|
|
16
|
-
export type S3HeadResult = S3ListResult & {
|
|
17
|
-
metadata: MetadataOutput;
|
|
18
|
-
contentType?: string;
|
|
19
|
-
};
|
|
20
|
-
export declare const isS3Enabled: () => boolean;
|
|
21
|
-
export declare const relativeKeyToPath: (key: string) => string;
|
|
22
|
-
export declare const buildKeyFromRelative: (relPath?: string) => string;
|
|
23
|
-
export declare const getResolvedBucket: () => string | undefined;
|
|
24
|
-
export declare const getS3Client: () => S3;
|
|
25
|
-
export declare const listS3Folder: (folder?: string, opts?: {
|
|
26
|
-
recursive?: boolean;
|
|
27
|
-
}) => Promise<{
|
|
28
|
-
files: S3ListResult[];
|
|
29
|
-
directories: string[];
|
|
30
|
-
}>;
|
|
31
|
-
export declare const headObject: (relPath: string) => Promise<S3HeadResult | null>;
|
|
32
|
-
export declare const setObjectMetadata: (relPath: string, metadata: MetadataInput) => Promise<void>;
|
|
33
|
-
export declare const copyObject: (fromRelPath: string, toRelPath: string, opts?: {
|
|
34
|
-
metadata?: MetadataInput;
|
|
35
|
-
}) => Promise<void>;
|
|
36
|
-
export declare const deleteObject: (relPath: string) => Promise<void>;
|
|
37
|
-
export declare const uploadBuffer: (relPath: string, buffer: Buffer, mimetype: string, metadata: MetadataInput) => Promise<void>;
|
|
38
|
-
export declare const downloadBuffer: (relPath: string) => Promise<Buffer>;
|
|
39
|
-
export declare const getSignedFileUrl: (relPath: string, opts?: {
|
|
40
|
-
download?: boolean;
|
|
41
|
-
filename?: string;
|
|
42
|
-
expiresIn?: number;
|
|
43
|
-
}) => Promise<string>;
|
|
44
|
-
export declare const getPublicFileUrl: (relPath: string, opts?: {
|
|
45
|
-
download?: boolean;
|
|
46
|
-
filename?: string;
|
|
47
|
-
}) => string;
|
|
48
|
-
export declare const getServeUrl: (relPath: string, opts?: {
|
|
49
|
-
download?: boolean;
|
|
50
|
-
filename?: string;
|
|
51
|
-
}) => Promise<string>;
|
|
52
|
-
export declare const publicUrlToRelativePath: (url?: string) => string | null;
|
|
53
|
-
export {};
|
|
54
|
-
//# sourceMappingURL=s3_helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s3_helpers.d.ts","sourceRoot":"","sources":["../../../models/internal/s3_helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAOL,EAAE,EACH,MAAM,oBAAoB,CAAC;AAmB5B,KAAK,aAAa,GAAG;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,cAAc,GAAG,aAAa,CAAC;AAEpC,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA8IF,eAAO,MAAM,WAAW,QAAO,OACwB,CAAC;AAWxD,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,MAM/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,MAMvD,CAAC;AAcF,eAAO,MAAM,iBAAiB,QAAO,MAAM,GAAG,SAG7C,CAAC;AAUF,eAAO,MAAM,WAAW,QAAO,EAyD9B,CAAC;AA0CF,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,OAAM;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,KACjC,OAAO,CAAC;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAkF1D,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,SAAS,MAAM,KACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAuB7B,CAAC;AAuBF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,UAAU,aAAa,kBAKxB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,aAAa,MAAM,EACnB,WAAW,MAAM,EACjB,OAAM;IAAE,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAO,kBAWxC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,SAAS,MAAM,kBAKjD,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,UAAU,aAAa,kBAcxB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAWpE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,OAAM;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,KACvE,OAAO,CAAC,MAAM,CAgBhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,EACf,OAAM;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KACnD,MAcF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,OAAM;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KACnD,OAAO,CAAC,MAAM,CAMhB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,IAqC/D,CAAC"}
|