placementt-core 1.400.1129 → 1.400.1131
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/lib/callables/__tests__/outreach.test.js +1 -1
- package/lib/callables/__tests__/outreach.test.js.map +1 -1
- package/lib/callables/outreach.d.ts +4 -3
- package/lib/callables/outreach.js +2 -1
- package/lib/callables/outreach.js.map +1 -1
- package/lib/callables/registry.d.ts +6 -6
- package/lib/contactName.d.ts +14 -0
- package/lib/contactName.js +27 -0
- package/lib/contactName.js.map +1 -0
- package/lib/contactName.test.d.ts +1 -0
- package/lib/contactName.test.js +25 -0
- package/lib/contactName.test.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/typeDefinitions.d.ts +4 -3
- package/package.json +1 -1
- package/src/callables/__tests__/outreach.test.ts +1 -1
- package/src/callables/outreach.ts +2 -1
- package/src/contactName.test.ts +23 -0
- package/src/contactName.ts +23 -0
- package/src/index.ts +1 -0
- package/src/typeDefinitions.ts +4 -3
|
@@ -26,7 +26,7 @@ const samples = {
|
|
|
26
26
|
},
|
|
27
27
|
"outreach-setupBrevo": {
|
|
28
28
|
request: {},
|
|
29
|
-
response: {
|
|
29
|
+
response: { folderId: 12, customersListId: 80, webhookId: 5, attributesCreated: ["URN"] },
|
|
30
30
|
},
|
|
31
31
|
"outreach-migrateExisting": {
|
|
32
32
|
request: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outreach.test.js","sourceRoot":"","sources":["../../../src/callables/__tests__/outreach.test.ts"],"names":[],"mappings":";;AAAA,0CAA8C;AAE9C;yDACyD;AACzD,MAAM,OAAO,GAAmF;IAC5F,yBAAyB,EAAE;QACvB,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAC;QACvH,QAAQ,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAC,CAAC,EAAC;KACjJ;IACD,oBAAoB,EAAE;QAClB,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAC;QACzF,QAAQ,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAC;KACzF;IACD,mBAAmB,EAAE;QACjB,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAC;QACtC,QAAQ,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,EAAC;KACrF;IACD,wBAAwB,EAAE;QACtB,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAC,EAAC;QACzI,QAAQ,EAAE,EAAC,MAAM,EAAE,OAAO,EAAC;KAC9B;IACD,0BAA0B,EAAE;QACxB,OAAO,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC;QACtB,QAAQ,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC,EAAE,QAAQ,EAAE,wCAAwC,EAAC;KAC/J;IACD,qBAAqB,EAAE;QACnB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"outreach.test.js","sourceRoot":"","sources":["../../../src/callables/__tests__/outreach.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -260,17 +260,18 @@ export declare const outreachCallables: {
|
|
|
260
260
|
"outreach-setupBrevo": {
|
|
261
261
|
request: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
262
262
|
response: z.ZodObject<{
|
|
263
|
-
|
|
263
|
+
/** The Brevo "Marketing Contacts" folder the group lists live in. */
|
|
264
|
+
folderId: z.ZodNumber;
|
|
264
265
|
customersListId: z.ZodNumber;
|
|
265
266
|
webhookId: z.ZodNumber;
|
|
266
267
|
attributesCreated: z.ZodArray<z.ZodString, "many">;
|
|
267
268
|
}, "strip", z.ZodTypeAny, {
|
|
268
|
-
|
|
269
|
+
folderId: number;
|
|
269
270
|
customersListId: number;
|
|
270
271
|
webhookId: number;
|
|
271
272
|
attributesCreated: string[];
|
|
272
273
|
}, {
|
|
273
|
-
|
|
274
|
+
folderId: number;
|
|
274
275
|
customersListId: number;
|
|
275
276
|
webhookId: number;
|
|
276
277
|
attributesCreated: string[];
|
|
@@ -106,7 +106,8 @@ exports.outreachCallables = {
|
|
|
106
106
|
"outreach-setupBrevo": {
|
|
107
107
|
request: zod_1.z.object({}),
|
|
108
108
|
response: zod_1.z.object({
|
|
109
|
-
|
|
109
|
+
/** The Brevo "Marketing Contacts" folder the group lists live in. */
|
|
110
|
+
folderId: zod_1.z.number(),
|
|
110
111
|
customersListId: zod_1.z.number(),
|
|
111
112
|
webhookId: zod_1.z.number(),
|
|
112
113
|
attributesCreated: zod_1.z.array(zod_1.z.string()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outreach.js","sourceRoot":"","sources":["../../src/callables/outreach.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"outreach.js","sourceRoot":"","sources":["../../src/callables/outreach.ts"],"names":[],"mappings":"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"}
|
|
@@ -262,17 +262,17 @@ export declare const allCallables: {
|
|
|
262
262
|
"outreach-setupBrevo": {
|
|
263
263
|
request: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
264
264
|
response: z.ZodObject<{
|
|
265
|
-
|
|
265
|
+
folderId: z.ZodNumber;
|
|
266
266
|
customersListId: z.ZodNumber;
|
|
267
267
|
webhookId: z.ZodNumber;
|
|
268
268
|
attributesCreated: z.ZodArray<z.ZodString, "many">;
|
|
269
269
|
}, "strip", z.ZodTypeAny, {
|
|
270
|
-
|
|
270
|
+
folderId: number;
|
|
271
271
|
customersListId: number;
|
|
272
272
|
webhookId: number;
|
|
273
273
|
attributesCreated: string[];
|
|
274
274
|
}, {
|
|
275
|
-
|
|
275
|
+
folderId: number;
|
|
276
276
|
customersListId: number;
|
|
277
277
|
webhookId: number;
|
|
278
278
|
attributesCreated: string[];
|
|
@@ -3870,17 +3870,17 @@ export declare const callableGroups: {
|
|
|
3870
3870
|
"outreach-setupBrevo": {
|
|
3871
3871
|
request: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
3872
3872
|
response: z.ZodObject<{
|
|
3873
|
-
|
|
3873
|
+
folderId: z.ZodNumber;
|
|
3874
3874
|
customersListId: z.ZodNumber;
|
|
3875
3875
|
webhookId: z.ZodNumber;
|
|
3876
3876
|
attributesCreated: z.ZodArray<z.ZodString, "many">;
|
|
3877
3877
|
}, "strip", z.ZodTypeAny, {
|
|
3878
|
-
|
|
3878
|
+
folderId: number;
|
|
3879
3879
|
customersListId: number;
|
|
3880
3880
|
webhookId: number;
|
|
3881
3881
|
attributesCreated: string[];
|
|
3882
3882
|
}, {
|
|
3883
|
-
|
|
3883
|
+
folderId: number;
|
|
3884
3884
|
customersListId: number;
|
|
3885
3885
|
webhookId: number;
|
|
3886
3886
|
attributesCreated: string[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type SplitContactName = {
|
|
2
|
+
title?: string;
|
|
3
|
+
forename?: string;
|
|
4
|
+
surname?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Splits a free-text contact name from the lead-gen sheet into title, forename and
|
|
8
|
+
* surname. A leading honorific is taken off as the title, so "Mr Ridd" is surname
|
|
9
|
+
* Ridd with no forename rather than a forename of "Mr".
|
|
10
|
+
*
|
|
11
|
+
* @param {string} name the contact cell, e.g. "Mrs Jo Anne Bloggs" or "Mr Ridd".
|
|
12
|
+
* @return {SplitContactName} the parts; any part may be missing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function splitContactName(name: string | undefined): SplitContactName;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.splitContactName = splitContactName;
|
|
4
|
+
/** Honorifics that are never a first name. Matched case-insensitively, with or without a full stop. */
|
|
5
|
+
const TITLES = ["mr", "mrs", "ms", "miss", "mx", "dr", "prof", "professor", "sir", "dame", "rev", "revd", "reverend", "fr", "lady", "lord"];
|
|
6
|
+
/**
|
|
7
|
+
* Splits a free-text contact name from the lead-gen sheet into title, forename and
|
|
8
|
+
* surname. A leading honorific is taken off as the title, so "Mr Ridd" is surname
|
|
9
|
+
* Ridd with no forename rather than a forename of "Mr".
|
|
10
|
+
*
|
|
11
|
+
* @param {string} name the contact cell, e.g. "Mrs Jo Anne Bloggs" or "Mr Ridd".
|
|
12
|
+
* @return {SplitContactName} the parts; any part may be missing.
|
|
13
|
+
*/
|
|
14
|
+
function splitContactName(name) {
|
|
15
|
+
const tokens = (name ?? "").trim().split(/\s+/).filter(Boolean);
|
|
16
|
+
let title;
|
|
17
|
+
if (tokens.length && TITLES.includes(tokens[0].replace(/\.$/, "").toLowerCase()))
|
|
18
|
+
title = tokens.shift();
|
|
19
|
+
if (!tokens.length)
|
|
20
|
+
return title ? { title } : {};
|
|
21
|
+
// "Mr Ridd": a title and one word is a surname.
|
|
22
|
+
if (title && tokens.length === 1)
|
|
23
|
+
return { title, surname: tokens[0] };
|
|
24
|
+
const [forename, ...rest] = tokens;
|
|
25
|
+
return { ...(title ? { title } : {}), forename, ...(rest.length ? { surname: rest.join(" ") } : {}) };
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=contactName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactName.js","sourceRoot":"","sources":["../src/contactName.ts"],"names":[],"mappings":";;AAaA,4CASC;AAtBD,uGAAuG;AACvG,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAI5I;;;;;;;GAOG;AACH,SAAgB,gBAAgB,CAAC,IAAwB;IACrD,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAAE,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACzG,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,gDAAgD;IAChD,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;IACrE,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IACnC,OAAO,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC;AACpG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const contactName_1 = require("./contactName");
|
|
4
|
+
describe("splitContactName", () => {
|
|
5
|
+
it("treats a title and one word as a surname", () => {
|
|
6
|
+
expect((0, contactName_1.splitContactName)("Mr Ridd")).toEqual({ title: "Mr", surname: "Ridd" });
|
|
7
|
+
expect((0, contactName_1.splitContactName)("dr. Patel")).toEqual({ title: "dr.", surname: "Patel" });
|
|
8
|
+
});
|
|
9
|
+
it("strips the title from a full name", () => {
|
|
10
|
+
expect((0, contactName_1.splitContactName)("Mrs Jo Anne Bloggs")).toEqual({ title: "Mrs", forename: "Jo", surname: "Anne Bloggs" });
|
|
11
|
+
});
|
|
12
|
+
it("splits a name with no title", () => {
|
|
13
|
+
expect((0, contactName_1.splitContactName)("Rebecca Hargreaves")).toEqual({ forename: "Rebecca", surname: "Hargreaves" });
|
|
14
|
+
expect((0, contactName_1.splitContactName)("Rebecca")).toEqual({ forename: "Rebecca" });
|
|
15
|
+
});
|
|
16
|
+
it("does not mistake a name that starts like a title", () => {
|
|
17
|
+
expect((0, contactName_1.splitContactName)("Misty Rowe")).toEqual({ forename: "Misty", surname: "Rowe" });
|
|
18
|
+
});
|
|
19
|
+
it("handles blanks", () => {
|
|
20
|
+
expect((0, contactName_1.splitContactName)("")).toEqual({});
|
|
21
|
+
expect((0, contactName_1.splitContactName)(undefined)).toEqual({});
|
|
22
|
+
expect((0, contactName_1.splitContactName)("Mr")).toEqual({ title: "Mr" });
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=contactName.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contactName.test.js","sourceRoot":"","sources":["../src/contactName.test.ts"],"names":[],"mappings":";;AAAA,+CAA+C;AAE/C,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,IAAA,8BAAgB,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAA,8BAAgB,EAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,IAAA,8BAAgB,EAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAC,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,IAAA,8BAAgB,EAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;QACrG,MAAM,CAAC,IAAA,8BAAgB,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,IAAA,8BAAgB,EAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,IAAA,8BAAgB,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,IAAA,8BAAgB,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,IAAA,8BAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from "./productResolver";
|
|
|
32
32
|
export * from "./pricing";
|
|
33
33
|
export * from "./invoicing";
|
|
34
34
|
export * from "./groups";
|
|
35
|
+
export * from "./contactName";
|
|
35
36
|
export * from "./eventRequestMetrics";
|
|
36
37
|
export * from "./emailSections";
|
|
37
38
|
export * from "./exportTransformers";
|
package/lib/index.js
CHANGED
|
@@ -52,6 +52,7 @@ __exportStar(require("./productResolver"), exports);
|
|
|
52
52
|
__exportStar(require("./pricing"), exports);
|
|
53
53
|
__exportStar(require("./invoicing"), exports);
|
|
54
54
|
__exportStar(require("./groups"), exports);
|
|
55
|
+
__exportStar(require("./contactName"), exports);
|
|
55
56
|
__exportStar(require("./eventRequestMetrics"), exports);
|
|
56
57
|
__exportStar(require("./emailSections"), exports);
|
|
57
58
|
__exportStar(require("./exportTransformers"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,gEAA8C;AAC9C,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,mDAAiC;AACjC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,4CAA0B;AAC1B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,8CAA4B;AAC5B,oDAAkC;AAClC,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,0DAAwC;AACxC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,gEAA8C;AAC9C,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,uDAAqC;AACrC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,8CAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,sDAAoC;AACpC,kDAAgC;AAChC,mDAAiC;AACjC,+CAA6B;AAC7B,oDAAkC;AAClC,iDAA+B;AAC/B,qDAAmC;AACnC,uDAAqC;AACrC,gDAA8B;AAC9B,4CAA0B;AAC1B,wCAAsB;AACtB,kDAAgC;AAChC,6CAA2B;AAC3B,8CAA4B;AAC5B,oDAAkC;AAClC,4CAA0B;AAC1B,8CAA4B;AAC5B,2CAAyB;AACzB,gDAA8B;AAC9B,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,0DAAwC;AACxC,iDAA+B;AAC/B,2DAAyC;AACzC,uDAAqC;AACrC,uDAAqC;AACrC,iDAA+B;AAC/B,8CAA4B;AAC5B,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,iEAA+C;AAC/C,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B;AAC1B,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB"}
|
package/lib/typeDefinitions.d.ts
CHANGED
|
@@ -4516,12 +4516,13 @@ export type OutreachCampaign = {
|
|
|
4516
4516
|
};
|
|
4517
4517
|
/** `adminConfig/outreach`. */
|
|
4518
4518
|
export type OutreachConfig = {
|
|
4519
|
-
|
|
4519
|
+
/** Legacy: no longer used. Schools go into their group's list in the Marketing Contacts folder. */
|
|
4520
|
+
marketingListId?: number;
|
|
4520
4521
|
customersListId: number;
|
|
4521
4522
|
webhookId?: number;
|
|
4522
|
-
/** Brevo folder
|
|
4523
|
+
/** The Brevo "Marketing Contacts" folder holding one list per group. */
|
|
4523
4524
|
folderId?: number;
|
|
4524
|
-
/** Brevo list id per outreach group name, created on first use. */
|
|
4525
|
+
/** Brevo list id per outreach group name (list named as the group), created on first use. */
|
|
4525
4526
|
groupLists?: {
|
|
4526
4527
|
[group: string]: number;
|
|
4527
4528
|
};
|
package/package.json
CHANGED
|
@@ -25,7 +25,7 @@ const samples: {[K in keyof typeof outreachCallables]: {request: unknown, respon
|
|
|
25
25
|
},
|
|
26
26
|
"outreach-setupBrevo": {
|
|
27
27
|
request: {},
|
|
28
|
-
response: {
|
|
28
|
+
response: {folderId: 12, customersListId: 80, webhookId: 5, attributesCreated: ["URN"]},
|
|
29
29
|
},
|
|
30
30
|
"outreach-migrateExisting": {
|
|
31
31
|
request: {},
|
|
@@ -110,7 +110,8 @@ export const outreachCallables = {
|
|
|
110
110
|
"outreach-setupBrevo": {
|
|
111
111
|
request: z.object({}),
|
|
112
112
|
response: z.object({
|
|
113
|
-
|
|
113
|
+
/** The Brevo "Marketing Contacts" folder the group lists live in. */
|
|
114
|
+
folderId: z.number(),
|
|
114
115
|
customersListId: z.number(),
|
|
115
116
|
webhookId: z.number(),
|
|
116
117
|
attributesCreated: z.array(z.string()),
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {splitContactName} from "./contactName";
|
|
2
|
+
|
|
3
|
+
describe("splitContactName", () => {
|
|
4
|
+
it("treats a title and one word as a surname", () => {
|
|
5
|
+
expect(splitContactName("Mr Ridd")).toEqual({title: "Mr", surname: "Ridd"});
|
|
6
|
+
expect(splitContactName("dr. Patel")).toEqual({title: "dr.", surname: "Patel"});
|
|
7
|
+
});
|
|
8
|
+
it("strips the title from a full name", () => {
|
|
9
|
+
expect(splitContactName("Mrs Jo Anne Bloggs")).toEqual({title: "Mrs", forename: "Jo", surname: "Anne Bloggs"});
|
|
10
|
+
});
|
|
11
|
+
it("splits a name with no title", () => {
|
|
12
|
+
expect(splitContactName("Rebecca Hargreaves")).toEqual({forename: "Rebecca", surname: "Hargreaves"});
|
|
13
|
+
expect(splitContactName("Rebecca")).toEqual({forename: "Rebecca"});
|
|
14
|
+
});
|
|
15
|
+
it("does not mistake a name that starts like a title", () => {
|
|
16
|
+
expect(splitContactName("Misty Rowe")).toEqual({forename: "Misty", surname: "Rowe"});
|
|
17
|
+
});
|
|
18
|
+
it("handles blanks", () => {
|
|
19
|
+
expect(splitContactName("")).toEqual({});
|
|
20
|
+
expect(splitContactName(undefined)).toEqual({});
|
|
21
|
+
expect(splitContactName("Mr")).toEqual({title: "Mr"});
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Honorifics that are never a first name. Matched case-insensitively, with or without a full stop. */
|
|
2
|
+
const TITLES = ["mr", "mrs", "ms", "miss", "mx", "dr", "prof", "professor", "sir", "dame", "rev", "revd", "reverend", "fr", "lady", "lord"];
|
|
3
|
+
|
|
4
|
+
export type SplitContactName = {title?: string, forename?: string, surname?: string};
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Splits a free-text contact name from the lead-gen sheet into title, forename and
|
|
8
|
+
* surname. A leading honorific is taken off as the title, so "Mr Ridd" is surname
|
|
9
|
+
* Ridd with no forename rather than a forename of "Mr".
|
|
10
|
+
*
|
|
11
|
+
* @param {string} name the contact cell, e.g. "Mrs Jo Anne Bloggs" or "Mr Ridd".
|
|
12
|
+
* @return {SplitContactName} the parts; any part may be missing.
|
|
13
|
+
*/
|
|
14
|
+
export function splitContactName(name: string | undefined): SplitContactName {
|
|
15
|
+
const tokens = (name ?? "").trim().split(/\s+/).filter(Boolean);
|
|
16
|
+
let title: string | undefined;
|
|
17
|
+
if (tokens.length && TITLES.includes(tokens[0].replace(/\.$/, "").toLowerCase())) title = tokens.shift();
|
|
18
|
+
if (!tokens.length) return title ? {title} : {};
|
|
19
|
+
// "Mr Ridd": a title and one word is a surname.
|
|
20
|
+
if (title && tokens.length === 1) return {title, surname: tokens[0]};
|
|
21
|
+
const [forename, ...rest] = tokens;
|
|
22
|
+
return {...(title ? {title} : {}), forename, ...(rest.length ? {surname: rest.join(" ")} : {})};
|
|
23
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from "./productResolver";
|
|
|
34
34
|
export * from "./pricing";
|
|
35
35
|
export * from "./invoicing";
|
|
36
36
|
export * from "./groups";
|
|
37
|
+
export * from "./contactName";
|
|
37
38
|
export * from "./eventRequestMetrics";
|
|
38
39
|
export * from "./emailSections";
|
|
39
40
|
export * from "./exportTransformers";
|
package/src/typeDefinitions.ts
CHANGED
|
@@ -4669,12 +4669,13 @@ export type OutreachCampaign = {
|
|
|
4669
4669
|
|
|
4670
4670
|
/** `adminConfig/outreach`. */
|
|
4671
4671
|
export type OutreachConfig = {
|
|
4672
|
-
|
|
4672
|
+
/** Legacy: no longer used. Schools go into their group's list in the Marketing Contacts folder. */
|
|
4673
|
+
marketingListId?: number,
|
|
4673
4674
|
customersListId: number,
|
|
4674
4675
|
webhookId?: number,
|
|
4675
|
-
/** Brevo folder
|
|
4676
|
+
/** The Brevo "Marketing Contacts" folder holding one list per group. */
|
|
4676
4677
|
folderId?: number,
|
|
4677
|
-
/** Brevo list id per outreach group name, created on first use. */
|
|
4678
|
+
/** Brevo list id per outreach group name (list named as the group), created on first use. */
|
|
4678
4679
|
groupLists?: {[group: string]: number},
|
|
4679
4680
|
backfill?: {cursorUrn?: number, done: boolean, total: number, processed?: number},
|
|
4680
4681
|
lastSweepAt?: string,
|