@simplysm/core-common 13.0.76 → 13.0.78
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/README.md +64 -21
- package/dist/extensions/arr-ext.d.ts +1 -1
- package/dist/extensions/arr-ext.d.ts.map +1 -1
- package/dist/extensions/arr-ext.helpers.d.ts +8 -0
- package/dist/extensions/arr-ext.helpers.d.ts.map +1 -1
- package/dist/extensions/arr-ext.helpers.js +65 -0
- package/dist/extensions/arr-ext.helpers.js.map +2 -2
- package/dist/extensions/arr-ext.js +16 -124
- package/dist/extensions/arr-ext.js.map +2 -2
- package/dist/extensions/arr-ext.types.d.ts +40 -32
- package/dist/extensions/arr-ext.types.d.ts.map +1 -1
- package/dist/extensions/map-ext.js.map +1 -1
- package/dist/extensions/set-ext.js.map +1 -1
- package/dist/features/event-emitter.d.ts +4 -4
- package/dist/features/event-emitter.d.ts.map +1 -1
- package/dist/features/event-emitter.js.map +1 -1
- package/dist/features/serial-queue.js +2 -2
- package/dist/features/serial-queue.js.map +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -13
- package/dist/index.js.map +1 -1
- package/dist/types/date-only.js +2 -2
- package/dist/types/date-only.js.map +1 -1
- package/dist/types/date-time.js +2 -2
- package/dist/types/date-time.js.map +1 -1
- package/dist/types/time.js +2 -2
- package/dist/types/time.js.map +1 -1
- package/dist/types/uuid.d.ts +2 -2
- package/dist/types/uuid.d.ts.map +1 -1
- package/dist/types/uuid.js +1 -1
- package/dist/types/uuid.js.map +1 -1
- package/dist/utils/bytes.d.ts +10 -10
- package/dist/utils/bytes.d.ts.map +1 -1
- package/dist/utils/bytes.js +10 -10
- package/dist/utils/bytes.js.map +1 -1
- package/dist/utils/date-format.d.ts +1 -1
- package/dist/utils/date-format.d.ts.map +1 -1
- package/dist/utils/date-format.js +2 -2
- package/dist/utils/date-format.js.map +1 -1
- package/dist/utils/error.d.ts +1 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +2 -2
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/json.d.ts +4 -2
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -9
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/num.d.ts +10 -10
- package/dist/utils/num.d.ts.map +1 -1
- package/dist/utils/num.js +11 -11
- package/dist/utils/num.js.map +1 -1
- package/dist/utils/obj.d.ts +40 -40
- package/dist/utils/obj.d.ts.map +1 -1
- package/dist/utils/obj.js +102 -99
- package/dist/utils/obj.js.map +1 -1
- package/dist/utils/path.d.ts +3 -3
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +6 -6
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/primitive.d.ts +1 -1
- package/dist/utils/primitive.d.ts.map +1 -1
- package/dist/utils/primitive.js +2 -2
- package/dist/utils/primitive.js.map +1 -1
- package/dist/utils/str.d.ts +16 -16
- package/dist/utils/str.d.ts.map +1 -1
- package/dist/utils/str.js +16 -16
- package/dist/utils/str.js.map +1 -1
- package/dist/utils/transferable.d.ts +3 -3
- package/dist/utils/transferable.d.ts.map +1 -1
- package/dist/utils/transferable.js +10 -10
- package/dist/utils/transferable.js.map +1 -1
- package/dist/utils/wait.d.ts +2 -2
- package/dist/utils/wait.d.ts.map +1 -1
- package/dist/utils/wait.js +5 -5
- package/dist/utils/wait.js.map +1 -1
- package/dist/utils/xml.d.ts +2 -2
- package/dist/utils/xml.d.ts.map +1 -1
- package/dist/utils/xml.js +4 -4
- package/dist/utils/xml.js.map +1 -1
- package/dist/{zip/sd-zip.d.ts → utils/zip.d.ts} +1 -1
- package/dist/utils/zip.d.ts.map +1 -0
- package/dist/{zip/sd-zip.js → utils/zip.js} +1 -1
- package/dist/{zip/sd-zip.js.map → utils/zip.js.map} +1 -1
- package/package.json +1 -1
- package/src/extensions/arr-ext.helpers.ts +86 -0
- package/src/extensions/arr-ext.ts +22 -170
- package/src/extensions/arr-ext.types.ts +76 -48
- package/src/extensions/map-ext.ts +3 -3
- package/src/extensions/set-ext.ts +2 -2
- package/src/features/event-emitter.ts +6 -6
- package/src/features/serial-queue.ts +2 -2
- package/src/index.ts +16 -16
- package/src/types/date-only.ts +2 -2
- package/src/types/date-time.ts +2 -2
- package/src/types/time.ts +2 -2
- package/src/types/uuid.ts +2 -2
- package/src/utils/bytes.ts +15 -15
- package/src/utils/date-format.ts +1 -1
- package/src/utils/error.ts +1 -1
- package/src/utils/json.ts +9 -7
- package/src/utils/num.ts +15 -15
- package/src/utils/obj.ts +119 -116
- package/src/utils/path.ts +3 -3
- package/src/utils/primitive.ts +1 -1
- package/src/utils/str.ts +16 -16
- package/src/utils/transferable.ts +9 -9
- package/src/utils/wait.ts +3 -3
- package/src/utils/xml.ts +2 -2
- package/tests/extensions/array-extension.spec.ts +7 -5
- package/tests/types/uuid.spec.ts +4 -4
- package/tests/utils/bytes-utils.spec.ts +42 -49
- package/tests/utils/date-format.spec.ts +89 -88
- package/tests/utils/debounce-queue.spec.ts +3 -1
- package/tests/utils/json.spec.ts +61 -68
- package/tests/utils/number.spec.ts +41 -46
- package/tests/utils/object.spec.ts +120 -139
- package/tests/utils/path.spec.ts +19 -19
- package/tests/utils/primitive.spec.ts +12 -12
- package/tests/utils/string.spec.ts +66 -74
- package/tests/utils/transferable.spec.ts +55 -62
- package/tests/utils/wait.spec.ts +10 -10
- package/tests/utils/xml.spec.ts +25 -25
- package/dist/zip/sd-zip.d.ts.map +0 -1
- /package/src/{zip/sd-zip.ts → utils/zip.ts} +0 -0
- /package/tests/{zip/sd-zip.spec.ts → utils/zip.spec.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/primitive.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAkBvB,SAAS,
|
|
4
|
+
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAkBvB,SAAS,QAAQ,OAA6D;AACnF,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,OAAO,UAAU,UAAW,QAAO;AACvC,MAAI,iBAAiB,SAAU,QAAO;AACtC,MAAI,iBAAiB,SAAU,QAAO;AACtC,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,iBAAiB,KAAM,QAAO;AAClC,MAAI,iBAAiB,WAAY,QAAO;AACxC,QAAM,IAAI,cAAc,uBAAuB,EAAE,MAAM,OAAO,MAAM,CAAC;AACvE;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utils/str.d.ts
CHANGED
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
* - `"라"`: 이라/라 (ira/ra - copula particle)
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* getKoreanSuffix("Apple", "을") // "를"
|
|
18
|
+
* getKoreanSuffix("책", "이") // "이"
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function getKoreanSuffix(text: string, type: "을" | "은" | "이" | "와" | "랑" | "로" | "라"): string;
|
|
21
21
|
/**
|
|
22
22
|
* Convert full-width characters to half-width characters
|
|
23
23
|
*
|
|
@@ -29,24 +29,24 @@ export declare function koreanGetSuffix(text: string, type: "을" | "은" | "이
|
|
|
29
29
|
* - Full-width parentheses (() → ())
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
|
-
*
|
|
33
|
-
*
|
|
32
|
+
* replaceFullWidth("A123") // "A123"
|
|
33
|
+
* replaceFullWidth("(株)") // "(株)"
|
|
34
34
|
*/
|
|
35
|
-
export declare function
|
|
35
|
+
export declare function replaceFullWidth(str: string): string;
|
|
36
36
|
/**
|
|
37
37
|
* Convert to PascalCase
|
|
38
38
|
* @example "hello-world" → "HelloWorld"
|
|
39
39
|
* @example "hello_world" → "HelloWorld"
|
|
40
40
|
* @example "hello.world" → "HelloWorld"
|
|
41
41
|
*/
|
|
42
|
-
export declare function
|
|
42
|
+
export declare function toPascalCase(str: string): string;
|
|
43
43
|
/**
|
|
44
44
|
* Convert to camelCase
|
|
45
45
|
* @example "hello-world" → "helloWorld"
|
|
46
46
|
* @example "hello_world" → "helloWorld"
|
|
47
47
|
* @example "HelloWorld" → "helloWorld"
|
|
48
48
|
*/
|
|
49
|
-
export declare function
|
|
49
|
+
export declare function toCamelCase(str: string): string;
|
|
50
50
|
/**
|
|
51
51
|
* Convert to kebab-case
|
|
52
52
|
*
|
|
@@ -57,7 +57,7 @@ export declare function strToCamelCase(str: string): string;
|
|
|
57
57
|
* @example "Hello-World" → "hello--world" (existing separators are preserved)
|
|
58
58
|
* @example "XMLParser" → "x-m-l-parser" (consecutive uppercase letters are separated)
|
|
59
59
|
*/
|
|
60
|
-
export declare function
|
|
60
|
+
export declare function toKebabCase(str: string): string;
|
|
61
61
|
/**
|
|
62
62
|
* Convert to snake_case
|
|
63
63
|
*
|
|
@@ -68,7 +68,7 @@ export declare function strToKebabCase(str: string): string;
|
|
|
68
68
|
* @example "Hello_World" → "hello__world" (existing separators are preserved)
|
|
69
69
|
* @example "XMLParser" → "x_m_l_parser" (consecutive uppercase letters are separated)
|
|
70
70
|
*/
|
|
71
|
-
export declare function
|
|
71
|
+
export declare function toSnakeCase(str: string): string;
|
|
72
72
|
/**
|
|
73
73
|
* Check if string is undefined or empty (type guard)
|
|
74
74
|
*
|
|
@@ -77,7 +77,7 @@ export declare function strToSnakeCase(str: string): string;
|
|
|
77
77
|
*
|
|
78
78
|
* @example
|
|
79
79
|
* const name: string | undefined = getValue();
|
|
80
|
-
* if (
|
|
80
|
+
* if (isNullOrEmpty(name)) {
|
|
81
81
|
* // name: "" | undefined
|
|
82
82
|
* console.log("Name is empty");
|
|
83
83
|
* } else {
|
|
@@ -85,7 +85,7 @@ export declare function strToSnakeCase(str: string): string;
|
|
|
85
85
|
* console.log(`Name: ${name}`);
|
|
86
86
|
* }
|
|
87
87
|
*/
|
|
88
|
-
export declare function
|
|
88
|
+
export declare function isNullOrEmpty(str: string | undefined): str is "" | undefined;
|
|
89
89
|
/**
|
|
90
90
|
* Insert a string at a specific position
|
|
91
91
|
*
|
|
@@ -95,9 +95,9 @@ export declare function strIsNullOrEmpty(str: string | undefined): str is "" | u
|
|
|
95
95
|
* @returns A new string with the insertion applied
|
|
96
96
|
*
|
|
97
97
|
* @example
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
98
|
+
* insert("Hello World", 5, ","); // "Hello, World"
|
|
99
|
+
* insert("abc", 0, "X"); // "Xabc"
|
|
100
|
+
* insert("abc", 3, "X"); // "abcX"
|
|
101
101
|
*/
|
|
102
|
-
export declare function
|
|
102
|
+
export declare function insert(str: string, index: number, insertString: string): string;
|
|
103
103
|
//# sourceMappingURL=str.d.ts.map
|
package/dist/utils/str.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"str.d.ts","sourceRoot":"","sources":["../../src/utils/str.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5C,MAAM,CAwBR;AA8ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"str.d.ts","sourceRoot":"","sources":["../../src/utils/str.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC5C,MAAM,CAwBR;AA8ED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,IAAI,EAAE,GAAG,SAAS,CAE5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/E"}
|
package/dist/utils/str.js
CHANGED
|
@@ -7,7 +7,7 @@ const suffixTable = {
|
|
|
7
7
|
\uB85C: { t: "\uC73C\uB85C", f: "\uB85C" },
|
|
8
8
|
\uB77C: { t: "\uC774\uB77C", f: "\uB77C" }
|
|
9
9
|
};
|
|
10
|
-
function
|
|
10
|
+
function getKoreanSuffix(text, type) {
|
|
11
11
|
const table = suffixTable;
|
|
12
12
|
if (text.length === 0) {
|
|
13
13
|
return table[type].f;
|
|
@@ -91,38 +91,38 @@ const fullWidthCharMap = {
|
|
|
91
91
|
"\uFF08": "("
|
|
92
92
|
};
|
|
93
93
|
const fullWidthCharRegex = new RegExp(`[${Object.keys(fullWidthCharMap).join("")}]`, "g");
|
|
94
|
-
function
|
|
94
|
+
function replaceFullWidth(str) {
|
|
95
95
|
return str.replace(fullWidthCharRegex, (char) => fullWidthCharMap[char] ?? char);
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function toPascalCase(str) {
|
|
98
98
|
return str.replace(/[-._][a-z]/g, (m) => m[1].toUpperCase()).replace(/^[a-z]/, (m) => m.toUpperCase());
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function toCamelCase(str) {
|
|
101
101
|
return str.replace(/[-._][a-z]/g, (m) => m[1].toUpperCase()).replace(/^[A-Z]/, (m) => m.toLowerCase());
|
|
102
102
|
}
|
|
103
|
-
function
|
|
103
|
+
function toKebabCase(str) {
|
|
104
104
|
return toCaseWithSeparator(str, "-");
|
|
105
105
|
}
|
|
106
|
-
function
|
|
106
|
+
function toSnakeCase(str) {
|
|
107
107
|
return toCaseWithSeparator(str, "_");
|
|
108
108
|
}
|
|
109
109
|
function toCaseWithSeparator(str, separator) {
|
|
110
110
|
return str.replace(/^[A-Z]/, (m) => m.toLowerCase()).replace(/[-_]?[A-Z]/g, (m) => separator + m.toLowerCase());
|
|
111
111
|
}
|
|
112
|
-
function
|
|
112
|
+
function isNullOrEmpty(str) {
|
|
113
113
|
return str == null || str === "";
|
|
114
114
|
}
|
|
115
|
-
function
|
|
115
|
+
function insert(str, index, insertString) {
|
|
116
116
|
return str.substring(0, index) + insertString + str.substring(index);
|
|
117
117
|
}
|
|
118
118
|
export {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
119
|
+
getKoreanSuffix,
|
|
120
|
+
insert,
|
|
121
|
+
isNullOrEmpty,
|
|
122
|
+
replaceFullWidth,
|
|
123
|
+
toCamelCase,
|
|
124
|
+
toKebabCase,
|
|
125
|
+
toPascalCase,
|
|
126
|
+
toSnakeCase
|
|
127
127
|
};
|
|
128
128
|
//# sourceMappingURL=str.js.map
|
package/dist/utils/str.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/str.ts"],
|
|
4
|
-
"mappings": "AAOA,MAAM,cAAc;AAAA,EAClB,QAAG,EAAE,GAAG,UAAK,GAAG,SAAI;AAAA,EACpB,QAAG,EAAE,GAAG,UAAK,GAAG,SAAI;AAAA,EACpB,QAAG,EAAE,GAAG,UAAK,GAAG,SAAI;AAAA,EACpB,QAAG,EAAE,GAAG,UAAK,GAAG,SAAI;AAAA,EACpB,QAAG,EAAE,GAAG,gBAAM,GAAG,SAAI;AAAA,EACrB,QAAG,EAAE,GAAG,gBAAM,GAAG,SAAI;AAAA,EACrB,QAAG,EAAE,GAAG,gBAAM,GAAG,SAAI;AACvB;AAkBO,SAAS,gBACd,MACA,MACQ;AACR,QAAM,QAAQ;AAEd,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO,MAAM,IAAI,EAAE;AAAA,EACrB;AAEA,QAAM,eAAe,KAAK,WAAW,KAAK,SAAS,CAAC;AAGpD,MAAI,eAAe,SAAU,eAAe,OAAQ;AAClD,WAAO,MAAM,IAAI,EAAE;AAAA,EACrB;AAGA,QAAM,kBAAkB,eAAe,SAAU;AACjD,QAAM,UAAU,mBAAmB;AAGnC,MAAI,SAAS,YAAO,mBAAmB,GAAG;AACxC,WAAO,MAAM,IAAI,EAAE;AAAA,EACrB;AAEA,SAAO,UAAU,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;AAC/C;AAOA,MAAM,mBAA2C;AAAA,EAC/C,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AAAA,EACL,UAAK;AACP;AAGA,MAAM,qBAAqB,IAAI,OAAO,IAAI,OAAO,KAAK,gBAAgB,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG;AAgBjF,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -26,7 +26,7 @@ type Transferable = ArrayBuffer;
|
|
|
26
26
|
* worker.postMessage(result, transferList);
|
|
27
27
|
*
|
|
28
28
|
* // Receive data from Worker
|
|
29
|
-
* const decoded =
|
|
29
|
+
* const decoded = decode(event.data);
|
|
30
30
|
*/
|
|
31
31
|
/**
|
|
32
32
|
* Convert objects using Simplysm types to plain objects
|
|
@@ -34,7 +34,7 @@ type Transferable = ArrayBuffer;
|
|
|
34
34
|
*
|
|
35
35
|
* @throws TypeError if circular reference is detected
|
|
36
36
|
*/
|
|
37
|
-
export declare function
|
|
37
|
+
export declare function encode(obj: unknown): {
|
|
38
38
|
result: unknown;
|
|
39
39
|
transferList: Transferable[];
|
|
40
40
|
};
|
|
@@ -42,6 +42,6 @@ export declare function transferableEncode(obj: unknown): {
|
|
|
42
42
|
* Convert serialized objects to objects using Simplysm types
|
|
43
43
|
* Deserialize data received from a Worker
|
|
44
44
|
*/
|
|
45
|
-
export declare function
|
|
45
|
+
export declare function decode(obj: unknown): unknown;
|
|
46
46
|
export {};
|
|
47
47
|
//# sourceMappingURL=transferable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/utils/transferable.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,KAAK,YAAY,GAAG,WAAW,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"transferable.d.ts","sourceRoot":"","sources":["../../src/utils/transferable.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,KAAK,YAAY,GAAG,WAAW,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAMA;AAoJD;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA2E5C"}
|
|
@@ -2,7 +2,7 @@ import { DateTime } from "../types/date-time.js";
|
|
|
2
2
|
import { DateOnly } from "../types/date-only.js";
|
|
3
3
|
import { Time } from "../types/time.js";
|
|
4
4
|
import { Uuid } from "../types/uuid.js";
|
|
5
|
-
function
|
|
5
|
+
function encode(obj) {
|
|
6
6
|
const transferList = [];
|
|
7
7
|
const ancestors = /* @__PURE__ */ new Set();
|
|
8
8
|
const cache = /* @__PURE__ */ new Map();
|
|
@@ -108,7 +108,7 @@ function encodeImpl(obj, transferList, path, ancestors, cache) {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
function
|
|
111
|
+
function decode(obj) {
|
|
112
112
|
if (obj == null) return obj;
|
|
113
113
|
if (typeof obj === "object" && "__type__" in obj && "data" in obj) {
|
|
114
114
|
const typed = obj;
|
|
@@ -128,25 +128,25 @@ function transferableDecode(obj) {
|
|
|
128
128
|
err.name = errorData.name;
|
|
129
129
|
err.stack = errorData.stack;
|
|
130
130
|
if (errorData.code !== void 0) err.code = errorData.code;
|
|
131
|
-
if (errorData.cause !== void 0) err.cause =
|
|
132
|
-
if (errorData.detail !== void 0) err.detail =
|
|
131
|
+
if (errorData.cause !== void 0) err.cause = decode(errorData.cause);
|
|
132
|
+
if (errorData.detail !== void 0) err.detail = decode(errorData.detail);
|
|
133
133
|
return err;
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
if (Array.isArray(obj)) {
|
|
137
|
-
return obj.map((item) =>
|
|
137
|
+
return obj.map((item) => decode(item));
|
|
138
138
|
}
|
|
139
139
|
if (obj instanceof Map) {
|
|
140
140
|
const newMap = /* @__PURE__ */ new Map();
|
|
141
141
|
for (const [k, v] of obj) {
|
|
142
|
-
newMap.set(
|
|
142
|
+
newMap.set(decode(k), decode(v));
|
|
143
143
|
}
|
|
144
144
|
return newMap;
|
|
145
145
|
}
|
|
146
146
|
if (obj instanceof Set) {
|
|
147
147
|
const newSet = /* @__PURE__ */ new Set();
|
|
148
148
|
for (const v of obj) {
|
|
149
|
-
newSet.add(
|
|
149
|
+
newSet.add(decode(v));
|
|
150
150
|
}
|
|
151
151
|
return newSet;
|
|
152
152
|
}
|
|
@@ -154,14 +154,14 @@ function transferableDecode(obj) {
|
|
|
154
154
|
const record = obj;
|
|
155
155
|
const result = {};
|
|
156
156
|
for (const key of Object.keys(record)) {
|
|
157
|
-
result[key] =
|
|
157
|
+
result[key] = decode(record[key]);
|
|
158
158
|
}
|
|
159
159
|
return result;
|
|
160
160
|
}
|
|
161
161
|
return obj;
|
|
162
162
|
}
|
|
163
163
|
export {
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
decode,
|
|
165
|
+
encode
|
|
166
166
|
};
|
|
167
167
|
//# sourceMappingURL=transferable.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/transferable.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,YAAY;AA0Cd,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utils/wait.d.ts
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* await waitUntil(() => someCondition, 100, 3);
|
|
11
11
|
* @throws TimeoutError when maximum number of attempts is exceeded
|
|
12
12
|
*/
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function until(forwarder: () => boolean | Promise<boolean>, milliseconds?: number, maxCount?: number): Promise<void>;
|
|
14
14
|
/**
|
|
15
15
|
* Wait for a specified amount of time
|
|
16
16
|
* @param millisecond Wait time (ms)
|
|
17
17
|
*/
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function time(millisecond: number): Promise<void>;
|
|
19
19
|
//# sourceMappingURL=wait.d.ts.map
|
package/dist/utils/wait.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/utils/wait.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wBAAsB,
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/utils/wait.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CACzB,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAC3C,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D"}
|
package/dist/utils/wait.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { TimeoutError } from "../errors/timeout-error.js";
|
|
2
|
-
async function
|
|
2
|
+
async function until(forwarder, milliseconds, maxCount) {
|
|
3
3
|
let count = 0;
|
|
4
4
|
while (!await forwarder()) {
|
|
5
5
|
count++;
|
|
6
6
|
if (maxCount !== void 0 && count >= maxCount) {
|
|
7
7
|
throw new TimeoutError(count);
|
|
8
8
|
}
|
|
9
|
-
await
|
|
9
|
+
await time(milliseconds ?? 100);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
async function
|
|
12
|
+
async function time(millisecond) {
|
|
13
13
|
return new Promise((resolve) => setTimeout(resolve, millisecond));
|
|
14
14
|
}
|
|
15
15
|
export {
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
time,
|
|
17
|
+
until
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=wait.js.map
|
package/dist/utils/wait.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/wait.ts"],
|
|
4
|
-
"mappings": "AAGA,SAAS,oBAAoB;AAc7B,eAAsB,
|
|
4
|
+
"mappings": "AAGA,SAAS,oBAAoB;AAc7B,eAAsB,MACpB,WACA,cACA,UACe;AACf,MAAI,QAAQ;AACZ,SAAO,CAAE,MAAM,UAAU,GAAI;AAC3B;AACA,QAAI,aAAa,UAAa,SAAS,UAAU;AAC/C,YAAM,IAAI,aAAa,KAAK;AAAA,IAC9B;AAEA,UAAM,KAAK,gBAAgB,GAAG;AAAA,EAChC;AACF;AAMA,eAAsB,KAAK,aAAoC;AAC7D,SAAO,IAAI,QAAc,CAAC,YAAY,WAAW,SAAS,WAAW,CAAC;AACxE;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utils/xml.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import type { XmlBuilderOptions } from "fast-xml-parser";
|
|
|
15
15
|
* xmlParse('<root id="1"><item>hello</item></root>');
|
|
16
16
|
* // { root: { $: { id: "1" }, item: [{ _: "hello" }] } }
|
|
17
17
|
*/
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function parse(str: string, options?: {
|
|
19
19
|
stripTagPrefix?: boolean;
|
|
20
20
|
}): unknown;
|
|
21
21
|
/**
|
|
@@ -32,5 +32,5 @@ export declare function xmlParse(str: string, options?: {
|
|
|
32
32
|
* });
|
|
33
33
|
* // '<root id="1"><item>hello</item><item>world</item></root>'
|
|
34
34
|
*/
|
|
35
|
-
export declare function
|
|
35
|
+
export declare function stringify(obj: unknown, options?: XmlBuilderOptions): string;
|
|
36
36
|
//# sourceMappingURL=xml.d.ts.map
|
package/dist/utils/xml.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/utils/xml.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../../src/utils/xml.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAKzD;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAclF;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAS3E"}
|
package/dist/utils/xml.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XMLBuilder, XMLParser } from "fast-xml-parser";
|
|
2
|
-
function
|
|
2
|
+
function parse(str, options) {
|
|
3
3
|
const result = new XMLParser({
|
|
4
4
|
ignoreAttributes: false,
|
|
5
5
|
attributeNamePrefix: "",
|
|
@@ -14,7 +14,7 @@ function xmlParse(str, options) {
|
|
|
14
14
|
}).parse(str);
|
|
15
15
|
return (options == null ? void 0 : options.stripTagPrefix) ? stripTagPrefix(result) : result;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function stringify(obj, options) {
|
|
18
18
|
return new XMLBuilder({
|
|
19
19
|
ignoreAttributes: false,
|
|
20
20
|
attributeNamePrefix: "",
|
|
@@ -46,7 +46,7 @@ function stripTagPrefix(obj) {
|
|
|
46
46
|
return obj;
|
|
47
47
|
}
|
|
48
48
|
export {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
parse,
|
|
50
|
+
stringify
|
|
51
51
|
};
|
|
52
52
|
//# sourceMappingURL=xml.js.map
|
package/dist/utils/xml.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils/xml.ts"],
|
|
4
|
-
"mappings": "AAIA,SAAS,YAAY,iBAAiB;AAiB/B,SAAS,
|
|
4
|
+
"mappings": "AAIA,SAAS,YAAY,iBAAiB;AAiB/B,SAAS,MAAM,KAAa,SAAiD;AAClF,QAAM,SAAS,IAAI,UAAU;AAAA,IAC3B,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,cAAc;AAAA,IACd,SAAS,CAAC,UAAkB,OAAe,aAAsB,gBAAyB;AACxF,aAAO,CAAC,eAAe,MAAM,MAAM,GAAG,EAAE,SAAS;AAAA,IACnD;AAAA,EACF,CAAC,EAAE,MAAM,GAAG;AACZ,UAAO,mCAAS,kBAAiB,eAAe,MAAM,IAAI;AAC5D;AAoBO,SAAS,UAAU,KAAc,SAAqC;AAC3E,SAAO,IAAI,WAAW;AAAA,IACpB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,2BAA2B;AAAA,IAC3B,cAAc;AAAA,IACd,GAAG;AAAA,EACL,CAAC,EAAE,MAAM,GAAG;AACd;AAYA,SAAS,eAAe,KAAuB;AAC7C,MAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,WAAO,IAAI,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC;AAAA,EAC/C;AAEA,MAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;AAC3C,UAAM,SAAkC,CAAC;AACzC,UAAM,SAAS;AAEf,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,YAAM,QAAQ,OAAO,GAAG;AAGxB,UAAI,QAAQ,KAAK;AACf,eAAO,GAAG,IAAI;AAAA,MAChB,OAAO;AAEL,cAAM,aAAa,IAAI,QAAQ,GAAG;AAClC,cAAM,WAAW,eAAe,KAAK,IAAI,MAAM,aAAa,CAAC,IAAI;AACjE,eAAO,QAAQ,IAAI,eAAe,KAAK;AAAA,MACzC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../src/utils/zip.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,CAA6D;IAE9E;;;OAGG;gBACS,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK;YAUjB,WAAW;IAQzB;;;OAGG;IACG,UAAU,CACd,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GACxD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC;IAoD1C;;;OAGG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAwBvD;;;OAGG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAM3C;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;IAiBhC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/
|
|
3
|
+
"sources": ["../../src/utils/zip.ts"],
|
|
4
4
|
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -6,6 +6,7 @@ import { DateTime } from "../types/date-time";
|
|
|
6
6
|
import { DateOnly } from "../types/date-only";
|
|
7
7
|
import { Time } from "../types/time";
|
|
8
8
|
import { ArgumentError } from "../errors/argument-error";
|
|
9
|
+
import { equal } from "../utils/obj";
|
|
9
10
|
import type { ComparableType } from "./arr-ext.types";
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -54,3 +55,88 @@ export function compareForOrder(pp: ComparableType, pn: ComparableType, desc: bo
|
|
|
54
55
|
type2: typeof cpn,
|
|
55
56
|
});
|
|
56
57
|
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Returns a Set of indices to KEEP (i.e., first occurrence of each unique item).
|
|
61
|
+
* Handles all deduplication strategies: matchAddress, keyFn, and default type-based.
|
|
62
|
+
*/
|
|
63
|
+
export function getDistinctIndices<TItem>(
|
|
64
|
+
items: readonly TItem[],
|
|
65
|
+
options?: boolean | { matchAddress?: boolean; keyFn?: (item: TItem) => string | number },
|
|
66
|
+
): Set<number> {
|
|
67
|
+
const opts = typeof options === "boolean" ? { matchAddress: options } : (options ?? {});
|
|
68
|
+
const result = new Set<number>();
|
|
69
|
+
|
|
70
|
+
// matchAddress: Set-based O(n)
|
|
71
|
+
if (opts.matchAddress === true) {
|
|
72
|
+
const seen = new Set<TItem>();
|
|
73
|
+
for (let i = 0; i < items.length; i++) {
|
|
74
|
+
if (!seen.has(items[i])) {
|
|
75
|
+
seen.add(items[i]);
|
|
76
|
+
result.add(i);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// keyFn provided: custom key-based O(n)
|
|
83
|
+
if (opts.keyFn) {
|
|
84
|
+
const seen = new Set<string | number>();
|
|
85
|
+
for (let i = 0; i < items.length; i++) {
|
|
86
|
+
const key = opts.keyFn(items[i]);
|
|
87
|
+
if (!seen.has(key)) {
|
|
88
|
+
seen.add(key);
|
|
89
|
+
result.add(i);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Default: type-based processing with edge cases
|
|
96
|
+
const seen = new Map<string, TItem>();
|
|
97
|
+
const seenRefs = new Set<symbol | ((...args: unknown[]) => unknown)>();
|
|
98
|
+
|
|
99
|
+
for (let i = 0; i < items.length; i++) {
|
|
100
|
+
const item = items[i];
|
|
101
|
+
|
|
102
|
+
if (item === null || typeof item !== "object") {
|
|
103
|
+
const type = typeof item;
|
|
104
|
+
|
|
105
|
+
if (type === "symbol" || type === "function") {
|
|
106
|
+
const ref = item as symbol | ((...args: unknown[]) => unknown);
|
|
107
|
+
if (!seenRefs.has(ref)) {
|
|
108
|
+
seenRefs.add(ref);
|
|
109
|
+
result.add(i);
|
|
110
|
+
}
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
let key = type + ":";
|
|
115
|
+
if (Object.is(item, -0)) {
|
|
116
|
+
key += "-0";
|
|
117
|
+
} else {
|
|
118
|
+
key += String(item);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (!seen.has(key)) {
|
|
122
|
+
seen.set(key, item);
|
|
123
|
+
result.add(i);
|
|
124
|
+
}
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Objects: deep comparison (O(n²) — only add if no duplicate found in already-kept items)
|
|
129
|
+
let hasDuplicate = false;
|
|
130
|
+
for (const keptIdx of result) {
|
|
131
|
+
if (equal(items[keptIdx], item)) {
|
|
132
|
+
hasDuplicate = true;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (!hasDuplicate) {
|
|
137
|
+
result.add(i);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return result;
|
|
142
|
+
}
|