@ckeditor/ckeditor5-utils 40.0.0 → 40.1.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.
Files changed (128) hide show
  1. package/LICENSE.md +3 -3
  2. package/package.json +1 -1
  3. package/src/areconnectedthroughproperties.d.ts +11 -11
  4. package/src/areconnectedthroughproperties.js +73 -73
  5. package/src/ckeditorerror.d.ts +123 -123
  6. package/src/ckeditorerror.js +176 -176
  7. package/src/collection.d.ts +433 -427
  8. package/src/collection.js +583 -575
  9. package/src/comparearrays.d.ts +30 -30
  10. package/src/comparearrays.js +47 -47
  11. package/src/config.d.ts +163 -163
  12. package/src/config.js +163 -162
  13. package/src/count.d.ts +18 -18
  14. package/src/count.js +24 -24
  15. package/src/delay.d.ts +19 -19
  16. package/src/delay.js +26 -26
  17. package/src/diff.d.ts +31 -31
  18. package/src/diff.js +115 -115
  19. package/src/difftochanges.d.ts +59 -59
  20. package/src/difftochanges.js +79 -79
  21. package/src/dom/createelement.d.ts +57 -57
  22. package/src/dom/createelement.js +40 -40
  23. package/src/dom/emittermixin.d.ts +142 -142
  24. package/src/dom/emittermixin.js +239 -239
  25. package/src/dom/findclosestscrollableancestor.d.ts +11 -11
  26. package/src/dom/findclosestscrollableancestor.js +31 -31
  27. package/src/dom/getancestors.d.ts +17 -17
  28. package/src/dom/getancestors.js +27 -27
  29. package/src/dom/getborderwidths.d.ts +24 -24
  30. package/src/dom/getborderwidths.js +24 -24
  31. package/src/dom/getcommonancestor.d.ts +12 -12
  32. package/src/dom/getcommonancestor.js +25 -25
  33. package/src/dom/getdatafromelement.d.ts +14 -14
  34. package/src/dom/getdatafromelement.js +20 -20
  35. package/src/dom/getpositionedancestor.d.ts +10 -10
  36. package/src/dom/getpositionedancestor.js +22 -22
  37. package/src/dom/global.d.ts +32 -32
  38. package/src/dom/global.js +35 -35
  39. package/src/dom/indexof.d.ts +14 -14
  40. package/src/dom/indexof.js +21 -21
  41. package/src/dom/insertat.d.ts +15 -15
  42. package/src/dom/insertat.js +17 -17
  43. package/src/dom/iscomment.d.ts +11 -11
  44. package/src/dom/iscomment.js +14 -14
  45. package/src/dom/isnode.d.ts +11 -11
  46. package/src/dom/isnode.js +21 -21
  47. package/src/dom/isrange.d.ts +11 -11
  48. package/src/dom/isrange.js +13 -13
  49. package/src/dom/istext.d.ts +11 -11
  50. package/src/dom/istext.js +13 -13
  51. package/src/dom/isvalidattributename.d.ts +10 -10
  52. package/src/dom/isvalidattributename.js +22 -22
  53. package/src/dom/isvisible.d.ts +18 -18
  54. package/src/dom/isvisible.js +20 -20
  55. package/src/dom/iswindow.d.ts +11 -11
  56. package/src/dom/iswindow.js +22 -22
  57. package/src/dom/position.d.ts +211 -211
  58. package/src/dom/position.js +313 -313
  59. package/src/dom/rect.d.ts +195 -195
  60. package/src/dom/rect.js +474 -474
  61. package/src/dom/remove.d.ts +13 -13
  62. package/src/dom/remove.js +18 -18
  63. package/src/dom/resizeobserver.d.ts +74 -74
  64. package/src/dom/resizeobserver.js +126 -126
  65. package/src/dom/scroll.d.ts +73 -73
  66. package/src/dom/scroll.js +383 -383
  67. package/src/dom/setdatainelement.d.ts +14 -14
  68. package/src/dom/setdatainelement.js +20 -20
  69. package/src/dom/tounit.d.ts +22 -22
  70. package/src/dom/tounit.js +16 -16
  71. package/src/elementreplacer.d.ts +31 -31
  72. package/src/elementreplacer.js +43 -43
  73. package/src/emittermixin.d.ts +312 -312
  74. package/src/emittermixin.js +453 -453
  75. package/src/env.d.ts +117 -117
  76. package/src/env.js +122 -122
  77. package/src/eventinfo.d.ts +58 -58
  78. package/src/eventinfo.js +26 -26
  79. package/src/fastdiff.d.ts +112 -112
  80. package/src/fastdiff.js +248 -248
  81. package/src/first.d.ts +11 -11
  82. package/src/first.js +17 -17
  83. package/src/focustracker.d.ts +75 -75
  84. package/src/focustracker.js +95 -95
  85. package/src/index.d.ts +61 -61
  86. package/src/index.js +60 -60
  87. package/src/inserttopriorityarray.d.ts +30 -30
  88. package/src/inserttopriorityarray.js +21 -21
  89. package/src/isiterable.d.ts +14 -14
  90. package/src/isiterable.js +16 -16
  91. package/src/keyboard.d.ts +126 -126
  92. package/src/keyboard.js +221 -221
  93. package/src/keystrokehandler.d.ts +87 -87
  94. package/src/keystrokehandler.js +122 -122
  95. package/src/language.d.ts +17 -17
  96. package/src/language.js +19 -19
  97. package/src/locale.d.ts +120 -120
  98. package/src/locale.js +76 -76
  99. package/src/mapsequal.d.ts +15 -15
  100. package/src/mapsequal.js +27 -27
  101. package/src/mix.d.ts +85 -85
  102. package/src/mix.js +50 -50
  103. package/src/nth.d.ts +16 -16
  104. package/src/nth.js +24 -24
  105. package/src/objecttomap.d.ts +23 -23
  106. package/src/objecttomap.js +27 -27
  107. package/src/observablemixin.d.ts +560 -560
  108. package/src/observablemixin.js +580 -580
  109. package/src/priorities.d.ts +33 -33
  110. package/src/priorities.js +23 -23
  111. package/src/splicearray.d.ts +26 -26
  112. package/src/splicearray.js +40 -40
  113. package/src/spy.d.ts +21 -21
  114. package/src/spy.js +22 -22
  115. package/src/toarray.d.ts +25 -25
  116. package/src/toarray.js +7 -7
  117. package/src/tomap.d.ts +19 -19
  118. package/src/tomap.js +29 -29
  119. package/src/translation-service.d.ts +168 -168
  120. package/src/translation-service.js +198 -198
  121. package/src/uid.d.ts +15 -15
  122. package/src/uid.js +57 -57
  123. package/src/unicode.d.ts +54 -54
  124. package/src/unicode.js +85 -85
  125. package/src/verifylicense.d.ts +15 -15
  126. package/src/verifylicense.js +87 -87
  127. package/src/version.d.ts +10 -10
  128. package/src/version.js +153 -153
package/src/unicode.js CHANGED
@@ -1,85 +1,85 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * Set of utils to handle unicode characters.
7
- *
8
- * @module utils/unicode
9
- */
10
- /**
11
- * Checks whether given `character` is a combining mark.
12
- *
13
- * @param character Character to check.
14
- */
15
- export function isCombiningMark(character) {
16
- // eslint-disable-next-line no-misleading-character-class
17
- return !!character && character.length == 1 && /[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(character);
18
- }
19
- /**
20
- * Checks whether given `character` is a high half of surrogate pair.
21
- *
22
- * Using UTF-16 terminology, a surrogate pair denotes UTF-16 character using two UTF-8 characters. The surrogate pair
23
- * consist of high surrogate pair character followed by low surrogate pair character.
24
- *
25
- * @param character Character to check.
26
- */
27
- export function isHighSurrogateHalf(character) {
28
- return !!character && character.length == 1 && /[\ud800-\udbff]/.test(character);
29
- }
30
- /**
31
- * Checks whether given `character` is a low half of surrogate pair.
32
- *
33
- * Using UTF-16 terminology, a surrogate pair denotes UTF-16 character using two UTF-8 characters. The surrogate pair
34
- * consist of high surrogate pair character followed by low surrogate pair character.
35
- *
36
- * @param character Character to check.
37
- */
38
- export function isLowSurrogateHalf(character) {
39
- return !!character && character.length == 1 && /[\udc00-\udfff]/.test(character);
40
- }
41
- /**
42
- * Checks whether given offset in a string is inside a surrogate pair (between two surrogate halves).
43
- *
44
- * @param string String to check.
45
- * @param offset Offset to check.
46
- */
47
- export function isInsideSurrogatePair(string, offset) {
48
- return isHighSurrogateHalf(string.charAt(offset - 1)) && isLowSurrogateHalf(string.charAt(offset));
49
- }
50
- /**
51
- * Checks whether given offset in a string is between base character and combining mark or between two combining marks.
52
- *
53
- * @param string String to check.
54
- * @param offset Offset to check.
55
- */
56
- export function isInsideCombinedSymbol(string, offset) {
57
- return isCombiningMark(string.charAt(offset));
58
- }
59
- const EMOJI_PATTERN = buildEmojiRegexp();
60
- /**
61
- * Checks whether given offset in a string is inside multi-character emoji sequence.
62
- *
63
- * @param string String to check.
64
- * @param offset Offset to check.
65
- */
66
- export function isInsideEmojiSequence(string, offset) {
67
- const matches = String(string).matchAll(EMOJI_PATTERN);
68
- return Array.from(matches).some(match => match.index < offset && offset < match.index + match[0].length);
69
- }
70
- function buildEmojiRegexp() {
71
- const parts = [
72
- // Emoji Tag Sequence (ETS)
73
- /\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u,
74
- // Emoji Keycap Sequence
75
- /\p{Emoji}\u{FE0F}?\u{20E3}/u,
76
- // Emoji Presentation Sequence
77
- /\p{Emoji}\u{FE0F}/u,
78
- // Single-Character Emoji / Emoji Modifier Sequence
79
- /(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u
80
- ];
81
- const flagSequence = /\p{Regional_Indicator}{2}/u.source;
82
- const emoji = '(?:' + parts.map(part => part.source).join('|') + ')';
83
- const sequence = `${flagSequence}|${emoji}(?:\u{200D}${emoji})*`;
84
- return new RegExp(sequence, 'ug');
85
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * Set of utils to handle unicode characters.
7
+ *
8
+ * @module utils/unicode
9
+ */
10
+ /**
11
+ * Checks whether given `character` is a combining mark.
12
+ *
13
+ * @param character Character to check.
14
+ */
15
+ export function isCombiningMark(character) {
16
+ // eslint-disable-next-line no-misleading-character-class
17
+ return !!character && character.length == 1 && /[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(character);
18
+ }
19
+ /**
20
+ * Checks whether given `character` is a high half of surrogate pair.
21
+ *
22
+ * Using UTF-16 terminology, a surrogate pair denotes UTF-16 character using two UTF-8 characters. The surrogate pair
23
+ * consist of high surrogate pair character followed by low surrogate pair character.
24
+ *
25
+ * @param character Character to check.
26
+ */
27
+ export function isHighSurrogateHalf(character) {
28
+ return !!character && character.length == 1 && /[\ud800-\udbff]/.test(character);
29
+ }
30
+ /**
31
+ * Checks whether given `character` is a low half of surrogate pair.
32
+ *
33
+ * Using UTF-16 terminology, a surrogate pair denotes UTF-16 character using two UTF-8 characters. The surrogate pair
34
+ * consist of high surrogate pair character followed by low surrogate pair character.
35
+ *
36
+ * @param character Character to check.
37
+ */
38
+ export function isLowSurrogateHalf(character) {
39
+ return !!character && character.length == 1 && /[\udc00-\udfff]/.test(character);
40
+ }
41
+ /**
42
+ * Checks whether given offset in a string is inside a surrogate pair (between two surrogate halves).
43
+ *
44
+ * @param string String to check.
45
+ * @param offset Offset to check.
46
+ */
47
+ export function isInsideSurrogatePair(string, offset) {
48
+ return isHighSurrogateHalf(string.charAt(offset - 1)) && isLowSurrogateHalf(string.charAt(offset));
49
+ }
50
+ /**
51
+ * Checks whether given offset in a string is between base character and combining mark or between two combining marks.
52
+ *
53
+ * @param string String to check.
54
+ * @param offset Offset to check.
55
+ */
56
+ export function isInsideCombinedSymbol(string, offset) {
57
+ return isCombiningMark(string.charAt(offset));
58
+ }
59
+ const EMOJI_PATTERN = buildEmojiRegexp();
60
+ /**
61
+ * Checks whether given offset in a string is inside multi-character emoji sequence.
62
+ *
63
+ * @param string String to check.
64
+ * @param offset Offset to check.
65
+ */
66
+ export function isInsideEmojiSequence(string, offset) {
67
+ const matches = String(string).matchAll(EMOJI_PATTERN);
68
+ return Array.from(matches).some(match => match.index < offset && offset < match.index + match[0].length);
69
+ }
70
+ function buildEmojiRegexp() {
71
+ const parts = [
72
+ // Emoji Tag Sequence (ETS)
73
+ /\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u,
74
+ // Emoji Keycap Sequence
75
+ /\p{Emoji}\u{FE0F}?\u{20E3}/u,
76
+ // Emoji Presentation Sequence
77
+ /\p{Emoji}\u{FE0F}/u,
78
+ // Single-Character Emoji / Emoji Modifier Sequence
79
+ /(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u
80
+ ];
81
+ const flagSequence = /\p{Regional_Indicator}{2}/u.source;
82
+ const emoji = '(?:' + parts.map(part => part.source).join('|') + ')';
83
+ const sequence = `${flagSequence}|${emoji}(?:\u{200D}${emoji})*`;
84
+ return new RegExp(sequence, 'ug');
85
+ }
@@ -1,15 +1,15 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * Possible states of the key after verification.
7
- */
8
- export type VerifiedKeyStatus = 'VALID' | 'INVALID';
9
- /**
10
- * Checks whether the given string contains information that allows you to verify the license status.
11
- *
12
- * @param token The string to check.
13
- * @returns String that represents the state of given `token` parameter.
14
- */
15
- export default function verifyLicense(token: string | undefined): VerifiedKeyStatus;
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * Possible states of the key after verification.
7
+ */
8
+ export type VerifiedKeyStatus = 'VALID' | 'INVALID';
9
+ /**
10
+ * Checks whether the given string contains information that allows you to verify the license status.
11
+ *
12
+ * @param token The string to check.
13
+ * @returns String that represents the state of given `token` parameter.
14
+ */
15
+ export default function verifyLicense(token: string | undefined): VerifiedKeyStatus;
@@ -1,87 +1,87 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- /**
6
- * @module utils/verifylicense
7
- */
8
- import { releaseDate } from './version';
9
- /**
10
- * Checks whether the given string contains information that allows you to verify the license status.
11
- *
12
- * @param token The string to check.
13
- * @returns String that represents the state of given `token` parameter.
14
- */
15
- export default function verifyLicense(token) {
16
- // This function implements naive and partial license key check mechanism,
17
- // used only to decide whether to show or hide the "Powered by CKEditor" logo.
18
- //
19
- // You can read the reasoning behind showing the logo to unlicensed (GPL) users
20
- // in this thread: https://github.com/ckeditor/ckeditor5/issues/14082.
21
- //
22
- // We firmly believe in the values behind creating open-source software, even when that
23
- // means keeping the license verification logic open for everyone to see.
24
- //
25
- // Please keep this code intact. Thank you for your understanding.
26
- function oldTokenCheck(token) {
27
- if (token.length >= 40 && token.length <= 255) {
28
- return 'VALID';
29
- }
30
- else {
31
- return 'INVALID';
32
- }
33
- }
34
- // TODO: issue ci#3175
35
- if (!token) {
36
- return 'INVALID';
37
- }
38
- let decryptedData = '';
39
- try {
40
- decryptedData = atob(token);
41
- }
42
- catch (e) {
43
- return 'INVALID';
44
- }
45
- const splittedDecryptedData = decryptedData.split('-');
46
- const firstElement = splittedDecryptedData[0];
47
- const secondElement = splittedDecryptedData[1];
48
- if (!secondElement) {
49
- return oldTokenCheck(token);
50
- }
51
- try {
52
- atob(secondElement);
53
- }
54
- catch (e) {
55
- try {
56
- atob(firstElement);
57
- if (!atob(firstElement).length) {
58
- return oldTokenCheck(token);
59
- }
60
- }
61
- catch (e) {
62
- return oldTokenCheck(token);
63
- }
64
- }
65
- if (firstElement.length < 40 || firstElement.length > 255) {
66
- return 'INVALID';
67
- }
68
- let decryptedSecondElement = '';
69
- try {
70
- atob(firstElement);
71
- decryptedSecondElement = atob(secondElement);
72
- }
73
- catch (e) {
74
- return 'INVALID';
75
- }
76
- if (decryptedSecondElement.length !== 8) {
77
- return 'INVALID';
78
- }
79
- const year = Number(decryptedSecondElement.substring(0, 4));
80
- const monthIndex = Number(decryptedSecondElement.substring(4, 6)) - 1;
81
- const day = Number(decryptedSecondElement.substring(6, 8));
82
- const date = new Date(year, monthIndex, day);
83
- if (date < releaseDate || isNaN(Number(date))) {
84
- return 'INVALID';
85
- }
86
- return 'VALID';
87
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module utils/verifylicense
7
+ */
8
+ import { releaseDate } from './version';
9
+ /**
10
+ * Checks whether the given string contains information that allows you to verify the license status.
11
+ *
12
+ * @param token The string to check.
13
+ * @returns String that represents the state of given `token` parameter.
14
+ */
15
+ export default function verifyLicense(token) {
16
+ // This function implements naive and partial license key check mechanism,
17
+ // used only to decide whether to show or hide the "Powered by CKEditor" logo.
18
+ //
19
+ // You can read the reasoning behind showing the logo to unlicensed (GPL) users
20
+ // in this thread: https://github.com/ckeditor/ckeditor5/issues/14082.
21
+ //
22
+ // We firmly believe in the values behind creating open-source software, even when that
23
+ // means keeping the license verification logic open for everyone to see.
24
+ //
25
+ // Please keep this code intact. Thank you for your understanding.
26
+ function oldTokenCheck(token) {
27
+ if (token.length >= 40 && token.length <= 255) {
28
+ return 'VALID';
29
+ }
30
+ else {
31
+ return 'INVALID';
32
+ }
33
+ }
34
+ // TODO: issue ci#3175
35
+ if (!token) {
36
+ return 'INVALID';
37
+ }
38
+ let decryptedData = '';
39
+ try {
40
+ decryptedData = atob(token);
41
+ }
42
+ catch (e) {
43
+ return 'INVALID';
44
+ }
45
+ const splittedDecryptedData = decryptedData.split('-');
46
+ const firstElement = splittedDecryptedData[0];
47
+ const secondElement = splittedDecryptedData[1];
48
+ if (!secondElement) {
49
+ return oldTokenCheck(token);
50
+ }
51
+ try {
52
+ atob(secondElement);
53
+ }
54
+ catch (e) {
55
+ try {
56
+ atob(firstElement);
57
+ if (!atob(firstElement).length) {
58
+ return oldTokenCheck(token);
59
+ }
60
+ }
61
+ catch (e) {
62
+ return oldTokenCheck(token);
63
+ }
64
+ }
65
+ if (firstElement.length < 40 || firstElement.length > 255) {
66
+ return 'INVALID';
67
+ }
68
+ let decryptedSecondElement = '';
69
+ try {
70
+ atob(firstElement);
71
+ decryptedSecondElement = atob(secondElement);
72
+ }
73
+ catch (e) {
74
+ return 'INVALID';
75
+ }
76
+ if (decryptedSecondElement.length !== 8) {
77
+ return 'INVALID';
78
+ }
79
+ const year = Number(decryptedSecondElement.substring(0, 4));
80
+ const monthIndex = Number(decryptedSecondElement.substring(4, 6)) - 1;
81
+ const day = Number(decryptedSecondElement.substring(6, 8));
82
+ const date = new Date(year, monthIndex, day);
83
+ if (date < releaseDate || isNaN(Number(date))) {
84
+ return 'INVALID';
85
+ }
86
+ return 'VALID';
87
+ }
package/src/version.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- declare const version = "40.0.0";
6
- export default version;
7
- export declare const releaseDate: Date;
8
- declare global {
9
- var CKEDITOR_VERSION: string;
10
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ declare const version = "40.1.0";
6
+ export default version;
7
+ export declare const releaseDate: Date;
8
+ declare global {
9
+ var CKEDITOR_VERSION: string;
10
+ }