@kwiz/common 1.0.78 → 1.0.80

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 (118) hide show
  1. package/.github/workflows/npm-publish.yml +24 -0
  2. package/.madgerc +2 -2
  3. package/LICENSE +21 -21
  4. package/fix-folder-imports.js +26 -26
  5. package/lib/cjs/helpers/sharepoint.js +5 -1
  6. package/lib/cjs/helpers/sharepoint.js.map +1 -1
  7. package/lib/cjs/helpers/typecheckers.js +5 -1
  8. package/lib/cjs/helpers/typecheckers.js.map +1 -1
  9. package/lib/cjs/types/libs/msal.types.js +26 -26
  10. package/lib/cjs/utils/sharepoint.rest/list.js +1 -1
  11. package/lib/cjs/utils/sharepoint.rest/list.js.map +1 -1
  12. package/lib/cjs/utils/sharepoint.rest/user.js +11 -11
  13. package/lib/esm/helpers/sharepoint.js +3 -0
  14. package/lib/esm/helpers/sharepoint.js.map +1 -1
  15. package/lib/esm/helpers/typecheckers.js +3 -0
  16. package/lib/esm/helpers/typecheckers.js.map +1 -1
  17. package/lib/esm/types/libs/msal.types.js +26 -26
  18. package/lib/esm/utils/sharepoint.rest/list.js +2 -2
  19. package/lib/esm/utils/sharepoint.rest/list.js.map +1 -1
  20. package/lib/esm/utils/sharepoint.rest/user.js +11 -11
  21. package/lib/types/helpers/sharepoint.d.ts +1 -0
  22. package/lib/types/helpers/typecheckers.d.ts +1 -0
  23. package/package.json +77 -77
  24. package/readme.md +17 -17
  25. package/src/_dependencies.ts +12 -12
  26. package/src/config.ts +17 -17
  27. package/src/helpers/Guid.ts +181 -181
  28. package/src/helpers/base64.ts +173 -173
  29. package/src/helpers/browser.test.js +13 -13
  30. package/src/helpers/browser.ts +1348 -1348
  31. package/src/helpers/browserinfo.ts +292 -292
  32. package/src/helpers/collections.base.test.js +25 -25
  33. package/src/helpers/collections.base.ts +437 -437
  34. package/src/helpers/collections.ts +107 -107
  35. package/src/helpers/color.ts +54 -54
  36. package/src/helpers/cookies.ts +59 -59
  37. package/src/helpers/date.test.js +119 -119
  38. package/src/helpers/date.ts +188 -188
  39. package/src/helpers/debug.ts +186 -186
  40. package/src/helpers/emails.ts +6 -6
  41. package/src/helpers/eval.ts +5 -5
  42. package/src/helpers/file.test.js +50 -50
  43. package/src/helpers/file.ts +58 -58
  44. package/src/helpers/flatted.ts +149 -149
  45. package/src/helpers/functions.ts +16 -16
  46. package/src/helpers/graph/calendar.types.ts +10 -10
  47. package/src/helpers/http.ts +69 -69
  48. package/src/helpers/images.ts +22 -22
  49. package/src/helpers/json.ts +38 -38
  50. package/src/helpers/md5.ts +189 -189
  51. package/src/helpers/objects.test.js +33 -33
  52. package/src/helpers/objects.ts +270 -270
  53. package/src/helpers/promises.test.js +37 -37
  54. package/src/helpers/promises.ts +165 -165
  55. package/src/helpers/random.ts +27 -27
  56. package/src/helpers/scheduler/scheduler.test.js +103 -103
  57. package/src/helpers/scheduler/scheduler.ts +131 -131
  58. package/src/helpers/sharepoint.ts +776 -772
  59. package/src/helpers/strings.test.js +101 -101
  60. package/src/helpers/strings.ts +317 -317
  61. package/src/helpers/typecheckers.test.js +34 -34
  62. package/src/helpers/typecheckers.ts +266 -262
  63. package/src/helpers/url.test.js +43 -43
  64. package/src/helpers/url.ts +207 -207
  65. package/src/helpers/urlhelper.ts +111 -111
  66. package/src/index.ts +6 -6
  67. package/src/types/auth.ts +54 -54
  68. package/src/types/common.types.ts +15 -15
  69. package/src/types/flatted.types.ts +59 -59
  70. package/src/types/globals.types.ts +6 -6
  71. package/src/types/graph/calendar.types.ts +80 -80
  72. package/src/types/knownscript.types.ts +18 -18
  73. package/src/types/libs/datajs.types.ts +28 -28
  74. package/src/types/libs/ics.types.ts +30 -30
  75. package/src/types/libs/msal.types.ts +49 -49
  76. package/src/types/locales.ts +124 -124
  77. package/src/types/localstoragecache.types.ts +8 -8
  78. package/src/types/location.types.ts +27 -27
  79. package/src/types/moment.ts +11 -11
  80. package/src/types/regex.types.ts +16 -16
  81. package/src/types/rest.types.ts +95 -95
  82. package/src/types/sharepoint.types.ts +1465 -1465
  83. package/src/types/sharepoint.utils.types.ts +287 -287
  84. package/src/utils/auth/common.ts +74 -74
  85. package/src/utils/auth/discovery.test.js +12 -12
  86. package/src/utils/auth/discovery.ts +132 -132
  87. package/src/utils/base64.ts +27 -27
  88. package/src/utils/consolelogger.ts +320 -320
  89. package/src/utils/date.ts +35 -35
  90. package/src/utils/emails.ts +24 -24
  91. package/src/utils/knownscript.ts +286 -286
  92. package/src/utils/localstoragecache.ts +441 -441
  93. package/src/utils/rest.ts +501 -501
  94. package/src/utils/script.ts +170 -170
  95. package/src/utils/sharepoint.rest/common.ts +154 -154
  96. package/src/utils/sharepoint.rest/date.ts +62 -62
  97. package/src/utils/sharepoint.rest/file.folder.ts +598 -598
  98. package/src/utils/sharepoint.rest/item.ts +547 -547
  99. package/src/utils/sharepoint.rest/list.ts +1388 -1388
  100. package/src/utils/sharepoint.rest/listutils/GetListItemsByCaml.ts +774 -774
  101. package/src/utils/sharepoint.rest/listutils/GetListItemsById.ts +275 -275
  102. package/src/utils/sharepoint.rest/listutils/common.ts +206 -206
  103. package/src/utils/sharepoint.rest/location.ts +141 -141
  104. package/src/utils/sharepoint.rest/navigation-links.ts +86 -86
  105. package/src/utils/sharepoint.rest/user-search.ts +252 -252
  106. package/src/utils/sharepoint.rest/user.ts +491 -491
  107. package/src/utils/sharepoint.rest/web.ts +1384 -1384
  108. package/src/utils/sod.ts +194 -194
  109. package/lib/cjs/helpers/_dependencies.js +0 -21
  110. package/lib/cjs/helpers/_dependencies.js.map +0 -1
  111. package/lib/cjs/utils/_dependencies.js +0 -24
  112. package/lib/cjs/utils/_dependencies.js.map +0 -1
  113. package/lib/esm/helpers/_dependencies.js +0 -3
  114. package/lib/esm/helpers/_dependencies.js.map +0 -1
  115. package/lib/esm/utils/_dependencies.js +0 -4
  116. package/lib/esm/utils/_dependencies.js.map +0 -1
  117. package/lib/types/helpers/_dependencies.d.ts +0 -2
  118. package/lib/types/utils/_dependencies.d.ts +0 -3
@@ -1,190 +1,190 @@
1
- /** fastest implementation
2
- * from: http://www.myersdaily.org/joseph/javascript/md5-text.html
3
- */
4
-
5
-
6
- /** Get an MD5 hash for a specific string input */
7
- export function md5(s: string): string {
8
- return hex(md51(s));
9
- }
10
-
11
- /* this function is much faster,
12
- so if possible we use it. Some IEs
13
- are the only ones I know of that
14
- need the idiotic second function,
15
- generated by an if clause. */
16
-
17
- var add32 = (a, b) => {
18
- return (a + b) & 0xFFFFFFFF;
19
- };
20
-
21
- function md5cycle(x, k) {
22
- var a = x[0], b = x[1], c = x[2], d = x[3];
23
-
24
- a = ff(a, b, c, d, k[0], 7, -680876936);
25
- d = ff(d, a, b, c, k[1], 12, -389564586);
26
- c = ff(c, d, a, b, k[2], 17, 606105819);
27
- b = ff(b, c, d, a, k[3], 22, -1044525330);
28
- a = ff(a, b, c, d, k[4], 7, -176418897);
29
- d = ff(d, a, b, c, k[5], 12, 1200080426);
30
- c = ff(c, d, a, b, k[6], 17, -1473231341);
31
- b = ff(b, c, d, a, k[7], 22, -45705983);
32
- a = ff(a, b, c, d, k[8], 7, 1770035416);
33
- d = ff(d, a, b, c, k[9], 12, -1958414417);
34
- c = ff(c, d, a, b, k[10], 17, -42063);
35
- b = ff(b, c, d, a, k[11], 22, -1990404162);
36
- a = ff(a, b, c, d, k[12], 7, 1804603682);
37
- d = ff(d, a, b, c, k[13], 12, -40341101);
38
- c = ff(c, d, a, b, k[14], 17, -1502002290);
39
- b = ff(b, c, d, a, k[15], 22, 1236535329);
40
-
41
- a = gg(a, b, c, d, k[1], 5, -165796510);
42
- d = gg(d, a, b, c, k[6], 9, -1069501632);
43
- c = gg(c, d, a, b, k[11], 14, 643717713);
44
- b = gg(b, c, d, a, k[0], 20, -373897302);
45
- a = gg(a, b, c, d, k[5], 5, -701558691);
46
- d = gg(d, a, b, c, k[10], 9, 38016083);
47
- c = gg(c, d, a, b, k[15], 14, -660478335);
48
- b = gg(b, c, d, a, k[4], 20, -405537848);
49
- a = gg(a, b, c, d, k[9], 5, 568446438);
50
- d = gg(d, a, b, c, k[14], 9, -1019803690);
51
- c = gg(c, d, a, b, k[3], 14, -187363961);
52
- b = gg(b, c, d, a, k[8], 20, 1163531501);
53
- a = gg(a, b, c, d, k[13], 5, -1444681467);
54
- d = gg(d, a, b, c, k[2], 9, -51403784);
55
- c = gg(c, d, a, b, k[7], 14, 1735328473);
56
- b = gg(b, c, d, a, k[12], 20, -1926607734);
57
-
58
- a = hh(a, b, c, d, k[5], 4, -378558);
59
- d = hh(d, a, b, c, k[8], 11, -2022574463);
60
- c = hh(c, d, a, b, k[11], 16, 1839030562);
61
- b = hh(b, c, d, a, k[14], 23, -35309556);
62
- a = hh(a, b, c, d, k[1], 4, -1530992060);
63
- d = hh(d, a, b, c, k[4], 11, 1272893353);
64
- c = hh(c, d, a, b, k[7], 16, -155497632);
65
- b = hh(b, c, d, a, k[10], 23, -1094730640);
66
- a = hh(a, b, c, d, k[13], 4, 681279174);
67
- d = hh(d, a, b, c, k[0], 11, -358537222);
68
- c = hh(c, d, a, b, k[3], 16, -722521979);
69
- b = hh(b, c, d, a, k[6], 23, 76029189);
70
- a = hh(a, b, c, d, k[9], 4, -640364487);
71
- d = hh(d, a, b, c, k[12], 11, -421815835);
72
- c = hh(c, d, a, b, k[15], 16, 530742520);
73
- b = hh(b, c, d, a, k[2], 23, -995338651);
74
-
75
- a = ii(a, b, c, d, k[0], 6, -198630844);
76
- d = ii(d, a, b, c, k[7], 10, 1126891415);
77
- c = ii(c, d, a, b, k[14], 15, -1416354905);
78
- b = ii(b, c, d, a, k[5], 21, -57434055);
79
- a = ii(a, b, c, d, k[12], 6, 1700485571);
80
- d = ii(d, a, b, c, k[3], 10, -1894986606);
81
- c = ii(c, d, a, b, k[10], 15, -1051523);
82
- b = ii(b, c, d, a, k[1], 21, -2054922799);
83
- a = ii(a, b, c, d, k[8], 6, 1873313359);
84
- d = ii(d, a, b, c, k[15], 10, -30611744);
85
- c = ii(c, d, a, b, k[6], 15, -1560198380);
86
- b = ii(b, c, d, a, k[13], 21, 1309151649);
87
- a = ii(a, b, c, d, k[4], 6, -145523070);
88
- d = ii(d, a, b, c, k[11], 10, -1120210379);
89
- c = ii(c, d, a, b, k[2], 15, 718787259);
90
- b = ii(b, c, d, a, k[9], 21, -343485551);
91
-
92
- x[0] = add32(a, x[0]);
93
- x[1] = add32(b, x[1]);
94
- x[2] = add32(c, x[2]);
95
- x[3] = add32(d, x[3]);
96
-
97
- }
98
-
99
- function cmn(q, a, b, x, s, t) {
100
- a = add32(add32(a, q), add32(x, t));
101
- return add32((a << s) | (a >>> (32 - s)), b);
102
- }
103
-
104
- function ff(a, b, c, d, x, s, t) {
105
- return cmn((b & c) | ((~b) & d), a, b, x, s, t);
106
- }
107
-
108
- function gg(a, b, c, d, x, s, t) {
109
- return cmn((b & d) | (c & (~d)), a, b, x, s, t);
110
- }
111
-
112
- function hh(a, b, c, d, x, s, t) {
113
- return cmn(b ^ c ^ d, a, b, x, s, t);
114
- }
115
-
116
- function ii(a, b, c, d, x, s, t) {
117
- return cmn(c ^ (b | (~d)), a, b, x, s, t);
118
- }
119
-
120
- function md51(s) {
121
- //var txt = '';
122
- var n = s.length,
123
- state = [1732584193, -271733879, -1732584194, 271733878], i;
124
- for (i = 64; i <= s.length; i += 64) {
125
- md5cycle(state, md5blk(s.substring(i - 64, i)));
126
- }
127
- s = s.substring(i - 64);
128
- var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
129
- for (i = 0; i < s.length; i++)
130
- tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
131
- tail[i >> 2] |= 0x80 << ((i % 4) << 3);
132
- if (i > 55) {
133
- md5cycle(state, tail);
134
- for (i = 0; i < 16; i++) tail[i] = 0;
135
- }
136
- tail[14] = n * 8;
137
- md5cycle(state, tail);
138
- return state;
139
- }
140
-
141
- /* there needs to be support for Unicode here,
142
- * unless we pretend that we can redefine the MD-5
143
- * algorithm for multi-byte characters (perhaps
144
- * by adding every four 16-bit characters and
145
- * shortening the sum to 32 bits). Otherwise
146
- * I suggest performing MD-5 as if every character
147
- * was two bytes--e.g., 0040 0025 = @%--but then
148
- * how will an ordinary MD-5 sum be matched?
149
- * There is no way to standardize text to something
150
- * like UTF-8 before transformation; speed cost is
151
- * utterly prohibitive. The JavaScript standard
152
- * itself needs to look at this: it should start
153
- * providing access to strings as preformed UTF-8
154
- * 8-bit unsigned value arrays.
155
- */
156
- function md5blk(s) { /* I figured global was faster. */
157
- var md5blks = [], i; /* Andy King said do it this way. */
158
- for (i = 0; i < 64; i += 4) {
159
- md5blks[i >> 2] = s.charCodeAt(i)
160
- + (s.charCodeAt(i + 1) << 8)
161
- + (s.charCodeAt(i + 2) << 16)
162
- + (s.charCodeAt(i + 3) << 24);
163
- }
164
- return md5blks;
165
- }
166
-
167
- var hex_chr = '0123456789abcdef'.split('');
168
-
169
- function rhex(n) {
170
- var s = '', j = 0;
171
- for (; j < 4; j++)
172
- s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]
173
- + hex_chr[(n >> (j * 8)) & 0x0F];
174
- return s;
175
- }
176
-
177
- function hex(x) {
178
- for (var i = 0; i < x.length; i++)
179
- x[i] = rhex(x[i]);
180
- return x.join('');
181
- }
182
-
183
- if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
184
- //slower one, for IE only
185
- add32 = (x, y) => {
186
- var lsw = (x & 0xFFFF) + (y & 0xFFFF),
187
- msw = (x >> 16) + (y >> 16) + (lsw >> 16);
188
- return (msw << 16) | (lsw & 0xFFFF);
189
- };
1
+ /** fastest implementation
2
+ * from: http://www.myersdaily.org/joseph/javascript/md5-text.html
3
+ */
4
+
5
+
6
+ /** Get an MD5 hash for a specific string input */
7
+ export function md5(s: string): string {
8
+ return hex(md51(s));
9
+ }
10
+
11
+ /* this function is much faster,
12
+ so if possible we use it. Some IEs
13
+ are the only ones I know of that
14
+ need the idiotic second function,
15
+ generated by an if clause. */
16
+
17
+ var add32 = (a, b) => {
18
+ return (a + b) & 0xFFFFFFFF;
19
+ };
20
+
21
+ function md5cycle(x, k) {
22
+ var a = x[0], b = x[1], c = x[2], d = x[3];
23
+
24
+ a = ff(a, b, c, d, k[0], 7, -680876936);
25
+ d = ff(d, a, b, c, k[1], 12, -389564586);
26
+ c = ff(c, d, a, b, k[2], 17, 606105819);
27
+ b = ff(b, c, d, a, k[3], 22, -1044525330);
28
+ a = ff(a, b, c, d, k[4], 7, -176418897);
29
+ d = ff(d, a, b, c, k[5], 12, 1200080426);
30
+ c = ff(c, d, a, b, k[6], 17, -1473231341);
31
+ b = ff(b, c, d, a, k[7], 22, -45705983);
32
+ a = ff(a, b, c, d, k[8], 7, 1770035416);
33
+ d = ff(d, a, b, c, k[9], 12, -1958414417);
34
+ c = ff(c, d, a, b, k[10], 17, -42063);
35
+ b = ff(b, c, d, a, k[11], 22, -1990404162);
36
+ a = ff(a, b, c, d, k[12], 7, 1804603682);
37
+ d = ff(d, a, b, c, k[13], 12, -40341101);
38
+ c = ff(c, d, a, b, k[14], 17, -1502002290);
39
+ b = ff(b, c, d, a, k[15], 22, 1236535329);
40
+
41
+ a = gg(a, b, c, d, k[1], 5, -165796510);
42
+ d = gg(d, a, b, c, k[6], 9, -1069501632);
43
+ c = gg(c, d, a, b, k[11], 14, 643717713);
44
+ b = gg(b, c, d, a, k[0], 20, -373897302);
45
+ a = gg(a, b, c, d, k[5], 5, -701558691);
46
+ d = gg(d, a, b, c, k[10], 9, 38016083);
47
+ c = gg(c, d, a, b, k[15], 14, -660478335);
48
+ b = gg(b, c, d, a, k[4], 20, -405537848);
49
+ a = gg(a, b, c, d, k[9], 5, 568446438);
50
+ d = gg(d, a, b, c, k[14], 9, -1019803690);
51
+ c = gg(c, d, a, b, k[3], 14, -187363961);
52
+ b = gg(b, c, d, a, k[8], 20, 1163531501);
53
+ a = gg(a, b, c, d, k[13], 5, -1444681467);
54
+ d = gg(d, a, b, c, k[2], 9, -51403784);
55
+ c = gg(c, d, a, b, k[7], 14, 1735328473);
56
+ b = gg(b, c, d, a, k[12], 20, -1926607734);
57
+
58
+ a = hh(a, b, c, d, k[5], 4, -378558);
59
+ d = hh(d, a, b, c, k[8], 11, -2022574463);
60
+ c = hh(c, d, a, b, k[11], 16, 1839030562);
61
+ b = hh(b, c, d, a, k[14], 23, -35309556);
62
+ a = hh(a, b, c, d, k[1], 4, -1530992060);
63
+ d = hh(d, a, b, c, k[4], 11, 1272893353);
64
+ c = hh(c, d, a, b, k[7], 16, -155497632);
65
+ b = hh(b, c, d, a, k[10], 23, -1094730640);
66
+ a = hh(a, b, c, d, k[13], 4, 681279174);
67
+ d = hh(d, a, b, c, k[0], 11, -358537222);
68
+ c = hh(c, d, a, b, k[3], 16, -722521979);
69
+ b = hh(b, c, d, a, k[6], 23, 76029189);
70
+ a = hh(a, b, c, d, k[9], 4, -640364487);
71
+ d = hh(d, a, b, c, k[12], 11, -421815835);
72
+ c = hh(c, d, a, b, k[15], 16, 530742520);
73
+ b = hh(b, c, d, a, k[2], 23, -995338651);
74
+
75
+ a = ii(a, b, c, d, k[0], 6, -198630844);
76
+ d = ii(d, a, b, c, k[7], 10, 1126891415);
77
+ c = ii(c, d, a, b, k[14], 15, -1416354905);
78
+ b = ii(b, c, d, a, k[5], 21, -57434055);
79
+ a = ii(a, b, c, d, k[12], 6, 1700485571);
80
+ d = ii(d, a, b, c, k[3], 10, -1894986606);
81
+ c = ii(c, d, a, b, k[10], 15, -1051523);
82
+ b = ii(b, c, d, a, k[1], 21, -2054922799);
83
+ a = ii(a, b, c, d, k[8], 6, 1873313359);
84
+ d = ii(d, a, b, c, k[15], 10, -30611744);
85
+ c = ii(c, d, a, b, k[6], 15, -1560198380);
86
+ b = ii(b, c, d, a, k[13], 21, 1309151649);
87
+ a = ii(a, b, c, d, k[4], 6, -145523070);
88
+ d = ii(d, a, b, c, k[11], 10, -1120210379);
89
+ c = ii(c, d, a, b, k[2], 15, 718787259);
90
+ b = ii(b, c, d, a, k[9], 21, -343485551);
91
+
92
+ x[0] = add32(a, x[0]);
93
+ x[1] = add32(b, x[1]);
94
+ x[2] = add32(c, x[2]);
95
+ x[3] = add32(d, x[3]);
96
+
97
+ }
98
+
99
+ function cmn(q, a, b, x, s, t) {
100
+ a = add32(add32(a, q), add32(x, t));
101
+ return add32((a << s) | (a >>> (32 - s)), b);
102
+ }
103
+
104
+ function ff(a, b, c, d, x, s, t) {
105
+ return cmn((b & c) | ((~b) & d), a, b, x, s, t);
106
+ }
107
+
108
+ function gg(a, b, c, d, x, s, t) {
109
+ return cmn((b & d) | (c & (~d)), a, b, x, s, t);
110
+ }
111
+
112
+ function hh(a, b, c, d, x, s, t) {
113
+ return cmn(b ^ c ^ d, a, b, x, s, t);
114
+ }
115
+
116
+ function ii(a, b, c, d, x, s, t) {
117
+ return cmn(c ^ (b | (~d)), a, b, x, s, t);
118
+ }
119
+
120
+ function md51(s) {
121
+ //var txt = '';
122
+ var n = s.length,
123
+ state = [1732584193, -271733879, -1732584194, 271733878], i;
124
+ for (i = 64; i <= s.length; i += 64) {
125
+ md5cycle(state, md5blk(s.substring(i - 64, i)));
126
+ }
127
+ s = s.substring(i - 64);
128
+ var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
129
+ for (i = 0; i < s.length; i++)
130
+ tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
131
+ tail[i >> 2] |= 0x80 << ((i % 4) << 3);
132
+ if (i > 55) {
133
+ md5cycle(state, tail);
134
+ for (i = 0; i < 16; i++) tail[i] = 0;
135
+ }
136
+ tail[14] = n * 8;
137
+ md5cycle(state, tail);
138
+ return state;
139
+ }
140
+
141
+ /* there needs to be support for Unicode here,
142
+ * unless we pretend that we can redefine the MD-5
143
+ * algorithm for multi-byte characters (perhaps
144
+ * by adding every four 16-bit characters and
145
+ * shortening the sum to 32 bits). Otherwise
146
+ * I suggest performing MD-5 as if every character
147
+ * was two bytes--e.g., 0040 0025 = @%--but then
148
+ * how will an ordinary MD-5 sum be matched?
149
+ * There is no way to standardize text to something
150
+ * like UTF-8 before transformation; speed cost is
151
+ * utterly prohibitive. The JavaScript standard
152
+ * itself needs to look at this: it should start
153
+ * providing access to strings as preformed UTF-8
154
+ * 8-bit unsigned value arrays.
155
+ */
156
+ function md5blk(s) { /* I figured global was faster. */
157
+ var md5blks = [], i; /* Andy King said do it this way. */
158
+ for (i = 0; i < 64; i += 4) {
159
+ md5blks[i >> 2] = s.charCodeAt(i)
160
+ + (s.charCodeAt(i + 1) << 8)
161
+ + (s.charCodeAt(i + 2) << 16)
162
+ + (s.charCodeAt(i + 3) << 24);
163
+ }
164
+ return md5blks;
165
+ }
166
+
167
+ var hex_chr = '0123456789abcdef'.split('');
168
+
169
+ function rhex(n) {
170
+ var s = '', j = 0;
171
+ for (; j < 4; j++)
172
+ s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]
173
+ + hex_chr[(n >> (j * 8)) & 0x0F];
174
+ return s;
175
+ }
176
+
177
+ function hex(x) {
178
+ for (var i = 0; i < x.length; i++)
179
+ x[i] = rhex(x[i]);
180
+ return x.join('');
181
+ }
182
+
183
+ if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
184
+ //slower one, for IE only
185
+ add32 = (x, y) => {
186
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF),
187
+ msw = (x >> 16) + (y >> 16) + (lsw >> 16);
188
+ return (msw << 16) | (lsw & 0xFFFF);
189
+ };
190
190
  }
@@ -1,34 +1,34 @@
1
- import assert from 'assert/strict';
2
- import test from 'node:test';
3
- import { objectsEqual, primitivesEqual } from './objects';
4
-
5
- test('primitivesEqual', t => {
6
- assert.strictEqual(primitivesEqual(null, ""), false);
7
- assert.strictEqual(primitivesEqual(null, undefined), true);
8
- assert.strictEqual(primitivesEqual(new Date('2022-02-02'), new Date('2022-02-02')), true);
9
- });
10
- test('objectsEqual', async t => {
11
- let now = new Date();
12
- let next = new Date(now.getTime() + 10000);//add a second
13
- assert.strictEqual(objectsEqual(1.42, 1.42), true);
14
- assert.strictEqual(objectsEqual(now, now), true);
15
- assert.strictEqual(objectsEqual(now, next), false);
16
- assert.strictEqual(objectsEqual("hello", "bye"), false);
17
- assert.strictEqual(objectsEqual(() => { console.log(1); }, () => { console.log(1); }), true);
18
- assert.strictEqual(objectsEqual(() => { console.log(1); }, () => { console.log(2); }), false);
19
- assert.strictEqual(objectsEqual(
20
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
21
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } }),
22
- true);
23
- assert.strictEqual(objectsEqual(
24
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
25
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: next } } }),
26
- false);
27
- assert.strictEqual(objectsEqual(
28
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
29
- { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: next } } },
30
- ["time"]),
31
- true);
32
-
33
- assert.strictEqual(objectsEqual(null, ""), false);
1
+ import assert from 'assert/strict';
2
+ import test from 'node:test';
3
+ import { objectsEqual, primitivesEqual } from './objects';
4
+
5
+ test('primitivesEqual', t => {
6
+ assert.strictEqual(primitivesEqual(null, ""), false);
7
+ assert.strictEqual(primitivesEqual(null, undefined), true);
8
+ assert.strictEqual(primitivesEqual(new Date('2022-02-02'), new Date('2022-02-02')), true);
9
+ });
10
+ test('objectsEqual', async t => {
11
+ let now = new Date();
12
+ let next = new Date(now.getTime() + 10000);//add a second
13
+ assert.strictEqual(objectsEqual(1.42, 1.42), true);
14
+ assert.strictEqual(objectsEqual(now, now), true);
15
+ assert.strictEqual(objectsEqual(now, next), false);
16
+ assert.strictEqual(objectsEqual("hello", "bye"), false);
17
+ assert.strictEqual(objectsEqual(() => { console.log(1); }, () => { console.log(1); }), true);
18
+ assert.strictEqual(objectsEqual(() => { console.log(1); }, () => { console.log(2); }), false);
19
+ assert.strictEqual(objectsEqual(
20
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
21
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } }),
22
+ true);
23
+ assert.strictEqual(objectsEqual(
24
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
25
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: next } } }),
26
+ false);
27
+ assert.strictEqual(objectsEqual(
28
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: now } } },
29
+ { id: 1, name: "test", complex: { cid: 4, foo: () => console.log(1) }, nested: { nid: 4, complex: { ncid: 5, time: next } } },
30
+ ["time"]),
31
+ true);
32
+
33
+ assert.strictEqual(objectsEqual(null, ""), false);
34
34
  });