@peacom/model 2.0.350 → 2.0.351
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/package.json
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type SmsCharset = "GSM 03.38" | "Unicode";
|
|
2
|
+
export interface SmsSplitResult {
|
|
3
|
+
sms_count: number;
|
|
4
|
+
chars_left: number;
|
|
5
|
+
char_set: SmsCharset;
|
|
6
|
+
parts: string[];
|
|
7
|
+
total_chars: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function getSmsPartsInfo(content?: string): SmsSplitResult;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSmsPartsInfo = void 0;
|
|
4
|
+
const charset7bit = {
|
|
5
|
+
"@": 1, "£": 1, "$": 1, "¥": 1, "è": 1, "é": 1, "ù": 1, "ì": 1, "ò": 1,
|
|
6
|
+
"Ç": 1, "\n": 1, "Ø": 1, "ø": 1, "\r": 1, "Å": 1, "å": 1, "Δ": 1,
|
|
7
|
+
"_": 1, "Φ": 1, "Γ": 1, "Λ": 1, "Ω": 1, "Π": 1, "Ψ": 1, "Σ": 1,
|
|
8
|
+
"Θ": 1, "Ξ": 1, "Æ": 1, "æ": 1, "ß": 1, "É": 1, " ": 1, "!": 1,
|
|
9
|
+
"\"": 1, "#": 1, "¤": 1, "%": 1, "&": 1, "'": 1, "(": 1, ")": 1,
|
|
10
|
+
"*": 1, "+": 1, ",": 1, "-": 1, ".": 1, "/": 1,
|
|
11
|
+
"0": 1, "1": 1, "2": 1, "3": 1, "4": 1,
|
|
12
|
+
"5": 1, "6": 1, "7": 1, "8": 1, "9": 1,
|
|
13
|
+
":": 1, ";": 1, "<": 1, "=": 1, ">": 1, "?": 1, "¡": 1,
|
|
14
|
+
"A": 1, "B": 1, "C": 1, "D": 1, "E": 1, "F": 1, "G": 1,
|
|
15
|
+
"H": 1, "I": 1, "J": 1, "K": 1, "L": 1, "M": 1,
|
|
16
|
+
"N": 1, "O": 1, "P": 1, "Q": 1, "R": 1, "S": 1,
|
|
17
|
+
"T": 1, "U": 1, "V": 1, "W": 1, "X": 1, "Y": 1, "Z": 1,
|
|
18
|
+
"Ä": 1, "Ö": 1, "Ñ": 1, "Ü": 1, "§": 1, "¿": 1,
|
|
19
|
+
"a": 1, "b": 1, "c": 1, "d": 1, "e": 1, "f": 1, "g": 1,
|
|
20
|
+
"h": 1, "i": 1, "j": 1, "k": 1, "l": 1, "m": 1,
|
|
21
|
+
"n": 1, "o": 1, "p": 1, "q": 1, "r": 1, "s": 1,
|
|
22
|
+
"t": 1, "u": 1, "v": 1, "w": 1, "x": 1, "y": 1, "z": 1,
|
|
23
|
+
"ä": 1, "ö": 1, "ñ": 1, "ü": 1, "à": 1,
|
|
24
|
+
// escape chars (2 septets)
|
|
25
|
+
"\f": 2, "^": 2, "{": 2, "}": 2, "\\": 2,
|
|
26
|
+
"[": 2, "~": 2, "]": 2, "|": 2, "€": 2,
|
|
27
|
+
};
|
|
28
|
+
function isUnicode(content) {
|
|
29
|
+
for (const c of content) {
|
|
30
|
+
if (!charset7bit[c]) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
function getTotalLengthGSM(content) {
|
|
37
|
+
var _a;
|
|
38
|
+
let length = 0;
|
|
39
|
+
for (const c of content) {
|
|
40
|
+
length += (_a = charset7bit[c]) !== null && _a !== void 0 ? _a : 0;
|
|
41
|
+
}
|
|
42
|
+
return length;
|
|
43
|
+
}
|
|
44
|
+
function getSmsPartsInfo(content) {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!content) {
|
|
47
|
+
return {
|
|
48
|
+
sms_count: 0,
|
|
49
|
+
chars_left: 160,
|
|
50
|
+
char_set: "GSM 03.38",
|
|
51
|
+
parts: [],
|
|
52
|
+
total_chars: 0
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const unicode = isUnicode(content);
|
|
56
|
+
const chars = [...content];
|
|
57
|
+
// ===== GSM =====
|
|
58
|
+
if (!unicode) {
|
|
59
|
+
const totalLength = getTotalLengthGSM(content);
|
|
60
|
+
if (totalLength <= 160) {
|
|
61
|
+
return {
|
|
62
|
+
sms_count: 1,
|
|
63
|
+
chars_left: 160 - totalLength,
|
|
64
|
+
char_set: "GSM 03.38",
|
|
65
|
+
parts: [content],
|
|
66
|
+
total_chars: content.length
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const maxLength = 153;
|
|
70
|
+
const parts = [];
|
|
71
|
+
let currentLength = 0;
|
|
72
|
+
let part = "";
|
|
73
|
+
for (const c of chars) {
|
|
74
|
+
const cLen = (_a = charset7bit[c]) !== null && _a !== void 0 ? _a : 0;
|
|
75
|
+
if (currentLength + cLen <= maxLength) {
|
|
76
|
+
part += c;
|
|
77
|
+
currentLength += cLen;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
parts.push(part);
|
|
81
|
+
part = c;
|
|
82
|
+
currentLength = cLen;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (part)
|
|
86
|
+
parts.push(part);
|
|
87
|
+
return {
|
|
88
|
+
sms_count: parts.length,
|
|
89
|
+
chars_left: maxLength - getTotalLengthGSM(parts[parts.length - 1]),
|
|
90
|
+
char_set: "GSM 03.38",
|
|
91
|
+
parts,
|
|
92
|
+
total_chars: part.length
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
// ===== Unicode =====
|
|
96
|
+
if (content.length <= 70) {
|
|
97
|
+
return {
|
|
98
|
+
sms_count: 1,
|
|
99
|
+
chars_left: 70 - content.length,
|
|
100
|
+
char_set: "Unicode",
|
|
101
|
+
parts: [content],
|
|
102
|
+
total_chars: content.length
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const maxLength = 67;
|
|
106
|
+
const smsCount = Math.ceil(content.length / maxLength);
|
|
107
|
+
const parts = [];
|
|
108
|
+
for (let i = 0; i < smsCount; i++) {
|
|
109
|
+
parts.push(content.substring(i * maxLength, i * maxLength + maxLength));
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
sms_count: parts.length,
|
|
113
|
+
chars_left: maxLength - parts[parts.length - 1].length,
|
|
114
|
+
char_set: "Unicode",
|
|
115
|
+
parts,
|
|
116
|
+
total_chars: content.length,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
exports.getSmsPartsInfo = getSmsPartsInfo;
|
|
120
|
+
//# sourceMappingURL=gsm.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gsm.util.js","sourceRoot":"","sources":["../../../../../../../packages/model/src/lib/util/gsm/gsm.util.ts"],"names":[],"mappings":";;;AAUA,MAAM,WAAW,GAA2B;IAC1C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAChE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9D,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9D,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC/D,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACtD,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAA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"}
|