@qcobro/common 1.46.1 → 1.47.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/schemas/agentEvaluations.d.ts +1 -0
- package/dist/schemas/agentEvaluations.d.ts.map +1 -1
- package/dist/schemas/agentTemplates.d.ts +1 -0
- package/dist/schemas/agentTemplates.d.ts.map +1 -1
- package/dist/schemas/agentTemplates.js +5 -1
- package/dist/schemas/agentTemplates.js.map +1 -1
- package/dist/schemas/dispatch.d.ts +1 -0
- package/dist/schemas/dispatch.d.ts.map +1 -1
- package/dist/schemas/dispatch.js +3 -0
- package/dist/schemas/dispatch.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/smsSegments.d.ts +59 -0
- package/dist/utils/smsSegments.d.ts.map +1 -0
- package/dist/utils/smsSegments.js +139 -0
- package/dist/utils/smsSegments.js.map +1 -0
- package/package.json +1 -1
|
@@ -499,6 +499,7 @@ export declare const previewYamlAgentSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
499
499
|
type: z.ZodLiteral<"SMS">;
|
|
500
500
|
messageBody: z.ZodString;
|
|
501
501
|
senderId: z.ZodOptional<z.ZodString>;
|
|
502
|
+
normalizeGsm7: z.ZodOptional<z.ZodBoolean>;
|
|
502
503
|
name: z.ZodString;
|
|
503
504
|
}, z.core.$strip>, z.ZodObject<{
|
|
504
505
|
repeatDigit: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentEvaluations.d.ts","sourceRoot":"","sources":["../../src/schemas/agentEvaluations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;iBAe5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB;;;;;;iBAGjC,CAAC;AAEH,kGAAkG;AAClG,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWpB,CAAC;AAEZ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA0BtD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAI7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE;8CAC8C;AAC9C,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,iGAAiG;AACjG,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAG9B,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;qFACqF;AACrF,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"agentEvaluations.d.ts","sourceRoot":"","sources":["../../src/schemas/agentEvaluations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;iBAe5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB;;;;;;iBAGjC,CAAC;AAEH,kGAAkG;AAClG,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWpB,CAAC;AAEZ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA0BtD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAI7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE;8CAC8C;AAC9C,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,iGAAiG;AACjG,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAG9B,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;qFACqF;AACrF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;2BAGjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAkE,CAAC;AAClG,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -77,6 +77,7 @@ export declare const createAgentTemplateSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
77
77
|
type: z.ZodLiteral<"SMS">;
|
|
78
78
|
messageBody: z.ZodString;
|
|
79
79
|
senderId: z.ZodOptional<z.ZodString>;
|
|
80
|
+
normalizeGsm7: z.ZodOptional<z.ZodBoolean>;
|
|
80
81
|
name: z.ZodString;
|
|
81
82
|
}, z.core.$strip>, z.ZodObject<{
|
|
82
83
|
type: z.ZodLiteral<"EMAIL">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentTemplates.d.ts","sourceRoot":"","sources":["../../src/schemas/agentTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAiGxD,oGAAoG;AACpG,eAAO,MAAM,0BAA0B;;;;;;;iBAEQ,CAAC;AAChD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"agentTemplates.d.ts","sourceRoot":"","sources":["../../src/schemas/agentTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,0BAA0B;;;;CAI7B,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAiGxD,oGAAoG;AACpG,eAAO,MAAM,0BAA0B;;;;;;;iBAEQ,CAAC;AAChD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAuElC,CAAC;AACL,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;;kBAS3B,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,kEAAkE;AAClE,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -160,7 +160,11 @@ export const createAgentTemplateSchema = z
|
|
|
160
160
|
...baseFields,
|
|
161
161
|
type: z.literal("SMS"),
|
|
162
162
|
messageBody: z.string().min(1),
|
|
163
|
-
senderId: z.string().min(1).optional()
|
|
163
|
+
senderId: z.string().min(1).optional(),
|
|
164
|
+
/** Substitute the characters that cost a message its 7-bit encoding (`á í ó ú ç`) for
|
|
165
|
+
* ASCII before sending, halving the segment count of an otherwise-fine message.
|
|
166
|
+
* Defaults off: it changes what the customer reads. */
|
|
167
|
+
normalizeGsm7: z.boolean().optional()
|
|
164
168
|
}),
|
|
165
169
|
z.object({
|
|
166
170
|
...baseFields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentTemplates.js","sourceRoot":"","sources":["../../src/schemas/agentTemplates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agentTemplates.js","sourceRoot":"","sources":["../../src/schemas/agentTemplates.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ export declare const dispatchOutreachSchema: z.ZodObject<{
|
|
|
40
40
|
optOutConfirmationMessage: z.ZodOptional<z.ZodString>;
|
|
41
41
|
body: z.ZodOptional<z.ZodString>;
|
|
42
42
|
subject: z.ZodOptional<z.ZodString>;
|
|
43
|
+
normalizeGsm7: z.ZodOptional<z.ZodBoolean>;
|
|
43
44
|
templateName: z.ZodOptional<z.ZodString>;
|
|
44
45
|
languageCode: z.ZodOptional<z.ZodString>;
|
|
45
46
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/schemas/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sEAAsE;AACtE,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH,wFAAwF;AACxF,eAAO,MAAM,uBAAuB;;;EAAgD,CAAC;AAErF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/schemas/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,sEAAsE;AACtE,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH,wFAAwF;AACxF,eAAO,MAAM,uBAAuB;;;EAAgD,CAAC;AAErF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;iBAoF/B,CAAC;AAEL,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;iBAa/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/dist/schemas/dispatch.js
CHANGED
|
@@ -44,6 +44,9 @@ export const dispatchOutreachSchema = z
|
|
|
44
44
|
body: z.string().optional(),
|
|
45
45
|
/** EMAIL: subject line template. */
|
|
46
46
|
subject: z.string().optional(),
|
|
47
|
+
/** SMS: substitute the characters that cost a message its 7-bit encoding for ASCII
|
|
48
|
+
* before sending, so an accented name doesn't double the segment count. */
|
|
49
|
+
normalizeGsm7: z.boolean().optional(),
|
|
47
50
|
/** WHATSAPP: Meta-approved template name to send. */
|
|
48
51
|
templateName: z.string().optional(),
|
|
49
52
|
/** WHATSAPP: Meta template-send language code (sourced from the workspace, e.g. `es_DO`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/schemas/dispatch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/schemas/dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { withErrorHandlingAndValidation } from "./withErrorHandlingAndValidation.js";
|
|
2
2
|
export { renderTemplate, extractTemplateTokens, buildOutreachContext, buildAutopilotContextLines, toCallMetadata, pickRandomNumber, snakeToCamel, renderWhatsAppTemplate } from "./outreach.js";
|
|
3
3
|
export { localParts, localDateString, isSameLocalDay, localWeekdayISO, localTimeHHMM, isWithinScheduleWindow, type ScheduleWindow } from "./time.js";
|
|
4
|
+
export { calculateSmsSegments, normalizeForGsm7, type SmsEncoding, type SmsSegmentInfo } from "./smsSegments.js";
|
|
4
5
|
export { formatMoney, formatWorkspaceMoney, createMoneyFormatters, toNumber } from "./money.js";
|
|
5
6
|
export { bucketOf, perTickCapacity, type PacingBucket } from "./pacing.js";
|
|
6
7
|
export { normalizePhoneE164 } from "./normalizePhone.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { withErrorHandlingAndValidation } from "./withErrorHandlingAndValidation.js";
|
|
2
2
|
export { renderTemplate, extractTemplateTokens, buildOutreachContext, buildAutopilotContextLines, toCallMetadata, pickRandomNumber, snakeToCamel, renderWhatsAppTemplate } from "./outreach.js";
|
|
3
3
|
export { localParts, localDateString, isSameLocalDay, localWeekdayISO, localTimeHHMM, isWithinScheduleWindow } from "./time.js";
|
|
4
|
+
export { calculateSmsSegments, normalizeForGsm7 } from "./smsSegments.js";
|
|
4
5
|
export { formatMoney, formatWorkspaceMoney, createMoneyFormatters, toNumber } from "./money.js";
|
|
5
6
|
export { bucketOf, perTickCapacity } from "./pacing.js";
|
|
6
7
|
export { normalizePhoneE164 } from "./normalizePhone.js";
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMS segmentation: how many messages a body will actually be billed as.
|
|
3
|
+
*
|
|
4
|
+
* Segmentation is a GSM/3GPP property, not a provider one, so nothing here names or
|
|
5
|
+
* depends on a carrier or vendor. The algorithm is ported from Twilio's open-source
|
|
6
|
+
* reference calculator (MIT), but only the standard it implements is load-bearing.
|
|
7
|
+
*
|
|
8
|
+
* The familiar 160/153 and 70/67 thresholds are consequences of the real rule, not the
|
|
9
|
+
* rule itself: characters are packed into 140-byte (1120-bit) segments, and a message
|
|
10
|
+
* that needs more than one segment spends 6 bytes (48 bits) of every segment on a header
|
|
11
|
+
* that tells the handset how to reassemble them. Implementing the packing rather than the
|
|
12
|
+
* thresholds is what gets extended characters and emoji right.
|
|
13
|
+
*/
|
|
14
|
+
export type SmsEncoding = "GSM-7" | "UCS-2";
|
|
15
|
+
/** What {@link calculateSmsSegments} reports about a message body. */
|
|
16
|
+
export interface SmsSegmentInfo {
|
|
17
|
+
/** `GSM-7` when every character is in the 7-bit alphabet, `UCS-2` otherwise. */
|
|
18
|
+
encoding: SmsEncoding;
|
|
19
|
+
/** Characters as a reader counts them: emoji-aware graphemes, not UTF-16 code units. */
|
|
20
|
+
characterCount: number;
|
|
21
|
+
/** Messages the carrier will bill for. `0` only for an empty body. */
|
|
22
|
+
segmentCount: number;
|
|
23
|
+
/** Budget per segment at this encoding, already accounting for the multi-segment header. */
|
|
24
|
+
charactersPerSegment: number;
|
|
25
|
+
/** How many more standard characters fit before another segment is needed. */
|
|
26
|
+
charactersRemaining: number;
|
|
27
|
+
/**
|
|
28
|
+
* The distinct characters that forced UCS-2, in order of first appearance, capped at a
|
|
29
|
+
* handful. Empty when the body is GSM-7. Lets a caller say *what* is costing the money
|
|
30
|
+
* rather than only that something is.
|
|
31
|
+
*/
|
|
32
|
+
nonGsmCharacters: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Works out how a message body will be encoded and how many segments it will cost.
|
|
36
|
+
*
|
|
37
|
+
* @param text the message body, already rendered — placeholders like `{{firstName}}` are
|
|
38
|
+
* counted literally, so pass substituted text if you want a realistic answer
|
|
39
|
+
* @returns an {@link SmsSegmentInfo} breakdown
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* calculateSmsSegments("Hola Jose, su saldo es 9,500.")
|
|
43
|
+
* // { encoding: "GSM-7", characterCount: 29, segmentCount: 1,
|
|
44
|
+
* // charactersPerSegment: 160, charactersRemaining: 131, nonGsmCharacters: [] }
|
|
45
|
+
*/
|
|
46
|
+
export declare function calculateSmsSegments(text: string): SmsSegmentInfo;
|
|
47
|
+
/**
|
|
48
|
+
* Substitutes the characters that cost a message its 7-bit encoding for ASCII equivalents,
|
|
49
|
+
* leaving everything else — including everything already in GSM-7 — byte-for-byte alone.
|
|
50
|
+
*
|
|
51
|
+
* Scope is intentionally narrow (see {@link GSM7_SUBSTITUTIONS}): this rewrites what the
|
|
52
|
+
* customer sees, so it may only ever make changes a reader would not notice. It is not a
|
|
53
|
+
* general de-accenter and must not become one.
|
|
54
|
+
*
|
|
55
|
+
* A body can still be UCS-2 after this — an emoji has no ASCII equivalent, so it is left
|
|
56
|
+
* in place rather than silently deleted from someone's copy.
|
|
57
|
+
*/
|
|
58
|
+
export declare function normalizeForGsm7(text: string): string;
|
|
59
|
+
//# sourceMappingURL=smsSegments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smsSegments.d.ts","sourceRoot":"","sources":["../../src/utils/smsSegments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA4CH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5C,sEAAsE;AACtE,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,QAAQ,EAAE,WAAW,CAAC;IACtB,wFAAwF;IACxF,cAAc,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8EAA8E;IAC9E,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAwBD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA6CjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMS segmentation: how many messages a body will actually be billed as.
|
|
3
|
+
*
|
|
4
|
+
* Segmentation is a GSM/3GPP property, not a provider one, so nothing here names or
|
|
5
|
+
* depends on a carrier or vendor. The algorithm is ported from Twilio's open-source
|
|
6
|
+
* reference calculator (MIT), but only the standard it implements is load-bearing.
|
|
7
|
+
*
|
|
8
|
+
* The familiar 160/153 and 70/67 thresholds are consequences of the real rule, not the
|
|
9
|
+
* rule itself: characters are packed into 140-byte (1120-bit) segments, and a message
|
|
10
|
+
* that needs more than one segment spends 6 bytes (48 bits) of every segment on a header
|
|
11
|
+
* that tells the handset how to reassemble them. Implementing the packing rather than the
|
|
12
|
+
* thresholds is what gets extended characters and emoji right.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* GSM 03.38 basic set — one septet (7 bits) each.
|
|
16
|
+
*
|
|
17
|
+
* Worth reading before assuming "accents cost extra": `é è ñ Ñ ü ä ö å à ì ò ù ß Ä Ö Ü É
|
|
18
|
+
* § ¡ ¿ £ ¥` are all in here and cost nothing. It is `á í ó ú` (and their capitals, and
|
|
19
|
+
* lowercase `ç`) that are absent — which is why `José` and `año` are free while `García`
|
|
20
|
+
* and `Martínez` push a whole message into 16-bit encoding.
|
|
21
|
+
*/
|
|
22
|
+
const GSM7_BASIC = new Set(("@£$¥èéùìòÇ\nØø\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\"#¤%&'()*+,-./0123456789:;<=>?" +
|
|
23
|
+
"¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà").split(""));
|
|
24
|
+
/** GSM 03.38 extension table — reachable only via an escape, so two septets (14 bits). */
|
|
25
|
+
const GSM7_EXTENDED = new Set(["\f", "^", "{", "}", "\\", "[", "~", "]", "|", "€"]);
|
|
26
|
+
const BITS_PER_SEGMENT = 1120;
|
|
27
|
+
/** User Data Header, present in every segment once a message spans more than one. */
|
|
28
|
+
const UDH_BITS = 48;
|
|
29
|
+
/**
|
|
30
|
+
* Characters outside GSM-7 that have an unambiguous ASCII equivalent.
|
|
31
|
+
*
|
|
32
|
+
* Deliberately tiny. A blanket Unicode de-accent would also rewrite `ñ`→`n`, turning
|
|
33
|
+
* `año` into something vulgar, and would strip characters that were already free. Every
|
|
34
|
+
* entry here is a character that costs a message its 7-bit encoding and loses nothing
|
|
35
|
+
* meaningful in translation.
|
|
36
|
+
*/
|
|
37
|
+
const GSM7_SUBSTITUTIONS = {
|
|
38
|
+
á: "a",
|
|
39
|
+
í: "i",
|
|
40
|
+
ó: "o",
|
|
41
|
+
ú: "u",
|
|
42
|
+
Á: "A",
|
|
43
|
+
Í: "I",
|
|
44
|
+
Ó: "O",
|
|
45
|
+
Ú: "U",
|
|
46
|
+
ç: "c"
|
|
47
|
+
};
|
|
48
|
+
const segmenter = new Intl.Segmenter(undefined, { granularity: "grapheme" });
|
|
49
|
+
function graphemesOf(text) {
|
|
50
|
+
return Array.from(segmenter.segment(text), (s) => s.segment);
|
|
51
|
+
}
|
|
52
|
+
/** Greedy pack: a character never straddles a segment boundary, which is what makes an
|
|
53
|
+
* extended GSM-7 character (14 bits, indivisible) behave correctly at the edge. */
|
|
54
|
+
function countSegments(bitSizes, capacity) {
|
|
55
|
+
let segments = 1;
|
|
56
|
+
let used = 0;
|
|
57
|
+
for (const bits of bitSizes) {
|
|
58
|
+
if (used + bits > capacity) {
|
|
59
|
+
segments += 1;
|
|
60
|
+
used = bits;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
used += bits;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return segments;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Works out how a message body will be encoded and how many segments it will cost.
|
|
70
|
+
*
|
|
71
|
+
* @param text the message body, already rendered — placeholders like `{{firstName}}` are
|
|
72
|
+
* counted literally, so pass substituted text if you want a realistic answer
|
|
73
|
+
* @returns an {@link SmsSegmentInfo} breakdown
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* calculateSmsSegments("Hola Jose, su saldo es 9,500.")
|
|
77
|
+
* // { encoding: "GSM-7", characterCount: 29, segmentCount: 1,
|
|
78
|
+
* // charactersPerSegment: 160, charactersRemaining: 131, nonGsmCharacters: [] }
|
|
79
|
+
*/
|
|
80
|
+
export function calculateSmsSegments(text) {
|
|
81
|
+
const graphemes = graphemesOf(text);
|
|
82
|
+
const nonGsm = [];
|
|
83
|
+
let isGsm7 = true;
|
|
84
|
+
for (const g of graphemes) {
|
|
85
|
+
if (GSM7_BASIC.has(g) || GSM7_EXTENDED.has(g))
|
|
86
|
+
continue;
|
|
87
|
+
isGsm7 = false;
|
|
88
|
+
if (nonGsm.length < 5 && !nonGsm.includes(g))
|
|
89
|
+
nonGsm.push(g);
|
|
90
|
+
}
|
|
91
|
+
const encoding = isGsm7 ? "GSM-7" : "UCS-2";
|
|
92
|
+
const bitsPerChar = isGsm7 ? 7 : 16;
|
|
93
|
+
// UCS-2 bills by 16-bit code unit, so an emoji built from a surrogate pair (and any
|
|
94
|
+
// grapheme cluster) costs every unit it occupies, not one.
|
|
95
|
+
const bitSizes = graphemes.map((g) => (isGsm7 ? (GSM7_EXTENDED.has(g) ? 14 : 7) : g.length * 16));
|
|
96
|
+
if (graphemes.length === 0) {
|
|
97
|
+
return {
|
|
98
|
+
encoding,
|
|
99
|
+
characterCount: 0,
|
|
100
|
+
segmentCount: 0,
|
|
101
|
+
charactersPerSegment: Math.floor(BITS_PER_SEGMENT / bitsPerChar),
|
|
102
|
+
charactersRemaining: Math.floor(BITS_PER_SEGMENT / bitsPerChar),
|
|
103
|
+
nonGsmCharacters: []
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const fitsInOne = countSegments(bitSizes, BITS_PER_SEGMENT) === 1;
|
|
107
|
+
const capacity = fitsInOne ? BITS_PER_SEGMENT : BITS_PER_SEGMENT - UDH_BITS;
|
|
108
|
+
const segmentCount = fitsInOne ? 1 : countSegments(bitSizes, capacity);
|
|
109
|
+
const totalBits = bitSizes.reduce((sum, bits) => sum + bits, 0);
|
|
110
|
+
// Bits left in the final segment, given the earlier ones are full to their capacity.
|
|
111
|
+
const usedInLast = totalBits - capacity * (segmentCount - 1);
|
|
112
|
+
return {
|
|
113
|
+
encoding,
|
|
114
|
+
characterCount: graphemes.length,
|
|
115
|
+
segmentCount,
|
|
116
|
+
charactersPerSegment: Math.floor(capacity / bitsPerChar),
|
|
117
|
+
charactersRemaining: Math.max(0, Math.floor((capacity - usedInLast) / bitsPerChar)),
|
|
118
|
+
nonGsmCharacters: nonGsm
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Substitutes the characters that cost a message its 7-bit encoding for ASCII equivalents,
|
|
123
|
+
* leaving everything else — including everything already in GSM-7 — byte-for-byte alone.
|
|
124
|
+
*
|
|
125
|
+
* Scope is intentionally narrow (see {@link GSM7_SUBSTITUTIONS}): this rewrites what the
|
|
126
|
+
* customer sees, so it may only ever make changes a reader would not notice. It is not a
|
|
127
|
+
* general de-accenter and must not become one.
|
|
128
|
+
*
|
|
129
|
+
* A body can still be UCS-2 after this — an emoji has no ASCII equivalent, so it is left
|
|
130
|
+
* in place rather than silently deleted from someone's copy.
|
|
131
|
+
*/
|
|
132
|
+
export function normalizeForGsm7(text) {
|
|
133
|
+
let out = "";
|
|
134
|
+
for (const g of graphemesOf(text)) {
|
|
135
|
+
out += GSM7_SUBSTITUTIONS[g] ?? g;
|
|
136
|
+
}
|
|
137
|
+
return out;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=smsSegments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smsSegments.js","sourceRoot":"","sources":["../../src/utils/smsSegments.ts"],"names":[],"mappings":"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"}
|