@builder6/rooms 0.10.7 → 0.11.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/emails/UnreadMention.d.ts +9 -0
- package/dist/emails/UnreadMention.js +54 -0
- package/dist/emails/UnreadMention.js.map +1 -0
- package/dist/emails/UnreadReplies.d.ts +9 -0
- package/dist/emails/UnreadReplies.js +68 -0
- package/dist/emails/UnreadReplies.js.map +1 -0
- package/dist/emails/_components/comment.d.ts +1 -0
- package/dist/emails/_components/comment.js +32 -0
- package/dist/emails/_components/comment.js.map +1 -0
- package/dist/emails/_components/header.d.ts +2 -0
- package/dist/emails/_components/header.js +15 -0
- package/dist/emails/_components/header.js.map +1 -0
- package/dist/emails/_components/headline.d.ts +5 -0
- package/dist/emails/_components/headline.js +17 -0
- package/dist/emails/_components/headline.js.map +1 -0
- package/dist/emails/_components/layout.d.ts +5 -0
- package/dist/emails/_components/layout.js +24 -0
- package/dist/emails/_components/layout.js.map +1 -0
- package/dist/emails/_lib/types.d.ts +9 -0
- package/dist/emails/_lib/types.js +3 -0
- package/dist/emails/_lib/types.js.map +1 -0
- package/dist/emails/_styles/colors.d.ts +2 -0
- package/dist/emails/_styles/colors.js +7 -0
- package/dist/emails/_styles/colors.js.map +1 -0
- package/dist/emails/_utils/cn.d.ts +2 -0
- package/dist/emails/_utils/cn.js +10 -0
- package/dist/emails/_utils/cn.js.map +1 -0
- package/dist/emails/_utils/comments.d.ts +7 -0
- package/dist/emails/_utils/comments.js +29 -0
- package/dist/emails/_utils/comments.js.map +1 -0
- package/dist/emails/_utils/getProps.d.ts +1 -0
- package/dist/emails/_utils/getProps.js +11 -0
- package/dist/emails/_utils/getProps.js.map +1 -0
- package/dist/rooms/app.controller.d.ts +3 -1
- package/dist/rooms/app.controller.js +61 -46
- package/dist/rooms/app.controller.js.map +1 -1
- package/dist/rooms/emailNotification.service.d.ts +17 -0
- package/dist/rooms/emailNotification.service.js +113 -0
- package/dist/rooms/emailNotification.service.js.map +1 -0
- package/dist/rooms/emails/comment-body.d.ts +44 -0
- package/dist/rooms/emails/comment-body.js +138 -0
- package/dist/rooms/emails/comment-body.js.map +1 -0
- package/dist/rooms/emails/comment-with-body.d.ts +6 -0
- package/dist/rooms/emails/comment-with-body.js +17 -0
- package/dist/rooms/emails/comment-with-body.js.map +1 -0
- package/dist/rooms/emails/index.d.ts +4 -0
- package/dist/rooms/emails/index.js +7 -0
- package/dist/rooms/emails/index.js.map +1 -0
- package/dist/rooms/emails/lib/batch-users-resolver.d.ts +9 -0
- package/dist/rooms/emails/lib/batch-users-resolver.js +67 -0
- package/dist/rooms/emails/lib/batch-users-resolver.js.map +1 -0
- package/dist/rooms/emails/lib/css-properties.d.ts +3 -0
- package/dist/rooms/emails/lib/css-properties.js +96 -0
- package/dist/rooms/emails/lib/css-properties.js.map +1 -0
- package/dist/rooms/emails/lib/warning.d.ts +1 -0
- package/dist/rooms/emails/lib/warning.js +20 -0
- package/dist/rooms/emails/lib/warning.js.map +1 -0
- package/dist/rooms/emails/thread-notification.d.ts +90 -0
- package/dist/rooms/emails/thread-notification.js +297 -0
- package/dist/rooms/emails/thread-notification.js.map +1 -0
- package/dist/rooms/globals/augmentation.d.ts +0 -5
- package/dist/rooms/lib/utils.js +21 -10
- package/dist/rooms/lib/utils.js.map +1 -1
- package/dist/rooms/liveblocks.service.d.ts +16 -0
- package/dist/rooms/liveblocks.service.js +54 -0
- package/dist/rooms/liveblocks.service.js.map +1 -0
- package/dist/rooms/notifications.service.d.ts +4 -0
- package/dist/rooms/notifications.service.js +107 -80
- package/dist/rooms/notifications.service.js.map +1 -1
- package/dist/rooms/rooms.controller.d.ts +6 -4
- package/dist/rooms/rooms.controller.js +323 -244
- package/dist/rooms/rooms.controller.js.map +1 -1
- package/dist/rooms/rooms.gateway.js +132 -109
- package/dist/rooms/rooms.gateway.js.map +1 -1
- package/dist/rooms/rooms.guard.js +31 -19
- package/dist/rooms/rooms.guard.js.map +1 -1
- package/dist/rooms/rooms.module.js +12 -3
- package/dist/rooms/rooms.module.js.map +1 -1
- package/dist/rooms/rooms.moleculer.js +85 -66
- package/dist/rooms/rooms.moleculer.js.map +1 -1
- package/dist/rooms/rooms.service.d.ts +17 -4
- package/dist/rooms/rooms.service.js +408 -340
- package/dist/rooms/rooms.service.js.map +1 -1
- package/package.json +18 -6
- package/src/emails/UnreadMention.tsx +76 -0
- package/src/emails/UnreadReplies.tsx +106 -0
- package/src/emails/_components/comment.tsx +70 -0
- package/src/emails/_components/header.tsx +27 -0
- package/src/emails/_components/headline.tsx +20 -0
- package/src/emails/_components/layout.tsx +45 -0
- package/src/emails/_lib/types.ts +10 -0
- package/src/emails/_styles/colors.ts +7 -0
- package/src/emails/_utils/cn.ts +6 -0
- package/src/emails/_utils/comments.ts +61 -0
- package/src/emails/_utils/getProps.ts +7 -0
- package/src/rooms/app.controller.ts +7 -2
- package/src/rooms/emailNotification.service.tsx +152 -0
- package/src/rooms/emails/comment-body.tsx +342 -0
- package/src/rooms/emails/comment-with-body.ts +24 -0
- package/src/rooms/emails/index.ts +25 -0
- package/src/rooms/emails/lib/batch-users-resolver.ts +120 -0
- package/src/rooms/emails/lib/css-properties.ts +123 -0
- package/src/rooms/emails/lib/warning.ts +25 -0
- package/src/rooms/emails/thread-notification.tsx +583 -0
- package/src/rooms/globals/augmentation.ts +8 -8
- package/src/rooms/liveblocks.service.ts +25 -0
- package/src/rooms/notifications.service.ts +22 -10
- package/src/rooms/rooms.controller.ts +24 -5
- package/src/rooms/rooms.module.ts +11 -2
- package/src/rooms/rooms.service.ts +35 -20
- package/tsconfig.json +2 -0
- package/yarn-error.log +17218 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var EmailNotificationService_1;
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.EmailNotificationService = void 0;
|
|
26
|
+
const common_1 = require("@nestjs/common");
|
|
27
|
+
const config_1 = require("@nestjs/config");
|
|
28
|
+
const emails_1 = require("./emails");
|
|
29
|
+
const React = require("react");
|
|
30
|
+
const render_1 = require("@react-email/render");
|
|
31
|
+
const email_1 = require("@builder6/email");
|
|
32
|
+
const UnreadReplies_1 = require("../emails/UnreadReplies");
|
|
33
|
+
const UnreadMention_1 = require("../emails/UnreadMention");
|
|
34
|
+
const rooms_service_1 = require("./rooms.service");
|
|
35
|
+
let EmailNotificationService = EmailNotificationService_1 = class EmailNotificationService {
|
|
36
|
+
constructor(roomsService, configService, emailService) {
|
|
37
|
+
this.roomsService = roomsService;
|
|
38
|
+
this.configService = configService;
|
|
39
|
+
this.emailService = emailService;
|
|
40
|
+
this.logger = new common_1.Logger(EmailNotificationService_1.name);
|
|
41
|
+
}
|
|
42
|
+
sendThreadNotificationEmail({ roomId, threadId, userId, fromUserId, inboxNotificationId, }) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const event = {
|
|
45
|
+
type: 'notification',
|
|
46
|
+
data: {
|
|
47
|
+
channel: 'email',
|
|
48
|
+
kind: 'thread',
|
|
49
|
+
projectId: 'my-project-id',
|
|
50
|
+
roomId,
|
|
51
|
+
userId,
|
|
52
|
+
threadId,
|
|
53
|
+
inboxNotificationId,
|
|
54
|
+
createdAt: new Date().toISOString(),
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
const emailData = yield (0, emails_1.prepareThreadNotificationEmailAsReact)(this.roomsService, event, {
|
|
58
|
+
resolveUsers: ({ userIds }) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
return yield this.roomsService.resolveUsers({ userIds });
|
|
60
|
+
}),
|
|
61
|
+
resolveRoomInfo: ({ roomId }) => __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const rooms = yield this.roomsService.resolveRoomInfo({
|
|
63
|
+
roomIds: [roomId],
|
|
64
|
+
});
|
|
65
|
+
return rooms['0'];
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
if (!emailData) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const company = {
|
|
72
|
+
name: this.configService.get('tenant.name'),
|
|
73
|
+
url: this.configService.get('host'),
|
|
74
|
+
logoUrl: this.configService.get('tenant.logo.url'),
|
|
75
|
+
};
|
|
76
|
+
const room = {
|
|
77
|
+
name: emailData.roomInfo.name,
|
|
78
|
+
url: emailData.roomInfo.url,
|
|
79
|
+
};
|
|
80
|
+
let email;
|
|
81
|
+
let subject;
|
|
82
|
+
switch (emailData.type) {
|
|
83
|
+
case 'unreadReplies': {
|
|
84
|
+
email = (React.createElement(UnreadReplies_1.default, { company: company, room: room, comments: emailData.comments }));
|
|
85
|
+
subject = `[${company.name}] You have ${emailData.comments.length} unread notifications in ${room.name}`;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case 'unreadMention': {
|
|
89
|
+
email = (React.createElement(UnreadMention_1.default, { company: company, room: room, comment: emailData.comment }));
|
|
90
|
+
subject = `[${company.name}] You are mentioned in ${room.name}.`;
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const html = yield (0, render_1.render)(email);
|
|
95
|
+
yield this.emailService.sendMailToUser({
|
|
96
|
+
toUserId: userId,
|
|
97
|
+
fromUserId,
|
|
98
|
+
subject: subject,
|
|
99
|
+
html,
|
|
100
|
+
});
|
|
101
|
+
return html;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
EmailNotificationService = EmailNotificationService_1 = __decorate([
|
|
106
|
+
(0, common_1.Injectable)(),
|
|
107
|
+
__param(0, (0, common_1.Inject)((0, common_1.forwardRef)(() => rooms_service_1.RoomsService))),
|
|
108
|
+
__metadata("design:paramtypes", [rooms_service_1.RoomsService,
|
|
109
|
+
config_1.ConfigService,
|
|
110
|
+
email_1.EmailService])
|
|
111
|
+
], EmailNotificationService);
|
|
112
|
+
exports.EmailNotificationService = EmailNotificationService;
|
|
113
|
+
//# sourceMappingURL=emailNotification.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailNotification.service.js","sourceRoot":"","sources":["../../src/rooms/emailNotification.service.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { BaseUserMeta, CommentBody, CommentBodyLink, CommentBodyMention, CommentBodyText, DU, OptionalPromise, ResolveUsersArgs } from "@liveblocks/core";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import type { CSSProperties } from "./lib/css-properties";
|
|
4
|
+
export type CommentBodyContainerComponentProps = {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
export type CommentBodyParagraphComponentProps = {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export type CommentBodyTextComponentProps = {
|
|
11
|
+
element: CommentBodyText;
|
|
12
|
+
};
|
|
13
|
+
export type CommentBodyLinkComponentProps = {
|
|
14
|
+
element: CommentBodyLink;
|
|
15
|
+
href: string;
|
|
16
|
+
};
|
|
17
|
+
export type CommentBodyMentionComponentProps<U extends BaseUserMeta = DU> = {
|
|
18
|
+
element: CommentBodyMention;
|
|
19
|
+
user?: U["info"];
|
|
20
|
+
};
|
|
21
|
+
export type ConvertCommentBodyAsReactComponents<U extends BaseUserMeta = DU> = {
|
|
22
|
+
Container: React.ComponentType<CommentBodyContainerComponentProps>;
|
|
23
|
+
Paragraph: React.ComponentType<CommentBodyParagraphComponentProps>;
|
|
24
|
+
Text: React.ComponentType<CommentBodyTextComponentProps>;
|
|
25
|
+
Link: React.ComponentType<CommentBodyLinkComponentProps>;
|
|
26
|
+
Mention: React.ComponentType<CommentBodyMentionComponentProps<U>>;
|
|
27
|
+
};
|
|
28
|
+
export type ConvertCommentBodyAsReactOptions<U extends BaseUserMeta = DU> = {
|
|
29
|
+
components?: Partial<ConvertCommentBodyAsReactComponents<U>>;
|
|
30
|
+
resolveUsers?: (args: ResolveUsersArgs) => OptionalPromise<(U["info"] | undefined)[] | undefined>;
|
|
31
|
+
};
|
|
32
|
+
export declare function convertCommentBodyAsReact(body: CommentBody, options?: ConvertCommentBodyAsReactOptions<BaseUserMeta>): Promise<React.ReactNode>;
|
|
33
|
+
export type ConvertCommentBodyAsHtmlStyles = {
|
|
34
|
+
paragraph: CSSProperties;
|
|
35
|
+
strong: CSSProperties;
|
|
36
|
+
code: CSSProperties;
|
|
37
|
+
mention: CSSProperties;
|
|
38
|
+
link: CSSProperties;
|
|
39
|
+
};
|
|
40
|
+
export type ConvertCommentBodyAsHtmlOptions<U extends BaseUserMeta = DU> = {
|
|
41
|
+
styles?: Partial<ConvertCommentBodyAsHtmlStyles>;
|
|
42
|
+
resolveUsers?: (args: ResolveUsersArgs) => OptionalPromise<(U["info"] | undefined)[] | undefined>;
|
|
43
|
+
};
|
|
44
|
+
export declare function convertCommentBodyAsHtml(body: CommentBody, options?: ConvertCommentBodyAsHtmlOptions<BaseUserMeta>): Promise<string>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.convertCommentBodyAsHtml = exports.convertCommentBodyAsReact = void 0;
|
|
13
|
+
const core_1 = require("@liveblocks/core");
|
|
14
|
+
const React = require("react");
|
|
15
|
+
const css_properties_1 = require("./lib/css-properties");
|
|
16
|
+
const baseComponents = {
|
|
17
|
+
Container: ({ children }) => React.createElement("div", null, children),
|
|
18
|
+
Paragraph: ({ children }) => React.createElement("p", null, children),
|
|
19
|
+
Text: ({ element }) => {
|
|
20
|
+
let children = element.text;
|
|
21
|
+
if (element.bold) {
|
|
22
|
+
children = React.createElement("strong", null, children);
|
|
23
|
+
}
|
|
24
|
+
if (element.italic) {
|
|
25
|
+
children = React.createElement("em", null, children);
|
|
26
|
+
}
|
|
27
|
+
if (element.strikethrough) {
|
|
28
|
+
children = React.createElement("s", null, children);
|
|
29
|
+
}
|
|
30
|
+
if (element.code) {
|
|
31
|
+
children = React.createElement("code", null, children);
|
|
32
|
+
}
|
|
33
|
+
return React.createElement("span", null, children);
|
|
34
|
+
},
|
|
35
|
+
Link: ({ element, href }) => {
|
|
36
|
+
var _a;
|
|
37
|
+
return (React.createElement("a", { href: href, target: "_blank", rel: "noopener noreferrer" }, (_a = element.text) !== null && _a !== void 0 ? _a : element.url));
|
|
38
|
+
},
|
|
39
|
+
Mention: ({ element, user }) => {
|
|
40
|
+
var _a;
|
|
41
|
+
return (React.createElement("span", { "data-mention": true },
|
|
42
|
+
"@", (_a = user === null || user === void 0 ? void 0 : user.name) !== null && _a !== void 0 ? _a : element.id));
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
function convertCommentBodyAsReact(body, options) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const Components = Object.assign(Object.assign({}, baseComponents), options === null || options === void 0 ? void 0 : options.components);
|
|
48
|
+
const resolvedUsers = yield (0, core_1.resolveUsersInCommentBody)(body, options === null || options === void 0 ? void 0 : options.resolveUsers);
|
|
49
|
+
const blocks = body.content.map((block, index) => {
|
|
50
|
+
switch (block.type) {
|
|
51
|
+
case "paragraph": {
|
|
52
|
+
const children = block.children.map((inline, inlineIndex) => {
|
|
53
|
+
var _a;
|
|
54
|
+
if ((0, core_1.isCommentBodyMention)(inline)) {
|
|
55
|
+
return inline.id ? (React.createElement(Components.Mention, { key: `lb-comment-body-mention-${inlineIndex}`, element: inline, user: resolvedUsers.get(inline.id) })) : null;
|
|
56
|
+
}
|
|
57
|
+
if ((0, core_1.isCommentBodyLink)(inline)) {
|
|
58
|
+
const href = (_a = (0, core_1.toAbsoluteUrl)(inline.url)) !== null && _a !== void 0 ? _a : inline.url;
|
|
59
|
+
return (React.createElement(Components.Link, { key: `lb-comment-body-link-${inlineIndex}`, element: inline, href: href }));
|
|
60
|
+
}
|
|
61
|
+
if ((0, core_1.isCommentBodyText)(inline)) {
|
|
62
|
+
return (React.createElement(Components.Text, { key: `lb-comment-body-text-${inlineIndex}`, element: inline }));
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
});
|
|
66
|
+
return (React.createElement(Components.Paragraph, { key: `lb-comment-body-paragraph-${index}` }, children));
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
console.warn(`Unsupported comment body block type: "${JSON.stringify(block.type)}"`);
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return (React.createElement(Components.Container, { key: "lb-comment-body-container" }, blocks));
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
exports.convertCommentBodyAsReact = convertCommentBodyAsReact;
|
|
77
|
+
const baseStyles = {
|
|
78
|
+
paragraph: {
|
|
79
|
+
fontSize: "14px",
|
|
80
|
+
},
|
|
81
|
+
strong: {
|
|
82
|
+
fontWeight: 500,
|
|
83
|
+
},
|
|
84
|
+
code: {
|
|
85
|
+
fontFamily: 'ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Mono", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Consolas", "Courier New", monospace',
|
|
86
|
+
backgroundColor: "rgba(0,0,0,0.05)",
|
|
87
|
+
border: "solid 1px rgba(0,0,0,0.1)",
|
|
88
|
+
borderRadius: "4px",
|
|
89
|
+
},
|
|
90
|
+
mention: {
|
|
91
|
+
color: "blue",
|
|
92
|
+
},
|
|
93
|
+
link: {
|
|
94
|
+
textDecoration: "underline",
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
function convertCommentBodyAsHtml(body, options) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
const styles = Object.assign(Object.assign({}, baseStyles), options === null || options === void 0 ? void 0 : options.styles);
|
|
100
|
+
const htmlBody = yield (0, core_1.stringifyCommentBody)(body, {
|
|
101
|
+
format: "html",
|
|
102
|
+
resolveUsers: options === null || options === void 0 ? void 0 : options.resolveUsers,
|
|
103
|
+
elements: {
|
|
104
|
+
paragraph: ({ children }) => children ? (0, core_1.html) `<p style="${(0, css_properties_1.toInlineCSSString)(styles.paragraph)}">${(0, core_1.htmlSafe)(children)}</p>` : children,
|
|
105
|
+
text: ({ element }) => {
|
|
106
|
+
let children = element.text;
|
|
107
|
+
if (!children) {
|
|
108
|
+
return children;
|
|
109
|
+
}
|
|
110
|
+
if (element.bold) {
|
|
111
|
+
children = (0, core_1.html) `<strong style="${(0, css_properties_1.toInlineCSSString)(styles.strong)}">${children}</strong>`;
|
|
112
|
+
}
|
|
113
|
+
if (element.italic) {
|
|
114
|
+
children = (0, core_1.html) `<em>${children}</em>`;
|
|
115
|
+
}
|
|
116
|
+
if (element.strikethrough) {
|
|
117
|
+
children = (0, core_1.html) `<s>${children}</s>`;
|
|
118
|
+
}
|
|
119
|
+
if (element.code) {
|
|
120
|
+
children = (0, core_1.html) `<code style="${(0, css_properties_1.toInlineCSSString)(styles.code)}">${children}</code>`;
|
|
121
|
+
}
|
|
122
|
+
return children;
|
|
123
|
+
},
|
|
124
|
+
link: ({ element, href }) => {
|
|
125
|
+
var _a;
|
|
126
|
+
return (0, core_1.html) `<a href="${href}" target="_blank" rel="noopener noreferrer" style="${(0, css_properties_1.toInlineCSSString)(styles.link)}">${(_a = element.text) !== null && _a !== void 0 ? _a : element.url}</a>`;
|
|
127
|
+
},
|
|
128
|
+
mention: ({ element, user }) => {
|
|
129
|
+
var _a;
|
|
130
|
+
return (0, core_1.html) `<span data-mention style="${(0, css_properties_1.toInlineCSSString)(styles.mention)}">@${(_a = user === null || user === void 0 ? void 0 : user.name) !== null && _a !== void 0 ? _a : element.id}</span>`;
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
return htmlBody;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
exports.convertCommentBodyAsHtml = convertCommentBodyAsHtml;
|
|
138
|
+
//# sourceMappingURL=comment-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-body.js","sourceRoot":"","sources":["../../../src/rooms/emails/comment-body.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CommentBody, CommentData } from "@liveblocks/core";
|
|
2
|
+
export type CommentDataWithBody = Omit<CommentData, "body" | "deletedAt"> & {
|
|
3
|
+
body: CommentBody;
|
|
4
|
+
deletedAt?: never;
|
|
5
|
+
};
|
|
6
|
+
export declare function filterCommentsWithBody(comments: CommentData[]): CommentDataWithBody[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.filterCommentsWithBody = void 0;
|
|
4
|
+
const isCommentDataWithBody = (comment) => {
|
|
5
|
+
return comment.body !== undefined && comment.deletedAt === undefined;
|
|
6
|
+
};
|
|
7
|
+
function filterCommentsWithBody(comments) {
|
|
8
|
+
const commentsWithBody = [];
|
|
9
|
+
for (const comment of comments) {
|
|
10
|
+
if (isCommentDataWithBody(comment)) {
|
|
11
|
+
commentsWithBody.push(comment);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return commentsWithBody;
|
|
15
|
+
}
|
|
16
|
+
exports.filterCommentsWithBody = filterCommentsWithBody;
|
|
17
|
+
//# sourceMappingURL=comment-with-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment-with-body.js","sourceRoot":"","sources":["../../../src/rooms/emails/comment-with-body.ts"],"names":[],"mappings":";;;AAOA,MAAM,qBAAqB,GAAG,CAC5B,OAAoB,EACY,EAAE;IAClC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;AACvE,CAAC,CAAC;AAEF,SAAgB,sBAAsB,CACpC,QAAuB;IAEvB,MAAM,gBAAgB,GAA0B,EAAE,CAAC;IACnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;YAClC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;KACF;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAVD,wDAUC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { CommentBodyContainerComponentProps, CommentBodyLinkComponentProps, CommentBodyMentionComponentProps, CommentBodyParagraphComponentProps, CommentBodyTextComponentProps, ConvertCommentBodyAsHtmlStyles, ConvertCommentBodyAsReactComponents, } from "./comment-body";
|
|
2
|
+
export type { CommentEmailAsHtmlData, CommentEmailAsReactData, PrepareThreadNotificationEmailAsHtmlOptions, PrepareThreadNotificationEmailAsReactOptions, ResolveRoomInfoArgs, ThreadNotificationEmailDataAsHtml, ThreadNotificationEmailDataAsReact, } from "./thread-notification";
|
|
3
|
+
export { prepareThreadNotificationEmailAsHtml, prepareThreadNotificationEmailAsReact, } from "./thread-notification";
|
|
4
|
+
export type { ResolveUsersArgs } from "@liveblocks/core";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareThreadNotificationEmailAsReact = exports.prepareThreadNotificationEmailAsHtml = void 0;
|
|
4
|
+
var thread_notification_1 = require("./thread-notification");
|
|
5
|
+
Object.defineProperty(exports, "prepareThreadNotificationEmailAsHtml", { enumerable: true, get: function () { return thread_notification_1.prepareThreadNotificationEmailAsHtml; } });
|
|
6
|
+
Object.defineProperty(exports, "prepareThreadNotificationEmailAsReact", { enumerable: true, get: function () { return thread_notification_1.prepareThreadNotificationEmailAsReact; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rooms/emails/index.ts"],"names":[],"mappings":";;;AAoBA,6DAG+B;AAF7B,2IAAA,oCAAoC,OAAA;AACpC,4IAAA,qCAAqC,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BaseUserMeta, DU, OptionalPromise, ResolveUsersArgs } from "@liveblocks/core";
|
|
2
|
+
export type CreateBatchUsersResolverReturnType<U extends BaseUserMeta> = {
|
|
3
|
+
resolveUsers: (args: ResolveUsersArgs) => Promise<(U["info"] | undefined)[] | undefined>;
|
|
4
|
+
resolve: () => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export declare function createBatchUsersResolver<U extends BaseUserMeta = DU>({ resolveUsers, callerName, }: {
|
|
7
|
+
resolveUsers?: (args: ResolveUsersArgs) => OptionalPromise<(U["info"] | undefined)[] | undefined>;
|
|
8
|
+
callerName: string;
|
|
9
|
+
}): CreateBatchUsersResolverReturnType<U>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createBatchUsersResolver = void 0;
|
|
13
|
+
const core_1 = require("@liveblocks/core");
|
|
14
|
+
const warning_1 = require("./warning");
|
|
15
|
+
class BatchUsersResolver {
|
|
16
|
+
constructor(resolveUsers) {
|
|
17
|
+
this.resolveUsers = (args) => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
if (this.isResolved) {
|
|
19
|
+
this.warnAsAlreadyResolved();
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
for (const userId of args.userIds) {
|
|
23
|
+
this.usersById.set(userId, undefined);
|
|
24
|
+
}
|
|
25
|
+
yield this.resolvePromise;
|
|
26
|
+
return args.userIds.map((userId) => this.usersById.get(userId));
|
|
27
|
+
});
|
|
28
|
+
const { promise, resolve } = (0, core_1.Promise_withResolvers)();
|
|
29
|
+
this.isResolved = false;
|
|
30
|
+
this.markAsResolved = resolve;
|
|
31
|
+
this.resolvePromise = promise;
|
|
32
|
+
this.primeResolveUsersFn = resolveUsers;
|
|
33
|
+
this.usersById = new Map();
|
|
34
|
+
this.warnAsAlreadyResolved = (0, warning_1.createDevelopmentWarning)(true, "Batch users resolver promise already resolved. It can only resolve once.");
|
|
35
|
+
}
|
|
36
|
+
resolve() {
|
|
37
|
+
var _a;
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
if (this.isResolved) {
|
|
40
|
+
this.warnAsAlreadyResolved();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const userIds = Array.from(this.usersById.keys());
|
|
44
|
+
const users = yield ((_a = this.primeResolveUsersFn) === null || _a === void 0 ? void 0 : _a.call(this, { userIds }));
|
|
45
|
+
for (const [index, userId] of userIds.entries()) {
|
|
46
|
+
const user = users === null || users === void 0 ? void 0 : users[index];
|
|
47
|
+
this.usersById.set(userId, user);
|
|
48
|
+
}
|
|
49
|
+
this.isResolved = true;
|
|
50
|
+
this.markAsResolved();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function createBatchUsersResolver({ resolveUsers, callerName, }) {
|
|
55
|
+
const warnIfNoResolveUsers = (0, warning_1.createDevelopmentWarning)(() => !resolveUsers, `Set "resolveUsers" option in "${callerName}" to specify users info`);
|
|
56
|
+
const batchUsersResolver = new BatchUsersResolver(resolveUsers);
|
|
57
|
+
const resolve = () => __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
warnIfNoResolveUsers();
|
|
59
|
+
yield batchUsersResolver.resolve();
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
resolveUsers: batchUsersResolver.resolveUsers,
|
|
63
|
+
resolve,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
exports.createBatchUsersResolver = createBatchUsersResolver;
|
|
67
|
+
//# sourceMappingURL=batch-users-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-users-resolver.js","sourceRoot":"","sources":["../../../../src/rooms/emails/lib/batch-users-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,2CAAyD;AAEzD,uCAAqD;AAarD,MAAM,kBAAkB;IAUtB,YAAY,YAAuD;QAgBnE,iBAAY,GAAG,CACb,IAAsB,EAC0B,EAAE;YAClD,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;aAClB;YAGD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;aACvC;YAGD,MAAM,IAAI,CAAC,cAAc,CAAC;YAI1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC,CAAA,CAAC;QAlCA,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAqB,GAAQ,CAAC;QAE3D,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAE9B,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,qBAAqB,GAAG,IAAA,kCAAwB,EACnD,IAAI,EACJ,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAuBK,OAAO;;;YACX,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,OAAO;aACR;YAGD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,mBAAmB,qDAAG,EAAE,OAAO,EAAE,CAAC,CAAA,CAAC;YAE5D,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;gBAC/C,MAAM,IAAI,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aAClC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;;KACvB;CACF;AASD,SAAgB,wBAAwB,CAA8B,EACpE,YAAY,EACZ,UAAU,GAMX;IACC,MAAM,oBAAoB,GAAG,IAAA,kCAAwB,EACnD,GAAG,EAAE,CAAC,CAAC,YAAY,EACnB,iCAAiC,UAAU,yBAAyB,CACrE,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,GAAwB,EAAE;QACxC,oBAAoB,EAAE,CAAC;QACvB,MAAM,kBAAkB,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC,CAAA,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,kBAAkB,CAAC,YAAY;QAC7C,OAAO;KACC,CAAC;AACb,CAAC;AAxBD,4DAwBC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toInlineCSSString = void 0;
|
|
4
|
+
const VENDORS_PREFIXES = new RegExp(/^(webkit|moz|ms|o)-/);
|
|
5
|
+
const UNITLESS_PROPERTIES = [
|
|
6
|
+
"animationIterationCount",
|
|
7
|
+
"aspectRatio",
|
|
8
|
+
"borderImageOutset",
|
|
9
|
+
"borderImageSlice",
|
|
10
|
+
"borderImageWidth",
|
|
11
|
+
"boxFlex",
|
|
12
|
+
"boxFlexGroup",
|
|
13
|
+
"boxOrdinalGroup",
|
|
14
|
+
"columnCount",
|
|
15
|
+
"columns",
|
|
16
|
+
"flex",
|
|
17
|
+
"flexGrow",
|
|
18
|
+
"flexPositive",
|
|
19
|
+
"flexShrink",
|
|
20
|
+
"flexNegative",
|
|
21
|
+
"flexOrder",
|
|
22
|
+
"gridArea",
|
|
23
|
+
"gridRow",
|
|
24
|
+
"gridRowEnd",
|
|
25
|
+
"gridRowSpan",
|
|
26
|
+
"gridRowStart",
|
|
27
|
+
"gridColumn",
|
|
28
|
+
"gridColumnEnd",
|
|
29
|
+
"gridColumnSpan",
|
|
30
|
+
"gridColumnStart",
|
|
31
|
+
"fontWeight",
|
|
32
|
+
"lineClamp",
|
|
33
|
+
"lineHeight",
|
|
34
|
+
"opacity",
|
|
35
|
+
"order",
|
|
36
|
+
"orphans",
|
|
37
|
+
"scale",
|
|
38
|
+
"tabSize",
|
|
39
|
+
"widows",
|
|
40
|
+
"zIndex",
|
|
41
|
+
"zoom",
|
|
42
|
+
"fillOpacity",
|
|
43
|
+
"floodOpacity",
|
|
44
|
+
"stopOpacity",
|
|
45
|
+
"strokeDasharray",
|
|
46
|
+
"strokeDashoffset",
|
|
47
|
+
"strokeMiterlimit",
|
|
48
|
+
"strokeOpacity",
|
|
49
|
+
"strokeWidth",
|
|
50
|
+
"MozAnimationIterationCount",
|
|
51
|
+
"MozBoxFlex",
|
|
52
|
+
"MozBoxFlexGroup",
|
|
53
|
+
"MozLineClamp",
|
|
54
|
+
"msAnimationIterationCount",
|
|
55
|
+
"msFlex",
|
|
56
|
+
"msZoom",
|
|
57
|
+
"msFlexPositive",
|
|
58
|
+
"msGridColumns",
|
|
59
|
+
"msGridRows",
|
|
60
|
+
"WebkitAnimationIterationCount",
|
|
61
|
+
"WebkitBoxFlex",
|
|
62
|
+
"WebKitBoxFlexGroup",
|
|
63
|
+
"WebkitBoxOrdinalGroup",
|
|
64
|
+
"WebkitColumnCount",
|
|
65
|
+
"WebkitColumns",
|
|
66
|
+
"WebkitFlex",
|
|
67
|
+
"WebkitFlexGrow",
|
|
68
|
+
"WebkitFlexPositive",
|
|
69
|
+
"WebkitFlexShrink",
|
|
70
|
+
"WebkitLineClamp",
|
|
71
|
+
];
|
|
72
|
+
function toInlineCSSString(styles) {
|
|
73
|
+
const entries = Object.entries(styles);
|
|
74
|
+
const inline = entries
|
|
75
|
+
.map(([key, value]) => {
|
|
76
|
+
if (value === null ||
|
|
77
|
+
typeof value === "boolean" ||
|
|
78
|
+
value === "" ||
|
|
79
|
+
typeof value === "undefined") {
|
|
80
|
+
return "";
|
|
81
|
+
}
|
|
82
|
+
let property = key.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
83
|
+
if (VENDORS_PREFIXES.test(property)) {
|
|
84
|
+
property = `-${property}`;
|
|
85
|
+
}
|
|
86
|
+
if (typeof value === "number" && !UNITLESS_PROPERTIES.includes(key)) {
|
|
87
|
+
return `${property}:${value}px;`;
|
|
88
|
+
}
|
|
89
|
+
return `${property}:${String(value).trim()};`;
|
|
90
|
+
})
|
|
91
|
+
.filter(Boolean)
|
|
92
|
+
.join("");
|
|
93
|
+
return inline;
|
|
94
|
+
}
|
|
95
|
+
exports.toInlineCSSString = toInlineCSSString;
|
|
96
|
+
//# sourceMappingURL=css-properties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css-properties.js","sourceRoot":"","sources":["../../../../src/rooms/emails/lib/css-properties.ts"],"names":[],"mappings":";;;AAYA,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAM3D,MAAM,mBAAmB,GAAG;IAC1B,yBAAyB;IACzB,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,SAAS;IACT,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,MAAM;IACN,UAAU;IACV,cAAc;IACd,YAAY;IACZ,cAAc;IACd,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,cAAc;IACd,YAAY;IACZ,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,SAAS;IACT,OAAO;IACP,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,aAAa;IACb,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,aAAa;IACb,4BAA4B;IAC5B,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,2BAA2B;IAC3B,QAAQ;IACR,QAAQ;IACR,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,+BAA+B;IAC/B,eAAe;IACf,oBAAoB;IACpB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;CAClB,CAAC;AAKF,SAAgB,iBAAiB,CAAC,MAAqB;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAiB,EAAE;QAEnC,IACE,KAAK,KAAK,IAAI;YACd,OAAO,KAAK,KAAK,SAAS;YAC1B,KAAK,KAAK,EAAE;YACZ,OAAO,KAAK,KAAK,WAAW,EAC5B;YACA,OAAO,EAAE,CAAC;SACX;QAGD,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAG5D,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACnC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;SAC3B;QAGD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnE,OAAO,GAAG,QAAQ,IAAI,KAAK,KAAK,CAAC;SAClC;QAED,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;IAChD,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,MAAM,CAAC;AAChB,CAAC;AAjCD,8CAiCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createDevelopmentWarning: (condition: boolean | (() => boolean), message?: any, ...optionalParams: any[]) => () => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDevelopmentWarning = void 0;
|
|
4
|
+
const createDevelopmentWarning = (condition, ...args) => {
|
|
5
|
+
let hasWarned = false;
|
|
6
|
+
if (process.env.NODE_ENV !== "production") {
|
|
7
|
+
return () => {
|
|
8
|
+
if (!hasWarned &&
|
|
9
|
+
(typeof condition === "function" ? condition() : condition)) {
|
|
10
|
+
console.warn(...args);
|
|
11
|
+
hasWarned = true;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return () => { };
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.createDevelopmentWarning = createDevelopmentWarning;
|
|
20
|
+
//# sourceMappingURL=warning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warning.js","sourceRoot":"","sources":["../../../../src/rooms/emails/lib/warning.ts"],"names":[],"mappings":";;;AAIO,MAAM,wBAAwB,GAAG,CACtC,SAAoC,EACpC,GAAG,IAAqC,EACxC,EAAE;IACF,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,GAAG,EAAE;YACV,IACE,CAAC,SAAS;gBACV,CAAC,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3D;gBACA,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAEtB,SAAS,GAAG,IAAI,CAAC;aAClB;QACH,CAAC,CAAC;KACH;SAAM;QACL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;KACjB;AACH,CAAC,CAAC;AApBW,QAAA,wBAAwB,4BAoBnC"}
|