@cofondateurauchomage/libs 1.1.167 → 1.1.169
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/build/api.d.ts +9 -1
- package/build/api.validate.js +1 -0
- package/build/crm/index.d.ts +2 -0
- package/build/crm/index.js +18 -0
- package/build/crm/notes.d.ts +5 -0
- package/build/crm/notes.js +16 -0
- package/build/crm/searchText.d.ts +5 -0
- package/build/crm/searchText.js +42 -0
- package/build/db.model.d.ts +2 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/package.json +1 -1
package/build/api.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBlogHtmlArticle, IContact, INewsletter, IProject, IProspect, IReactionStatus, IUser, TPlan, TPlanOption, TVisibility } from "./db.model";
|
|
2
|
-
export type CloudFunctionNames = "createProject" | "updateProject" | "deleteProject" | "createUser" | "updateUser" | "deleteUser" | "updateVisibility" | "addStripeId" | "updatePlan" | "updateMetaStripe" | "addStatsAssociation" | "updateNewsletter" | "createProspect" | "getProspect" | "updateProspect" | "createReaction" | "deleteReaction" | "createBlogHtmlArticle" | "syncCrmProfiles";
|
|
2
|
+
export type CloudFunctionNames = "createProject" | "updateProject" | "deleteProject" | "createUser" | "updateUser" | "deleteUser" | "updateVisibility" | "addStripeId" | "updatePlan" | "updateMetaStripe" | "addStatsAssociation" | "updateNewsletter" | "createProspect" | "getProspect" | "updateProspect" | "createReaction" | "deleteReaction" | "createBlogHtmlArticle" | "syncCrmProfiles" | "migrateCrmNotes";
|
|
3
3
|
export type RouteNames = "checkout_session" | "delete_customer" | "portal_session" | "webhook";
|
|
4
4
|
export type BodyForO<O extends CloudFunctionNames | RouteNames> = {
|
|
5
5
|
createProject: Omit<IProject, "id" | "plan" | "visibility" | "clicks" | "creationDate" | "lastConnection" | "stripeId" | "referrer" | "postedOnLinkedInAt"> & IContact & {
|
|
@@ -58,6 +58,8 @@ export type BodyForO<O extends CloudFunctionNames | RouteNames> = {
|
|
|
58
58
|
};
|
|
59
59
|
/** Admin-only: rebuild all `crm_profiles` from source collections. */
|
|
60
60
|
syncCrmProfiles: Record<string, never>;
|
|
61
|
+
/** Admin-only: lift `notes` subcollections onto parent `crm_profiles` docs. */
|
|
62
|
+
migrateCrmNotes: Record<string, never>;
|
|
61
63
|
checkout_session: {
|
|
62
64
|
customer: {
|
|
63
65
|
email: string;
|
|
@@ -112,6 +114,12 @@ export type ResponseForO<O extends CloudFunctionNames | RouteNames> = {
|
|
|
112
114
|
synced: number;
|
|
113
115
|
failed: number;
|
|
114
116
|
};
|
|
117
|
+
migrateCrmNotes: {
|
|
118
|
+
migrated: number;
|
|
119
|
+
skipped: number;
|
|
120
|
+
deletedSubdocs: number;
|
|
121
|
+
failed: number;
|
|
122
|
+
};
|
|
115
123
|
checkout_session: {
|
|
116
124
|
sessionId: string;
|
|
117
125
|
};
|
package/build/api.validate.js
CHANGED
|
@@ -237,6 +237,7 @@ const schemasForAllRoutes = {
|
|
|
237
237
|
toc: zod_1.z.string().optional(),
|
|
238
238
|
}),
|
|
239
239
|
syncCrmProfiles: zod_1.z.object({}),
|
|
240
|
+
migrateCrmNotes: zod_1.z.object({}),
|
|
240
241
|
checkout_session: zod_1.z.object({
|
|
241
242
|
customer: zod_1.z.object({
|
|
242
243
|
email: zod_1.z.string(),
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./notes"), exports);
|
|
18
|
+
__exportStar(require("./searchText"), exports);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ICrmNote } from "../db.model";
|
|
2
|
+
export declare const MAX_CRM_NOTES = 20;
|
|
3
|
+
export declare function hasCrmNotes(notes: ICrmNote[] | undefined): boolean;
|
|
4
|
+
export declare function sortCrmNotesDesc(notes: ICrmNote[]): ICrmNote[];
|
|
5
|
+
export declare function appendCrmNote(existing: ICrmNote[] | undefined, note: ICrmNote): ICrmNote[];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_CRM_NOTES = void 0;
|
|
4
|
+
exports.hasCrmNotes = hasCrmNotes;
|
|
5
|
+
exports.sortCrmNotesDesc = sortCrmNotesDesc;
|
|
6
|
+
exports.appendCrmNote = appendCrmNote;
|
|
7
|
+
exports.MAX_CRM_NOTES = 20;
|
|
8
|
+
function hasCrmNotes(notes) {
|
|
9
|
+
return (notes?.length ?? 0) > 0;
|
|
10
|
+
}
|
|
11
|
+
function sortCrmNotesDesc(notes) {
|
|
12
|
+
return [...notes].sort((a, b) => (b.createdAt ?? 0) - (a.createdAt ?? 0));
|
|
13
|
+
}
|
|
14
|
+
function appendCrmNote(existing, note) {
|
|
15
|
+
return sortCrmNotesDesc([note, ...(existing ?? [])]).slice(0, exports.MAX_CRM_NOTES);
|
|
16
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildCrmProfileSearchText = buildCrmProfileSearchText;
|
|
4
|
+
const stringUtils_1 = require("../utils/stringUtils");
|
|
5
|
+
function pushPart(parts, value) {
|
|
6
|
+
const t = value?.trim();
|
|
7
|
+
if (t) {
|
|
8
|
+
parts.push(t);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function buildCrmProfileSearchText(doc) {
|
|
12
|
+
const parts = [];
|
|
13
|
+
if (doc.type === "prospect") {
|
|
14
|
+
const profile = doc.profile;
|
|
15
|
+
pushPart(parts, profile.email);
|
|
16
|
+
pushPart(parts, profile.firstName);
|
|
17
|
+
pushPart(parts, profile.lastName);
|
|
18
|
+
pushPart(parts, profile.city);
|
|
19
|
+
pushPart(parts, profile.linkedin);
|
|
20
|
+
}
|
|
21
|
+
else if (doc.type === "user") {
|
|
22
|
+
const profile = doc.profile;
|
|
23
|
+
pushPart(parts, profile.firstName);
|
|
24
|
+
pushPart(parts, profile.lastName);
|
|
25
|
+
pushPart(parts, profile.city);
|
|
26
|
+
pushPart(parts, doc.contact?.email);
|
|
27
|
+
pushPart(parts, doc.contact?.linkedin);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const profile = doc.profile;
|
|
31
|
+
pushPart(parts, profile.name);
|
|
32
|
+
pushPart(parts, profile.firstName);
|
|
33
|
+
pushPart(parts, profile.lastName);
|
|
34
|
+
pushPart(parts, profile.city);
|
|
35
|
+
pushPart(parts, doc.contact?.email);
|
|
36
|
+
pushPart(parts, doc.contact?.linkedin);
|
|
37
|
+
}
|
|
38
|
+
for (const note of doc.notes ?? []) {
|
|
39
|
+
pushPart(parts, note.text);
|
|
40
|
+
}
|
|
41
|
+
return (0, stringUtils_1.foldSearchText)(parts.join(" "));
|
|
42
|
+
}
|
package/build/db.model.d.ts
CHANGED
package/build/index.d.ts
CHANGED
package/build/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./api"), exports);
|
|
18
18
|
__exportStar(require("./api.validate"), exports);
|
|
19
19
|
__exportStar(require("./const"), exports);
|
|
20
|
+
__exportStar(require("./crm"), exports);
|
|
20
21
|
__exportStar(require("./db.model"), exports);
|
|
21
22
|
__exportStar(require("./regex"), exports);
|
|
22
23
|
__exportStar(require("./utils"), exports);
|