orbitx-core-models 11.178.0 → 11.180.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/activity/recorder.d.ts +2 -2
- package/dist/activity/recorder.d.ts.map +1 -1
- package/dist/activity/recorder.js +4 -7
- package/dist/constants/ticketCategories.d.ts +41 -20
- package/dist/constants/ticketCategories.d.ts.map +1 -1
- package/dist/constants/ticketCategories.js +212 -53
- package/dist/helpers/chatAttachments.d.ts +4 -3
- package/dist/helpers/chatAttachments.d.ts.map +1 -1
- package/dist/helpers/chatAttachments.js +7 -7
- package/dist/helpers/emailTemplates.d.ts.map +1 -1
- package/dist/helpers/emailTemplates.js +4 -5
- package/dist/helpers/ownTickets.d.ts +3 -1
- package/dist/helpers/ownTickets.d.ts.map +1 -1
- package/dist/helpers/ownTickets.js +30 -11
- package/dist/helpers/privateFiles.d.ts +14 -0
- package/dist/helpers/privateFiles.d.ts.map +1 -0
- package/dist/helpers/privateFiles.js +45 -0
- package/dist/helpers/requestInfo.d.ts +47 -0
- package/dist/helpers/requestInfo.d.ts.map +1 -0
- package/dist/helpers/requestInfo.js +156 -0
- package/dist/helpers/s3Storage.d.ts +24 -2
- package/dist/helpers/s3Storage.d.ts.map +1 -1
- package/dist/helpers/s3Storage.js +73 -5
- package/dist/helpers/sessions.d.ts +51 -3
- package/dist/helpers/sessions.d.ts.map +1 -1
- package/dist/helpers/sessions.js +144 -11
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/interfaces/company.interface.d.ts +2 -0
- package/dist/interfaces/company.interface.d.ts.map +1 -1
- package/dist/interfaces/session.interface.d.ts +2 -0
- package/dist/interfaces/session.interface.d.ts.map +1 -1
- package/dist/interfaces/subscription.interface.d.ts +2 -0
- package/dist/interfaces/subscription.interface.d.ts.map +1 -1
- package/dist/interfaces/ticket.interface.d.ts +30 -26
- package/dist/interfaces/ticket.interface.d.ts.map +1 -1
- package/dist/interfaces/ticket.interface.js +28 -4
- package/dist/interfaces/user.interface.d.ts +4 -0
- package/dist/interfaces/user.interface.d.ts.map +1 -1
- package/dist/interfaces/vertical.interface.d.ts +1 -1
- package/dist/interfaces/vertical.interface.d.ts.map +1 -1
- package/dist/models/company.model.d.ts.map +1 -1
- package/dist/models/company.model.js +3 -0
- package/dist/models/session.model.d.ts.map +1 -1
- package/dist/models/session.model.js +4 -0
- package/dist/models/subscription.model.d.ts.map +1 -1
- package/dist/models/subscription.model.js +4 -0
- package/dist/models/ticket.model.d.ts.map +1 -1
- package/dist/models/ticket.model.js +24 -38
- package/dist/models/user.model.d.ts.map +1 -1
- package/dist/models/user.model.js +7 -0
- package/dist/models/vertical.model.js +1 -1
- package/dist/routing/ticketRouting.d.ts +11 -1
- package/dist/routing/ticketRouting.d.ts.map +1 -1
- package/dist/routing/ticketRouting.js +82 -33
- package/dist/utils/ticketSanitize.d.ts.map +1 -1
- package/dist/utils/ticketSanitize.js +4 -0
- package/package.json +1 -1
package/dist/helpers/sessions.js
CHANGED
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateBackupCodes = generateBackupCodes;
|
|
4
|
+
exports.isNewSignInDevice = isNewSignInDevice;
|
|
4
5
|
exports.createLoginSession = createLoginSession;
|
|
6
|
+
exports.touchSession = touchSession;
|
|
7
|
+
exports.sessionView = sessionView;
|
|
8
|
+
exports.listSessionViews = listSessionViews;
|
|
9
|
+
exports.renameSessionDevice = renameSessionDevice;
|
|
5
10
|
exports.createSessionHandlers = createSessionHandlers;
|
|
6
11
|
/**
|
|
7
12
|
* Sign-in sessions and 2FA backup codes shared by the Client and Partner backends. Each backend keeps its own
|
|
8
13
|
* login and 2FA flow (they find the account differently); these are the identical pieces:
|
|
9
14
|
* generateBackupCodes() 8 single-use codes, plain for the user and SHA-256 for the database
|
|
10
|
-
* createLoginSession(user, device)
|
|
11
|
-
*
|
|
15
|
+
* createLoginSession(user, device, req) stores a 30-day session and returns its id (the JWT carries it)
|
|
16
|
+
* isNewSignInDevice(userId, fingerprintId) a sign-in from a browser this account has never used (for the alert email)
|
|
17
|
+
* touchSession(sessionId) marks a session as just used (the Sessions screen's Active / Idle)
|
|
18
|
+
* sessionView(session, currentSessionId) one session as the Sessions screens show it (Ops uses it too)
|
|
19
|
+
* createSessionHandlers() GET my sessions / rename a device / revoke one of my sessions
|
|
12
20
|
*/
|
|
13
21
|
const crypto_1 = require("crypto");
|
|
22
|
+
const mongoose_1 = require("mongoose");
|
|
14
23
|
const session_model_1 = require("../models/session.model");
|
|
15
24
|
const errors_1 = require("./errors");
|
|
16
25
|
const _http_1 = require("./_http");
|
|
26
|
+
const requestInfo_1 = require("./requestInfo");
|
|
17
27
|
/** 8 single-use backup codes, e.g. "A3F9B2C1D4". Stored as SHA-256 hashes so the server never holds the plain codes. */
|
|
18
28
|
function generateBackupCodes() {
|
|
19
29
|
const plain = [];
|
|
@@ -25,31 +35,154 @@ function generateBackupCodes() {
|
|
|
25
35
|
}
|
|
26
36
|
return { plain, hashed };
|
|
27
37
|
}
|
|
28
|
-
/**
|
|
29
|
-
async function
|
|
38
|
+
/** The name the person gave this device on an earlier sign-in (renaming applies to all of a device's sessions). */
|
|
39
|
+
async function savedDeviceName(SessionModel, userId, fingerprintId) {
|
|
40
|
+
if (!fingerprintId)
|
|
41
|
+
return undefined;
|
|
42
|
+
const last = await SessionModel.findOne({ userId, fingerprintId, customName: { $nin: [null, ""] } })
|
|
43
|
+
.sort("-createdAt")
|
|
44
|
+
.select("customName")
|
|
45
|
+
.lean();
|
|
46
|
+
return (last === null || last === void 0 ? void 0 : last.customName) || undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* True when this sign-in comes from a browser the account has never signed in from before, so the person gets a
|
|
50
|
+
* "new sign-in" email. Call it BEFORE createLoginSession (which records the browser). The very first sign-in of an
|
|
51
|
+
* account isn't "new" (there's nothing to compare with), and without a browser id there's nothing to go on.
|
|
52
|
+
* Sessions are never deleted (revoked and expired ones stay), so this sees every browser ever used.
|
|
53
|
+
*/
|
|
54
|
+
async function isNewSignInDevice(userId, fingerprintId) {
|
|
55
|
+
if (!userId || !fingerprintId)
|
|
56
|
+
return false;
|
|
57
|
+
const SessionModel = session_model_1.Session;
|
|
58
|
+
const [seenHere, anyBefore] = await Promise.all([
|
|
59
|
+
SessionModel.exists({ userId, fingerprintId }),
|
|
60
|
+
SessionModel.exists({ userId }),
|
|
61
|
+
]);
|
|
62
|
+
return !seenHere && !!anyBefore;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Stores a new 30-day session for the user and returns its id. Pass the request so the session gets the visitor's
|
|
66
|
+
* real IP address and location (read from the Cloudflare / nginx headers) and the real user agent.
|
|
67
|
+
*/
|
|
68
|
+
async function createLoginSession(user, device, req) {
|
|
69
|
+
var _a;
|
|
30
70
|
const sessionId = (0, crypto_1.randomBytes)(32).toString("hex");
|
|
71
|
+
const userAgent = String(((_a = req === null || req === void 0 ? void 0 : req.headers) === null || _a === void 0 ? void 0 : _a["user-agent"]) || device.userAgent || "").slice(0, 500) || undefined;
|
|
72
|
+
const detected = (0, requestInfo_1.describeDevice)(userAgent, { model: device.deviceModel, platformVersion: device.platformVersion });
|
|
31
73
|
await session_model_1.Session.create({
|
|
32
74
|
userId: user._id,
|
|
33
75
|
sessionId,
|
|
34
|
-
fingerprintId,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
76
|
+
fingerprintId: device.fingerprintId,
|
|
77
|
+
deviceName: userAgent ? detected.deviceName : undefined,
|
|
78
|
+
browser: userAgent ? detected.browser : device.browser,
|
|
79
|
+
os: userAgent ? detected.os : device.os,
|
|
80
|
+
ipAddress: req ? (0, requestInfo_1.clientIp)(req) : (0, requestInfo_1.normalizeIp)(device.ip),
|
|
81
|
+
location: req ? (0, requestInfo_1.requestLocation)(req) : undefined,
|
|
38
82
|
userAgent,
|
|
83
|
+
customName: await savedDeviceName(session_model_1.Session, user._id, device.fingerprintId),
|
|
39
84
|
isRevoked: false,
|
|
40
85
|
lastActiveAt: new Date(),
|
|
41
86
|
expiresAt: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000),
|
|
42
87
|
});
|
|
43
88
|
return sessionId;
|
|
44
89
|
}
|
|
45
|
-
|
|
90
|
+
const TOUCH_EVERY_MS = 5 * 60 * 1000;
|
|
91
|
+
const lastTouched = new Map();
|
|
92
|
+
/**
|
|
93
|
+
* Marks the session as used just now, so the Sessions screen can tell Active from Idle. At most one small write per
|
|
94
|
+
* session every 5 minutes, never awaited and never failing the request. Ops passes its own session model.
|
|
95
|
+
*/
|
|
96
|
+
function touchSession(sessionId, SessionModel = session_model_1.Session) {
|
|
97
|
+
if (!sessionId)
|
|
98
|
+
return;
|
|
99
|
+
const now = Date.now();
|
|
100
|
+
const last = lastTouched.get(sessionId);
|
|
101
|
+
if (last && now - last < TOUCH_EVERY_MS)
|
|
102
|
+
return;
|
|
103
|
+
lastTouched.set(sessionId, now);
|
|
104
|
+
if (lastTouched.size > 10000) {
|
|
105
|
+
for (const [id, at] of lastTouched)
|
|
106
|
+
if (now - at >= TOUCH_EVERY_MS)
|
|
107
|
+
lastTouched.delete(id);
|
|
108
|
+
}
|
|
109
|
+
Promise.resolve(SessionModel.updateOne({ sessionId }, { $set: { lastActiveAt: new Date(now) } })).catch(() => lastTouched.delete(sessionId));
|
|
110
|
+
}
|
|
111
|
+
/** Used within this long = "Active", otherwise "Idle". touchSession writes every 5 minutes, so this leaves room. */
|
|
112
|
+
const ACTIVE_WINDOW_MS = 30 * 60 * 1000;
|
|
113
|
+
/** One session as the Sessions screens show it. Sessions from before Oct 2026 stored no device name (Client /
|
|
114
|
+
* Partner) or an old "Chrome 129 on Windows 10/11" label (Ops); those are read again from their user agent. */
|
|
115
|
+
function sessionView(session, currentSessionId) {
|
|
116
|
+
const s = (session === null || session === void 0 ? void 0 : session.toObject) ? session.toObject() : session;
|
|
117
|
+
const current = Boolean(currentSessionId) && s.sessionId === currentSessionId;
|
|
118
|
+
const stored = s.deviceName && !/ on /.test(s.deviceName);
|
|
119
|
+
const detected = stored
|
|
120
|
+
? { deviceName: s.deviceName, browser: s.browser, os: s.os }
|
|
121
|
+
: s.userAgent
|
|
122
|
+
? (0, requestInfo_1.describeDevice)(s.userAgent)
|
|
123
|
+
: { deviceName: "Unknown device", browser: s.browser, os: s.os };
|
|
124
|
+
const ip = (0, requestInfo_1.normalizeIp)(s.ipAddress);
|
|
125
|
+
const realIp = ip && !(0, requestInfo_1.isPrivateIp)(ip) ? ip : undefined;
|
|
126
|
+
const lastActive = s.lastActiveAt ? new Date(s.lastActiveAt).getTime() : 0;
|
|
127
|
+
return {
|
|
128
|
+
_id: String(s._id),
|
|
129
|
+
sessionId: s.sessionId,
|
|
130
|
+
deviceName: s.customName || detected.deviceName,
|
|
131
|
+
detectedName: detected.deviceName,
|
|
132
|
+
customName: s.customName || undefined,
|
|
133
|
+
browser: detected.browser || undefined,
|
|
134
|
+
os: detected.os || undefined,
|
|
135
|
+
ipAddress: realIp,
|
|
136
|
+
location: realIp ? s.location || undefined : undefined,
|
|
137
|
+
isCurrent: current,
|
|
138
|
+
status: current || Date.now() - lastActive < ACTIVE_WINDOW_MS ? "active" : "idle",
|
|
139
|
+
lastActiveAt: s.lastActiveAt,
|
|
140
|
+
createdAt: s.createdAt,
|
|
141
|
+
expiresAt: s.expiresAt,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/** The signed-in user's sessions as the Sessions screen shows them: this device first, then most recently used. */
|
|
145
|
+
async function listSessionViews(SessionModel, userId, currentSessionId) {
|
|
146
|
+
const sessions = await SessionModel.find({ userId, isRevoked: false, expiresAt: { $gt: new Date() } })
|
|
147
|
+
.sort("-lastActiveAt")
|
|
148
|
+
.lean();
|
|
149
|
+
const views = sessions.map((s) => sessionView(s, currentSessionId));
|
|
150
|
+
return views.sort((a, b) => Number(b.isCurrent) - Number(a.isCurrent));
|
|
151
|
+
}
|
|
152
|
+
/** Names one of the user's devices (all of that device's sessions, so later sign-ins keep it); "" clears it. */
|
|
153
|
+
async function renameSessionDevice(SessionModel, userId, id, rawName) {
|
|
154
|
+
if (!mongoose_1.Types.ObjectId.isValid(id))
|
|
155
|
+
return null;
|
|
156
|
+
const session = await SessionModel.findOne({ _id: id, userId, isRevoked: false });
|
|
157
|
+
if (!session)
|
|
158
|
+
return null;
|
|
159
|
+
const name = (0, requestInfo_1.cleanDeviceName)(rawName);
|
|
160
|
+
const filter = session.fingerprintId ? { userId, fingerprintId: session.fingerprintId } : { _id: session._id };
|
|
161
|
+
await SessionModel.updateMany(filter, name ? { $set: { customName: name } } : { $unset: { customName: 1 } });
|
|
162
|
+
return { name };
|
|
163
|
+
}
|
|
164
|
+
/** The signed-in user's open sessions, naming a device, and revoking a session. The backend's protect middleware
|
|
165
|
+
* sets req.sessionId (the JWT's session) so "This device" is marked here, not guessed in the browser. */
|
|
46
166
|
function createSessionHandlers() {
|
|
47
167
|
const SessionModel = session_model_1.Session;
|
|
48
168
|
const getSessions = (0, _http_1.catchAsync)(async (req, res) => {
|
|
49
|
-
const sessions = await SessionModel
|
|
169
|
+
const sessions = await listSessionViews(SessionModel, req.user._id, req.sessionId);
|
|
50
170
|
res.status(_http_1.HTTP.OK).json({ success: true, sessions });
|
|
51
171
|
});
|
|
172
|
+
const renameSession = (0, _http_1.catchAsync)(async (req, res, next) => {
|
|
173
|
+
var _a;
|
|
174
|
+
const result = await renameSessionDevice(SessionModel, req.user._id, req.params.sessionId, (_a = req.body) === null || _a === void 0 ? void 0 : _a.name);
|
|
175
|
+
if (!result)
|
|
176
|
+
return next(new errors_1.AppError("Session not found", _http_1.HTTP.NOT_FOUND));
|
|
177
|
+
res.status(_http_1.HTTP.OK).json({
|
|
178
|
+
success: true,
|
|
179
|
+
message: result.name ? "Device renamed" : "Device name removed",
|
|
180
|
+
name: result.name,
|
|
181
|
+
});
|
|
182
|
+
});
|
|
52
183
|
const revokeSession = (0, _http_1.catchAsync)(async (req, res, next) => {
|
|
184
|
+
if (!mongoose_1.Types.ObjectId.isValid(req.params.sessionId))
|
|
185
|
+
return next(new errors_1.AppError("Session not found", _http_1.HTTP.NOT_FOUND));
|
|
53
186
|
const session = await SessionModel.findOne({ _id: req.params.sessionId, userId: req.user._id });
|
|
54
187
|
if (!session)
|
|
55
188
|
return next(new errors_1.AppError("Session not found", _http_1.HTTP.NOT_FOUND));
|
|
@@ -57,5 +190,5 @@ function createSessionHandlers() {
|
|
|
57
190
|
await session.save();
|
|
58
191
|
res.status(_http_1.HTTP.OK).json({ success: true, message: "Session revoked" });
|
|
59
192
|
});
|
|
60
|
-
return { getSessions, revokeSession };
|
|
193
|
+
return { getSessions, renameSession, revokeSession };
|
|
61
194
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ import { ActivityLog } from "./models/activityLog.model";
|
|
|
47
47
|
import { recordActivity, activityRecorder, clientIp } from "./activity/recorder";
|
|
48
48
|
import type { ActivityEntry, ActivityRule, ActivityActor, ActivityContext, ActivityRecorderOptions } from "./activity/recorder";
|
|
49
49
|
import { Update } from "./models/update.model";
|
|
50
|
-
import { resolveTicketRouting, pickFromGroup, OPEN_TICKET_STATUSES } from "./routing/ticketRouting";
|
|
50
|
+
import { resolveTicketRouting, pickFromGroup, pickFromTicketTeam, ticketTeamMembers, OPEN_TICKET_STATUSES } from "./routing/ticketRouting";
|
|
51
51
|
import { IChat } from "./interfaces/chat.interface";
|
|
52
52
|
import { IMacro, SCRIPT_ANSWER_FIELDS, ScriptAnswerField } from "./interfaces/macro.interface";
|
|
53
53
|
import { IVertical } from "./interfaces/vertical.interface";
|
|
@@ -81,8 +81,8 @@ import { ILoginOtp } from "./interfaces/loginOtp.interface";
|
|
|
81
81
|
import { IEmployee } from "./interfaces/employee.interface";
|
|
82
82
|
import { ICallSession, CallSessionStatus, CallSessionDirection } from "./interfaces/callSession.interface";
|
|
83
83
|
import { IRequest, IRequestAttachment, IRequestMessage, IRequestActivityEntry, IRequestField, RequestCategory, RequestStatus, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY } from "./interfaces/request.interface";
|
|
84
|
-
import { ITicket, ITicketAttachment, ITicketActivityEntry, ITicketMessage, TicketCategory, ClientTicketCategory, ClientTicketCategoryLegacy, PartnerTicketCategory, PartnerTicketCategoryLegacy, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, TICKET_STATUS_CLIENT_VIEW, CLIENT_TICKET_CATEGORIES, CLIENT_TICKET_CATEGORIES_LEGACY, PARTNER_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES_LEGACY } from "./interfaces/ticket.interface";
|
|
85
|
-
import { TicketCategoryOption, TicketSubCategoryOption, CLIENT_TICKET_CATEGORY_OPTIONS, PARTNER_TICKET_CATEGORY_OPTIONS, CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY, PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY, ALL_TICKET_CATEGORY_OPTIONS, findTicketCategoryOption, EDITABLE_SUBCATEGORY_KEYS, applySubCategoryOverrides } from "./constants/ticketCategories";
|
|
84
|
+
import { ITicket, ITicketAttachment, ITicketActivityEntry, ITicketMessage, TicketCategory, ClientTicketCategory, ClientTicketCategoryLegacy, PartnerTicketCategory, PartnerTicketCategoryLegacy, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, TICKET_STATUS_CLIENT_VIEW, CLIENT_TICKET_CATEGORIES, CLIENT_TICKET_CATEGORIES_LEGACY, PARTNER_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES_LEGACY, TicketTeam, TicketTeamMembership, TICKET_TEAMS, TICKET_TEAM_LABELS } from "./interfaces/ticket.interface";
|
|
85
|
+
import { TicketCategoryOption, TicketSubCategoryOption, CLIENT_TICKET_CATEGORY_OPTIONS, PARTNER_TICKET_CATEGORY_OPTIONS, CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY, PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY, ALL_TICKET_CATEGORY_OPTIONS, findTicketCategoryOption, findTicketCategoryOptionFor, ticketCategoryOptionsFor, ticketTeamFor, EDITABLE_SUBCATEGORY_KEYS, applySubCategoryOverrides } from "./constants/ticketCategories";
|
|
86
86
|
import { ITicketSubCategoryOverride } from "./interfaces/ticketCategoryOverride.interface";
|
|
87
87
|
import { TicketSubCategoryOverride } from "./models/ticketCategoryOverride.model";
|
|
88
88
|
import { IRole } from "./interfaces/role.interface";
|
|
@@ -103,8 +103,8 @@ import { clientTree } from "./permissions/trees/client.tree";
|
|
|
103
103
|
import { getTree, getAllKeys, getParentKey, getAncestorKeys } from "./permissions/treeUtils";
|
|
104
104
|
import { resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, PermissionSource, ValidationResult } from "./permissions/resolve";
|
|
105
105
|
import { roleSeeds, RoleSeed } from "./permissions/seeds/roles.seed";
|
|
106
|
-
export { Chat, Message, User, Vertical, Macro, Partner, Company, CompanySettings, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription, Coupon, Visitor, Group, Agent, LeadLedger, Invoice, LeadDispute, Session, LoginOtp, Counter, Employee, CallSession, Request, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY, Ticket, EmailSenderMap, CLIENT_TICKET_CATEGORIES, CLIENT_TICKET_CATEGORIES_LEGACY, PARTNER_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES_LEGACY, CLIENT_TICKET_CATEGORY_OPTIONS, PARTNER_TICKET_CATEGORY_OPTIONS, CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY, PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY, ALL_TICKET_CATEGORY_OPTIONS, findTicketCategoryOption, EDITABLE_SUBCATEGORY_KEYS, applySubCategoryOverrides, TicketSubCategoryOverride, TICKET_STATUS_CLIENT_VIEW, sanitizeTicketForRequester, Role, AiSummarySettings, AiSummaryUsage, RetainerContract, Retainer, AppointmentCalendar, Appointment, ActivityLog, recordActivity, activityRecorder, clientIp, AuditTask, Update, updateEvents, resolveTicketRouting, pickFromGroup, OPEN_TICKET_STATUSES, SCRIPT_ANSWER_FIELDS, opsTree, employeeTree, partnerTree, clientTree, DASHBOARDS, getTree, getAllKeys, getParentKey, getAncestorKeys, resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, roleSeeds, };
|
|
107
|
-
export type { IChat, ScriptAnswerField, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IOnboardingStep, ITwilioConfig, ICompanySettings, ICallConnectSettings, ILeadConfig, ILeadFields, IRetainerConfig, IDashboardTheme, IReview, IReviewStatusHistoryEntry, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription, ICoupon, CouponDiscountType, IVisitor, IGroup, IAgent, ILeadLedger, IInvoice, ILeadDispute, ISession, ILoginOtp, IEmployee, ICallSession, CallSessionStatus, CallSessionDirection, IRequest, IRequestAttachment, IRequestMessage, IRequestActivityEntry, IRequestField, RequestCategory, RequestStatus, ITicket, ITicketAttachment, ITicketActivityEntry, ITicketMessage, IEmailSenderMap, TicketCategory, ClientTicketCategory, ClientTicketCategoryLegacy, PartnerTicketCategory, PartnerTicketCategoryLegacy, TicketCategoryOption, TicketSubCategoryOption, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, ITicketSubCategoryOverride, IRole, IAiSummarySettings, IAiSummaryExample, IAiSummaryUsage, IRetainerContract, IRetainerContractField, IRetainer, IRetainerFieldValue, RetainerProvider, RetainerContractStatus, RetainerStatus, RetainerDeliveryMode, IAppointmentCalendar, IAppointment, AppointmentCalendarStatus, AppointmentStatus, IActivityLog, IActivityChange, ActivityActorKind, ActivityDashboard, ActivityOutcome, ActivityEntry, ActivityRule, ActivityActor, ActivityContext, ActivityRecorderOptions, AiSummaryLength, IAuditTask, AuditTaskType, AuditTaskStatus, ILeadAudit, LeadAuditDecision, LeadAuditReviewStatus, IUpdate, UpdateDashboard, UpdateAudience, UpdateType, TicketRoutingInput, TicketRoutingResult, Dashboard, PermissionNode, PermissionSource, ValidationResult, RoleSeed, };
|
|
106
|
+
export { Chat, Message, User, Vertical, Macro, Partner, Company, CompanySettings, Review, Wallet, StripeLog, Transaction, Lead, TierConfig, TierProgress, MonthlyTierSnapshot, Product, Plan, PlanOption, Addon, Subscription, Coupon, Visitor, Group, Agent, LeadLedger, Invoice, LeadDispute, Session, LoginOtp, Counter, Employee, CallSession, Request, REQUEST_CATEGORIES, REQUEST_SUBCATEGORIES_BY_CATEGORY, Ticket, EmailSenderMap, CLIENT_TICKET_CATEGORIES, CLIENT_TICKET_CATEGORIES_LEGACY, PARTNER_TICKET_CATEGORIES, PARTNER_TICKET_CATEGORIES_LEGACY, CLIENT_TICKET_CATEGORY_OPTIONS, PARTNER_TICKET_CATEGORY_OPTIONS, CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY, PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY, ALL_TICKET_CATEGORY_OPTIONS, findTicketCategoryOption, findTicketCategoryOptionFor, ticketCategoryOptionsFor, ticketTeamFor, TICKET_TEAMS, TICKET_TEAM_LABELS, EDITABLE_SUBCATEGORY_KEYS, applySubCategoryOverrides, TicketSubCategoryOverride, TICKET_STATUS_CLIENT_VIEW, sanitizeTicketForRequester, Role, AiSummarySettings, AiSummaryUsage, RetainerContract, Retainer, AppointmentCalendar, Appointment, ActivityLog, recordActivity, activityRecorder, clientIp, AuditTask, Update, updateEvents, resolveTicketRouting, pickFromGroup, pickFromTicketTeam, ticketTeamMembers, OPEN_TICKET_STATUSES, SCRIPT_ANSWER_FIELDS, opsTree, employeeTree, partnerTree, clientTree, DASHBOARDS, getTree, getAllKeys, getParentKey, getAncestorKeys, resolveEffectivePermissions, hasPermission, validateGrantedKeys, validateExtraKeys, getFullAccessKeys, roleSeeds, };
|
|
107
|
+
export type { IChat, ScriptAnswerField, IMessage, IUser, IVertical, IMacro, IPartner, ICompany, IOnboardingStep, ITwilioConfig, ICompanySettings, ICallConnectSettings, ILeadConfig, ILeadFields, IRetainerConfig, IDashboardTheme, IReview, IReviewStatusHistoryEntry, IWallet, IStripeLog, ITransaction, ILead, ITierConfig, ITierProgress, IMonthlyTierSnapshot, IProduct, IPlan, IPlanOption, IAddon, ISubscription, ICoupon, CouponDiscountType, IVisitor, IGroup, IAgent, ILeadLedger, IInvoice, ILeadDispute, ISession, ILoginOtp, IEmployee, ICallSession, CallSessionStatus, CallSessionDirection, IRequest, IRequestAttachment, IRequestMessage, IRequestActivityEntry, IRequestField, RequestCategory, RequestStatus, ITicket, ITicketAttachment, ITicketActivityEntry, ITicketMessage, IEmailSenderMap, TicketCategory, ClientTicketCategory, ClientTicketCategoryLegacy, PartnerTicketCategory, PartnerTicketCategoryLegacy, TicketTeam, TicketTeamMembership, TicketCategoryOption, TicketSubCategoryOption, TicketOwnerType, TicketSource, TicketStatus, TicketPriority, ITicketSubCategoryOverride, IRole, IAiSummarySettings, IAiSummaryExample, IAiSummaryUsage, IRetainerContract, IRetainerContractField, IRetainer, IRetainerFieldValue, RetainerProvider, RetainerContractStatus, RetainerStatus, RetainerDeliveryMode, IAppointmentCalendar, IAppointment, AppointmentCalendarStatus, AppointmentStatus, IActivityLog, IActivityChange, ActivityActorKind, ActivityDashboard, ActivityOutcome, ActivityEntry, ActivityRule, ActivityActor, ActivityContext, ActivityRecorderOptions, AiSummaryLength, IAuditTask, AuditTaskType, AuditTaskStatus, ILeadAudit, LeadAuditDecision, LeadAuditReviewStatus, IUpdate, UpdateDashboard, UpdateAudience, UpdateType, TicketRoutingInput, TicketRoutingResult, Dashboard, PermissionNode, PermissionSource, ValidationResult, RoleSeed, };
|
|
108
108
|
export * from "./helpers/errors";
|
|
109
109
|
export * from "./helpers/listQuery";
|
|
110
110
|
export * from "./helpers/chatAttachments";
|
|
@@ -112,11 +112,14 @@ export * from "./helpers/addonState";
|
|
|
112
112
|
export * from "./helpers/analyticsBuckets";
|
|
113
113
|
export * from "./helpers/contactDecrypt";
|
|
114
114
|
export * from "./helpers/s3Storage";
|
|
115
|
+
export * from "./helpers/privateFiles";
|
|
115
116
|
export * from "./helpers/emailTemplates";
|
|
116
117
|
export * from "./helpers/avatars";
|
|
117
118
|
export * from "./helpers/myUpdates";
|
|
118
119
|
export * from "./helpers/ownActivity";
|
|
119
120
|
export * from "./helpers/sessions";
|
|
121
|
+
export { normalizeIp, isPrivateIp, requestLocation, describeDevice, cleanDeviceName } from "./helpers/requestInfo";
|
|
122
|
+
export type { DeviceHints, DeviceDescription } from "./helpers/requestInfo";
|
|
120
123
|
export * from "./helpers/invoiceDocument";
|
|
121
124
|
export * from "./helpers/ownTickets";
|
|
122
125
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.roleSeeds = exports.getFullAccessKeys = exports.validateExtraKeys = exports.validateGrantedKeys = exports.hasPermission = exports.resolveEffectivePermissions = exports.getAncestorKeys = exports.getParentKey = exports.getAllKeys = exports.getTree = exports.DASHBOARDS = exports.clientTree = exports.partnerTree = exports.employeeTree = exports.opsTree = exports.SCRIPT_ANSWER_FIELDS = exports.OPEN_TICKET_STATUSES = exports.pickFromGroup = exports.resolveTicketRouting = exports.updateEvents = exports.Update = exports.AuditTask = exports.clientIp = exports.activityRecorder = exports.recordActivity = exports.ActivityLog = exports.Appointment = exports.AppointmentCalendar = exports.Retainer = exports.RetainerContract = exports.AiSummaryUsage = exports.AiSummarySettings = exports.Role = exports.sanitizeTicketForRequester = exports.TICKET_STATUS_CLIENT_VIEW = exports.TicketSubCategoryOverride = void 0;
|
|
17
|
+
exports.ticketCategoryOptionsFor = exports.findTicketCategoryOptionFor = exports.findTicketCategoryOption = exports.ALL_TICKET_CATEGORY_OPTIONS = exports.PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY = exports.CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY = exports.PARTNER_TICKET_CATEGORY_OPTIONS = exports.CLIENT_TICKET_CATEGORY_OPTIONS = exports.PARTNER_TICKET_CATEGORIES_LEGACY = exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES_LEGACY = exports.CLIENT_TICKET_CATEGORIES = exports.EmailSenderMap = exports.Ticket = exports.REQUEST_SUBCATEGORIES_BY_CATEGORY = exports.REQUEST_CATEGORIES = exports.Request = exports.CallSession = exports.Employee = exports.Counter = exports.LoginOtp = exports.Session = exports.LeadDispute = exports.Invoice = exports.LeadLedger = exports.Agent = exports.Group = exports.Visitor = exports.Coupon = exports.Subscription = exports.Addon = exports.PlanOption = exports.Plan = exports.Product = exports.MonthlyTierSnapshot = exports.TierProgress = exports.TierConfig = exports.Lead = exports.Transaction = exports.StripeLog = exports.Wallet = exports.Review = exports.CompanySettings = exports.Company = exports.Partner = exports.Macro = exports.Vertical = exports.User = exports.Message = exports.Chat = void 0;
|
|
18
|
+
exports.cleanDeviceName = exports.describeDevice = exports.requestLocation = exports.isPrivateIp = exports.normalizeIp = exports.roleSeeds = exports.getFullAccessKeys = exports.validateExtraKeys = exports.validateGrantedKeys = exports.hasPermission = exports.resolveEffectivePermissions = exports.getAncestorKeys = exports.getParentKey = exports.getAllKeys = exports.getTree = exports.DASHBOARDS = exports.clientTree = exports.partnerTree = exports.employeeTree = exports.opsTree = exports.SCRIPT_ANSWER_FIELDS = exports.OPEN_TICKET_STATUSES = exports.ticketTeamMembers = exports.pickFromTicketTeam = exports.pickFromGroup = exports.resolveTicketRouting = exports.updateEvents = exports.Update = exports.AuditTask = exports.clientIp = exports.activityRecorder = exports.recordActivity = exports.ActivityLog = exports.Appointment = exports.AppointmentCalendar = exports.Retainer = exports.RetainerContract = exports.AiSummaryUsage = exports.AiSummarySettings = exports.Role = exports.sanitizeTicketForRequester = exports.TICKET_STATUS_CLIENT_VIEW = exports.TicketSubCategoryOverride = exports.applySubCategoryOverrides = exports.EDITABLE_SUBCATEGORY_KEYS = exports.TICKET_TEAM_LABELS = exports.TICKET_TEAMS = exports.ticketTeamFor = void 0;
|
|
19
19
|
// MODELS
|
|
20
20
|
const chat_model_1 = require("./models/chat.model");
|
|
21
21
|
Object.defineProperty(exports, "Chat", { enumerable: true, get: function () { return chat_model_1.Chat; } });
|
|
@@ -116,6 +116,8 @@ Object.defineProperty(exports, "Update", { enumerable: true, get: function () {
|
|
|
116
116
|
const ticketRouting_1 = require("./routing/ticketRouting");
|
|
117
117
|
Object.defineProperty(exports, "resolveTicketRouting", { enumerable: true, get: function () { return ticketRouting_1.resolveTicketRouting; } });
|
|
118
118
|
Object.defineProperty(exports, "pickFromGroup", { enumerable: true, get: function () { return ticketRouting_1.pickFromGroup; } });
|
|
119
|
+
Object.defineProperty(exports, "pickFromTicketTeam", { enumerable: true, get: function () { return ticketRouting_1.pickFromTicketTeam; } });
|
|
120
|
+
Object.defineProperty(exports, "ticketTeamMembers", { enumerable: true, get: function () { return ticketRouting_1.ticketTeamMembers; } });
|
|
119
121
|
Object.defineProperty(exports, "OPEN_TICKET_STATUSES", { enumerable: true, get: function () { return ticketRouting_1.OPEN_TICKET_STATUSES; } });
|
|
120
122
|
const macro_interface_1 = require("./interfaces/macro.interface");
|
|
121
123
|
Object.defineProperty(exports, "SCRIPT_ANSWER_FIELDS", { enumerable: true, get: function () { return macro_interface_1.SCRIPT_ANSWER_FIELDS; } });
|
|
@@ -128,6 +130,8 @@ Object.defineProperty(exports, "CLIENT_TICKET_CATEGORIES", { enumerable: true, g
|
|
|
128
130
|
Object.defineProperty(exports, "CLIENT_TICKET_CATEGORIES_LEGACY", { enumerable: true, get: function () { return ticket_interface_1.CLIENT_TICKET_CATEGORIES_LEGACY; } });
|
|
129
131
|
Object.defineProperty(exports, "PARTNER_TICKET_CATEGORIES", { enumerable: true, get: function () { return ticket_interface_1.PARTNER_TICKET_CATEGORIES; } });
|
|
130
132
|
Object.defineProperty(exports, "PARTNER_TICKET_CATEGORIES_LEGACY", { enumerable: true, get: function () { return ticket_interface_1.PARTNER_TICKET_CATEGORIES_LEGACY; } });
|
|
133
|
+
Object.defineProperty(exports, "TICKET_TEAMS", { enumerable: true, get: function () { return ticket_interface_1.TICKET_TEAMS; } });
|
|
134
|
+
Object.defineProperty(exports, "TICKET_TEAM_LABELS", { enumerable: true, get: function () { return ticket_interface_1.TICKET_TEAM_LABELS; } });
|
|
131
135
|
const ticketCategories_1 = require("./constants/ticketCategories");
|
|
132
136
|
Object.defineProperty(exports, "CLIENT_TICKET_CATEGORY_OPTIONS", { enumerable: true, get: function () { return ticketCategories_1.CLIENT_TICKET_CATEGORY_OPTIONS; } });
|
|
133
137
|
Object.defineProperty(exports, "PARTNER_TICKET_CATEGORY_OPTIONS", { enumerable: true, get: function () { return ticketCategories_1.PARTNER_TICKET_CATEGORY_OPTIONS; } });
|
|
@@ -135,6 +139,9 @@ Object.defineProperty(exports, "CLIENT_TICKET_CATEGORY_OPTIONS_LEGACY", { enumer
|
|
|
135
139
|
Object.defineProperty(exports, "PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY", { enumerable: true, get: function () { return ticketCategories_1.PARTNER_TICKET_CATEGORY_OPTIONS_LEGACY; } });
|
|
136
140
|
Object.defineProperty(exports, "ALL_TICKET_CATEGORY_OPTIONS", { enumerable: true, get: function () { return ticketCategories_1.ALL_TICKET_CATEGORY_OPTIONS; } });
|
|
137
141
|
Object.defineProperty(exports, "findTicketCategoryOption", { enumerable: true, get: function () { return ticketCategories_1.findTicketCategoryOption; } });
|
|
142
|
+
Object.defineProperty(exports, "findTicketCategoryOptionFor", { enumerable: true, get: function () { return ticketCategories_1.findTicketCategoryOptionFor; } });
|
|
143
|
+
Object.defineProperty(exports, "ticketCategoryOptionsFor", { enumerable: true, get: function () { return ticketCategories_1.ticketCategoryOptionsFor; } });
|
|
144
|
+
Object.defineProperty(exports, "ticketTeamFor", { enumerable: true, get: function () { return ticketCategories_1.ticketTeamFor; } });
|
|
138
145
|
Object.defineProperty(exports, "EDITABLE_SUBCATEGORY_KEYS", { enumerable: true, get: function () { return ticketCategories_1.EDITABLE_SUBCATEGORY_KEYS; } });
|
|
139
146
|
Object.defineProperty(exports, "applySubCategoryOverrides", { enumerable: true, get: function () { return ticketCategories_1.applySubCategoryOverrides; } });
|
|
140
147
|
const ticketCategoryOverride_model_1 = require("./models/ticketCategoryOverride.model");
|
|
@@ -175,10 +182,17 @@ __exportStar(require("./helpers/addonState"), exports);
|
|
|
175
182
|
__exportStar(require("./helpers/analyticsBuckets"), exports);
|
|
176
183
|
__exportStar(require("./helpers/contactDecrypt"), exports);
|
|
177
184
|
__exportStar(require("./helpers/s3Storage"), exports);
|
|
185
|
+
__exportStar(require("./helpers/privateFiles"), exports);
|
|
178
186
|
__exportStar(require("./helpers/emailTemplates"), exports);
|
|
179
187
|
__exportStar(require("./helpers/avatars"), exports);
|
|
180
188
|
__exportStar(require("./helpers/myUpdates"), exports);
|
|
181
189
|
__exportStar(require("./helpers/ownActivity"), exports);
|
|
182
190
|
__exportStar(require("./helpers/sessions"), exports);
|
|
191
|
+
var requestInfo_1 = require("./helpers/requestInfo");
|
|
192
|
+
Object.defineProperty(exports, "normalizeIp", { enumerable: true, get: function () { return requestInfo_1.normalizeIp; } });
|
|
193
|
+
Object.defineProperty(exports, "isPrivateIp", { enumerable: true, get: function () { return requestInfo_1.isPrivateIp; } });
|
|
194
|
+
Object.defineProperty(exports, "requestLocation", { enumerable: true, get: function () { return requestInfo_1.requestLocation; } });
|
|
195
|
+
Object.defineProperty(exports, "describeDevice", { enumerable: true, get: function () { return requestInfo_1.describeDevice; } });
|
|
196
|
+
Object.defineProperty(exports, "cleanDeviceName", { enumerable: true, get: function () { return requestInfo_1.cleanDeviceName; } });
|
|
183
197
|
__exportStar(require("./helpers/invoiceDocument"), exports);
|
|
184
198
|
__exportStar(require("./helpers/ownTickets"), exports);
|
|
@@ -88,6 +88,8 @@ export interface ICompany extends mongoose.Document {
|
|
|
88
88
|
clientInstructionEnabled?: boolean;
|
|
89
89
|
/** Ops granted this client access to its own Activity log. */
|
|
90
90
|
activityLogAccess?: boolean;
|
|
91
|
+
/** Month ("YYYY-MM") of the last monthly summary email sent to the main contact. */
|
|
92
|
+
monthlySummarySentFor?: string;
|
|
91
93
|
/** Ordered script folders (Vertical ids) Ops chose for this company. */
|
|
92
94
|
scriptVerticals?: Types.ObjectId[];
|
|
93
95
|
scriptBot?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"company.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/company.interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"company.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/company.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/session.interface.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,QAAS,SAAQ,QAAQ,CAAC,QAAQ;IACjD,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"session.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/session.interface.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,QAAS,SAAQ,QAAQ,CAAC,QAAQ;IACjD,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB"}
|
|
@@ -14,6 +14,8 @@ export interface ISubscription {
|
|
|
14
14
|
stripeSubscriptionItemId?: string;
|
|
15
15
|
stripePriceId?: string;
|
|
16
16
|
quantity: number;
|
|
17
|
+
/** Paid plan, add-on removed: stays on until this date (end of the paid period), then comes off. */
|
|
18
|
+
removeAt?: Date;
|
|
17
19
|
}[];
|
|
18
20
|
disabledAddons?: Types.ObjectId[];
|
|
19
21
|
stripePlan?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/subscription.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,UAAU,GACV,WAAW,GACX,WAAW,GACX,cAAc,GACd,SAAS,GACT,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC;IACrB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAElB,MAAM,EAAE;QACN,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;QACtB,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"subscription.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/subscription.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
import { Document, Types } from "mongoose";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* A ticket in this category just gives Ops a place to see the report and
|
|
8
|
-
* manually open the real Dispute tool once they've identified the invoice
|
|
9
|
-
* line item. Revisit auto-linking as a later phase.
|
|
3
|
+
* Ticket categories, named by topic in the requester's own words (Oct 2 2026 redesign -- the
|
|
4
|
+
* team-named "Technical Support"/"Account Support" of the Phase 28 pass made people guess which
|
|
5
|
+
* team their problem belonged to). Each category (or one of its sub-categories) is handled by one
|
|
6
|
+
* team -- see TicketTeam and the `team` on each option in constants/ticketCategories.ts.
|
|
10
7
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* tickets already filed under "chat-dispute" or any legacy value are left
|
|
15
|
-
* alone and shown as Legacy -- see CLIENT_TICKET_CATEGORIES_LEGACY below --
|
|
16
|
-
* per the "no remapping" decision.
|
|
8
|
+
* Old tickets keep whatever category they were filed under; those values stay valid as Legacy
|
|
9
|
+
* (shown with "(Legacy)", never offered on a new ticket) per the "no remapping" decision.
|
|
10
|
+
* "dispute-billable-lead" opens the real LeadDispute behind it (see helpers/ownTickets.ts).
|
|
17
11
|
*/
|
|
18
|
-
export type ClientTicketCategory = "dispute-billable-lead" | "invoice-dispute" | "
|
|
19
|
-
export type ClientTicketCategoryLegacy = "chat-dispute";
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* payout, a failed transfer, the dashboard itself, or their own account.
|
|
24
|
-
*
|
|
25
|
-
* 2026-09-22 Phase 28 taxonomy pass: replaces the old
|
|
26
|
-
* dashboard-technical-issue/payout-issue/referral-issue/review-submission-issue/other
|
|
27
|
-
* list (kept below as PARTNER_TICKET_CATEGORIES_LEGACY, same "no remapping" decision).
|
|
28
|
-
*/
|
|
29
|
-
export type PartnerTicketCategory = "failed-withdrawal" | "failed-transfer" | "technical-support" | "account-support";
|
|
30
|
-
export type PartnerTicketCategoryLegacy = "dashboard-technical-issue" | "payout-issue" | "referral-issue" | "review-submission-issue" | "other";
|
|
12
|
+
export type ClientTicketCategory = "leads" | "dispute-billable-lead" | "billing" | "invoice-dispute" | "scripts" | "widget" | "call-connect" | "integrations" | "dashboard" | "account" | "something-else";
|
|
13
|
+
export type ClientTicketCategoryLegacy = "chat-dispute" | "technical-support" | "account-support";
|
|
14
|
+
/** Partner Dashboard's categories -- commissions, payouts, referrals and reviews instead of leads. */
|
|
15
|
+
export type PartnerTicketCategory = "commissions" | "failed-withdrawal" | "failed-transfer" | "referrals" | "reviews" | "dashboard" | "account" | "something-else";
|
|
16
|
+
export type PartnerTicketCategoryLegacy = "dashboard-technical-issue" | "payout-issue" | "referral-issue" | "review-submission-issue" | "other" | "technical-support" | "account-support";
|
|
31
17
|
export type TicketCategory = ClientTicketCategory | ClientTicketCategoryLegacy | PartnerTicketCategory | PartnerTicketCategoryLegacy;
|
|
32
18
|
export declare const CLIENT_TICKET_CATEGORIES: ClientTicketCategory[];
|
|
33
19
|
export declare const CLIENT_TICKET_CATEGORIES_LEGACY: ClientTicketCategoryLegacy[];
|
|
34
20
|
export declare const PARTNER_TICKET_CATEGORIES: PartnerTicketCategory[];
|
|
35
21
|
export declare const PARTNER_TICKET_CATEGORIES_LEGACY: PartnerTicketCategoryLegacy[];
|
|
22
|
+
/**
|
|
23
|
+
* Who handles a ticket: "billing" / "scripting" / "general" are teams of Ops logins (a profile's
|
|
24
|
+
* Ticket Team, User.ticketTeams); "account-manager" is the ticket owner's own Account Manager
|
|
25
|
+
* (Company.basicInfo.accountManager / Partner.accountInfo.accountManager).
|
|
26
|
+
*/
|
|
27
|
+
export type TicketTeam = "billing" | "scripting" | "account-manager" | "general";
|
|
28
|
+
export declare const TICKET_TEAMS: TicketTeam[];
|
|
29
|
+
/** The teams a person can be put on from their Ops profile (Account Manager comes from the account). */
|
|
30
|
+
export type TicketTeamMembership = Exclude<TicketTeam, "account-manager">;
|
|
31
|
+
export declare const TICKET_TEAM_LABELS: Record<TicketTeam, string>;
|
|
36
32
|
/** Who this ticket belongs to -- Company (Client Dashboard) or Partner. */
|
|
37
33
|
export type TicketOwnerType = "Company" | "Partner";
|
|
38
34
|
/**
|
|
@@ -129,6 +125,10 @@ export interface ITicket extends Document {
|
|
|
129
125
|
requesterEmail?: string;
|
|
130
126
|
status: TicketStatus;
|
|
131
127
|
priority: TicketPriority;
|
|
128
|
+
/** The team this ticket's category/sub-category belongs to (see ticketTeamFor in
|
|
129
|
+
* constants/ticketCategories.ts). Set when the ticket is routed and whenever its category
|
|
130
|
+
* changes; unset on an email ticket nobody has categorised yet. */
|
|
131
|
+
team?: TicketTeam;
|
|
132
132
|
/** The Ops User (Support Agent/Manager, or any Ops role with tickets.updateTicket) currently
|
|
133
133
|
* responsible for this ticket. Unset means it's sitting in an unassigned pool. */
|
|
134
134
|
assigneeId?: Types.ObjectId;
|
|
@@ -145,6 +145,10 @@ export interface ITicket extends Document {
|
|
|
145
145
|
* without deleting it or inventing a fake status; a merged/closed ticket still uses `status` +
|
|
146
146
|
* `remarks` (see mergeTicket in ops-dashboard's ticket.controller.js), this is spam alone. */
|
|
147
147
|
isSpam?: boolean;
|
|
148
|
+
/** When the Ops team's new-ticket alert email went out (once per ticket). */
|
|
149
|
+
teamAlertSentAt?: Date;
|
|
150
|
+
/** When the 24-hour no-reply escalation email went out (once per ticket). */
|
|
151
|
+
slaEscalatedAt?: Date;
|
|
148
152
|
createdAt?: Date;
|
|
149
153
|
updatedAt?: Date;
|
|
150
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ticket.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"ticket.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/ticket.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TICKET_STATUS_CLIENT_VIEW = exports.PARTNER_TICKET_CATEGORIES_LEGACY = exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES_LEGACY = exports.CLIENT_TICKET_CATEGORIES = void 0;
|
|
3
|
+
exports.TICKET_STATUS_CLIENT_VIEW = exports.TICKET_TEAM_LABELS = exports.TICKET_TEAMS = exports.PARTNER_TICKET_CATEGORIES_LEGACY = exports.PARTNER_TICKET_CATEGORIES = exports.CLIENT_TICKET_CATEGORIES_LEGACY = exports.CLIENT_TICKET_CATEGORIES = void 0;
|
|
4
4
|
exports.CLIENT_TICKET_CATEGORIES = [
|
|
5
|
+
"leads",
|
|
5
6
|
"dispute-billable-lead",
|
|
7
|
+
"billing",
|
|
6
8
|
"invoice-dispute",
|
|
9
|
+
"scripts",
|
|
10
|
+
"widget",
|
|
11
|
+
"call-connect",
|
|
12
|
+
"integrations",
|
|
13
|
+
"dashboard",
|
|
14
|
+
"account",
|
|
15
|
+
"something-else",
|
|
16
|
+
];
|
|
17
|
+
exports.CLIENT_TICKET_CATEGORIES_LEGACY = [
|
|
18
|
+
"chat-dispute",
|
|
7
19
|
"technical-support",
|
|
8
20
|
"account-support",
|
|
9
21
|
];
|
|
10
|
-
exports.CLIENT_TICKET_CATEGORIES_LEGACY = ["chat-dispute"];
|
|
11
22
|
exports.PARTNER_TICKET_CATEGORIES = [
|
|
23
|
+
"commissions",
|
|
12
24
|
"failed-withdrawal",
|
|
13
25
|
"failed-transfer",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
26
|
+
"referrals",
|
|
27
|
+
"reviews",
|
|
28
|
+
"dashboard",
|
|
29
|
+
"account",
|
|
30
|
+
"something-else",
|
|
16
31
|
];
|
|
17
32
|
exports.PARTNER_TICKET_CATEGORIES_LEGACY = [
|
|
18
33
|
"dashboard-technical-issue",
|
|
@@ -20,7 +35,16 @@ exports.PARTNER_TICKET_CATEGORIES_LEGACY = [
|
|
|
20
35
|
"referral-issue",
|
|
21
36
|
"review-submission-issue",
|
|
22
37
|
"other",
|
|
38
|
+
"technical-support",
|
|
39
|
+
"account-support",
|
|
23
40
|
];
|
|
41
|
+
exports.TICKET_TEAMS = ["billing", "scripting", "account-manager", "general"];
|
|
42
|
+
exports.TICKET_TEAM_LABELS = {
|
|
43
|
+
billing: "Billing Team",
|
|
44
|
+
scripting: "Scripting Team",
|
|
45
|
+
"account-manager": "Account Manager",
|
|
46
|
+
general: "General Support",
|
|
47
|
+
};
|
|
24
48
|
/** How a TicketStatus should read to the ticket's own requester (Client/Partner Dashboard). */
|
|
25
49
|
exports.TICKET_STATUS_CLIENT_VIEW = {
|
|
26
50
|
open: "open",
|