@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.
Files changed (58) hide show
  1. package/dist/base-plugin/index.d.ts +243 -243
  2. package/dist/base-plugin/index.d.ts.map +1 -1
  3. package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
  4. package/dist/base-plugin/viewtemplates/list.js +13 -1
  5. package/dist/base-plugin/viewtemplates/list.js.map +1 -1
  6. package/dist/models/metadata.d.ts +2 -1
  7. package/dist/models/metadata.d.ts.map +1 -1
  8. package/dist/models/metadata.js +5 -0
  9. package/dist/models/metadata.js.map +1 -1
  10. package/package.json +8 -8
  11. package/dist/migrations/202510110312.d.ts +0 -3
  12. package/dist/migrations/202510110312.d.ts.map +0 -1
  13. package/dist/migrations/202510110312.js +0 -37
  14. package/dist/migrations/202510110312.js.map +0 -1
  15. package/dist/migrations/202511081024.d.ts +0 -2
  16. package/dist/migrations/202511081024.d.ts.map +0 -1
  17. package/dist/migrations/202511081024.js +0 -4
  18. package/dist/migrations/202511081024.js.map +0 -1
  19. package/dist/migrations/202603101553.d.ts +0 -4
  20. package/dist/migrations/202603101553.d.ts.map +0 -1
  21. package/dist/migrations/202603101553.js +0 -22
  22. package/dist/migrations/202603101553.js.map +0 -1
  23. package/dist/mobile-mocks/models/internal/mail_queue.d.ts +0 -1
  24. package/dist/mobile-mocks/models/internal/mail_queue.d.ts.map +0 -1
  25. package/dist/mobile-mocks/models/internal/mail_queue.js +0 -2
  26. package/dist/mobile-mocks/models/internal/mail_queue.js.map +0 -1
  27. package/dist/mobile-mocks/node/assert.d.ts +0 -1
  28. package/dist/mobile-mocks/node/assert.d.ts.map +0 -1
  29. package/dist/mobile-mocks/node/assert.js +0 -2
  30. package/dist/mobile-mocks/node/assert.js.map +0 -1
  31. package/dist/mobile-mocks/npm/apns2.d.ts +0 -1
  32. package/dist/mobile-mocks/npm/apns2.d.ts.map +0 -1
  33. package/dist/mobile-mocks/npm/apns2.js +0 -2
  34. package/dist/mobile-mocks/npm/apns2.js.map +0 -1
  35. package/dist/mobile-mocks/npm/dockerode.d.ts +0 -1
  36. package/dist/mobile-mocks/npm/dockerode.d.ts.map +0 -1
  37. package/dist/mobile-mocks/npm/dockerode.js +0 -2
  38. package/dist/mobile-mocks/npm/dockerode.js.map +0 -1
  39. package/dist/mobile-mocks/npm/vm2.d.ts +0 -1
  40. package/dist/mobile-mocks/npm/vm2.d.ts.map +0 -1
  41. package/dist/mobile-mocks/npm/vm2.js +0 -2
  42. package/dist/mobile-mocks/npm/vm2.js.map +0 -1
  43. package/dist/mobile-mocks/npm/xml2js.d.ts +0 -1
  44. package/dist/mobile-mocks/npm/xml2js.d.ts.map +0 -1
  45. package/dist/mobile-mocks/npm/xml2js.js +0 -2
  46. package/dist/mobile-mocks/npm/xml2js.js.map +0 -1
  47. package/dist/models/internal/mail_queue.d.ts +0 -24
  48. package/dist/models/internal/mail_queue.d.ts.map +0 -1
  49. package/dist/models/internal/mail_queue.js +0 -172
  50. package/dist/models/internal/mail_queue.js.map +0 -1
  51. package/dist/models/internal/s3_helpers.d.ts +0 -54
  52. package/dist/models/internal/s3_helpers.d.ts.map +0 -1
  53. package/dist/models/internal/s3_helpers.js +0 -561
  54. package/dist/models/internal/s3_helpers.js.map +0 -1
  55. package/dist/viewable_fields.d.ts +0 -227
  56. package/dist/viewable_fields.d.ts.map +0 -1
  57. package/dist/viewable_fields.js +0 -1928
  58. 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"}