@kwiz/common 1.0.107 → 1.0.109

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 (116) hide show
  1. package/.github/workflows/npm-publish.yml +24 -24
  2. package/.madgerc +2 -2
  3. package/LICENSE +21 -21
  4. package/fix-folder-imports.js +26 -26
  5. package/lib/cjs/helpers/browser.js +9 -5
  6. package/lib/cjs/helpers/browser.js.map +1 -1
  7. package/lib/cjs/types/libs/msal.types.js +26 -26
  8. package/lib/cjs/types/libs/msal.types.js.map +1 -1
  9. package/lib/cjs/types/sharepoint.utils.types.js +9 -1
  10. package/lib/cjs/types/sharepoint.utils.types.js.map +1 -1
  11. package/lib/cjs/utils/sharepoint.rest/file.folder.js +4 -4
  12. package/lib/cjs/utils/sharepoint.rest/file.folder.js.map +1 -1
  13. package/lib/cjs/utils/sharepoint.rest/list.js +60 -1
  14. package/lib/cjs/utils/sharepoint.rest/list.js.map +1 -1
  15. package/lib/cjs/utils/sharepoint.rest/user.js +11 -11
  16. package/lib/esm/helpers/browser.js +9 -5
  17. package/lib/esm/helpers/browser.js.map +1 -1
  18. package/lib/esm/types/libs/msal.types.js +26 -26
  19. package/lib/esm/types/libs/msal.types.js.map +1 -1
  20. package/lib/esm/types/sharepoint.utils.types.js +8 -0
  21. package/lib/esm/types/sharepoint.utils.types.js.map +1 -1
  22. package/lib/esm/utils/sharepoint.rest/file.folder.js +4 -4
  23. package/lib/esm/utils/sharepoint.rest/file.folder.js.map +1 -1
  24. package/lib/esm/utils/sharepoint.rest/list.js +57 -0
  25. package/lib/esm/utils/sharepoint.rest/list.js.map +1 -1
  26. package/lib/esm/utils/sharepoint.rest/user.js +11 -11
  27. package/lib/types/types/libs/msal.types.d.ts +8 -3
  28. package/lib/types/types/sharepoint.utils.types.d.ts +17 -0
  29. package/lib/types/utils/sharepoint.rest/list.d.ts +7 -1
  30. package/package.json +81 -81
  31. package/readme.md +17 -17
  32. package/src/_dependencies.ts +12 -12
  33. package/src/config.ts +17 -17
  34. package/src/helpers/Guid.ts +181 -181
  35. package/src/helpers/base64.ts +173 -173
  36. package/src/helpers/browser.test.js +13 -13
  37. package/src/helpers/browser.ts +1448 -1448
  38. package/src/helpers/browserinfo.ts +292 -292
  39. package/src/helpers/collections.base.test.js +25 -25
  40. package/src/helpers/collections.base.ts +437 -437
  41. package/src/helpers/collections.ts +107 -107
  42. package/src/helpers/color.ts +54 -54
  43. package/src/helpers/cookies.ts +59 -59
  44. package/src/helpers/date.test.js +119 -119
  45. package/src/helpers/date.ts +188 -188
  46. package/src/helpers/debug.ts +186 -186
  47. package/src/helpers/diagrams.ts +43 -43
  48. package/src/helpers/emails.ts +6 -6
  49. package/src/helpers/eval.ts +5 -5
  50. package/src/helpers/file.test.js +50 -50
  51. package/src/helpers/file.ts +63 -63
  52. package/src/helpers/flatted.ts +149 -149
  53. package/src/helpers/functions.ts +16 -16
  54. package/src/helpers/graph/calendar.types.ts +10 -10
  55. package/src/helpers/http.ts +69 -69
  56. package/src/helpers/images.ts +22 -22
  57. package/src/helpers/json.ts +44 -44
  58. package/src/helpers/md5.ts +189 -189
  59. package/src/helpers/objects.test.js +33 -33
  60. package/src/helpers/objects.ts +274 -274
  61. package/src/helpers/promises.test.js +37 -37
  62. package/src/helpers/promises.ts +165 -165
  63. package/src/helpers/random.ts +27 -27
  64. package/src/helpers/scheduler/scheduler.test.js +103 -103
  65. package/src/helpers/scheduler/scheduler.ts +131 -131
  66. package/src/helpers/sharepoint.ts +785 -785
  67. package/src/helpers/strings.test.js +122 -122
  68. package/src/helpers/strings.ts +337 -337
  69. package/src/helpers/typecheckers.test.js +34 -34
  70. package/src/helpers/typecheckers.ts +266 -266
  71. package/src/helpers/url.test.js +43 -43
  72. package/src/helpers/url.ts +207 -207
  73. package/src/helpers/urlhelper.ts +111 -111
  74. package/src/index.ts +6 -6
  75. package/src/types/auth.ts +54 -54
  76. package/src/types/common.types.ts +15 -15
  77. package/src/types/flatted.types.ts +59 -59
  78. package/src/types/globals.types.ts +6 -6
  79. package/src/types/graph/calendar.types.ts +80 -80
  80. package/src/types/knownscript.types.ts +18 -18
  81. package/src/types/libs/datajs.types.ts +28 -28
  82. package/src/types/libs/ics.types.ts +30 -30
  83. package/src/types/libs/msal.types.ts +57 -49
  84. package/src/types/locales.ts +125 -125
  85. package/src/types/localstoragecache.types.ts +8 -8
  86. package/src/types/location.types.ts +27 -27
  87. package/src/types/moment.ts +11 -11
  88. package/src/types/regex.types.ts +16 -16
  89. package/src/types/rest.types.ts +95 -95
  90. package/src/types/sharepoint.types.ts +1466 -1466
  91. package/src/types/sharepoint.utils.types.ts +306 -287
  92. package/src/utils/auth/common.ts +74 -74
  93. package/src/utils/auth/discovery.test.js +12 -12
  94. package/src/utils/auth/discovery.ts +132 -132
  95. package/src/utils/base64.ts +27 -27
  96. package/src/utils/consolelogger.ts +320 -320
  97. package/src/utils/date.ts +172 -172
  98. package/src/utils/emails.ts +24 -24
  99. package/src/utils/knownscript.ts +286 -286
  100. package/src/utils/localstoragecache.ts +446 -446
  101. package/src/utils/rest.ts +501 -501
  102. package/src/utils/script.ts +170 -170
  103. package/src/utils/sharepoint.rest/common.ts +154 -154
  104. package/src/utils/sharepoint.rest/date.ts +62 -62
  105. package/src/utils/sharepoint.rest/file.folder.ts +598 -598
  106. package/src/utils/sharepoint.rest/item.ts +547 -547
  107. package/src/utils/sharepoint.rest/list.ts +1548 -1482
  108. package/src/utils/sharepoint.rest/listutils/GetListItemsByCaml.ts +774 -774
  109. package/src/utils/sharepoint.rest/listutils/GetListItemsById.ts +275 -275
  110. package/src/utils/sharepoint.rest/listutils/common.ts +206 -206
  111. package/src/utils/sharepoint.rest/location.ts +141 -141
  112. package/src/utils/sharepoint.rest/navigation-links.ts +86 -86
  113. package/src/utils/sharepoint.rest/user-search.ts +252 -252
  114. package/src/utils/sharepoint.rest/user.ts +491 -491
  115. package/src/utils/sharepoint.rest/web.ts +1384 -1384
  116. package/src/utils/sod.ts +194 -194
@@ -1,23 +1,23 @@
1
- const prefix = "https://apps.kwizcom.com/products/common/images/";
2
-
3
- export const LOGO_ANIM_SMALL = `${prefix}logo/anim-small.gif`;
4
- export const LOGO_ANIM = `${prefix}logo/anim.gif`;
5
-
6
- export const LOGO_BLACK_HORIZONTAL = `${prefix}logo/black/horizontal.png`;
7
- export const LOGO_BLACK_SQUARE = `${prefix}logo/black/square.png`;
8
- export const LOGO_BLACK_VERTICAL = `${prefix}logo/black/vertical.png`;
9
-
10
- export const LOGO_BLUE_HORIZONTAL = `${prefix}logo/blue/horizontal.png`;
11
- export const LOGO_BLUE_SQUARE = `${prefix}logo/blue/square.png`;
12
- export const LOGO_BLUE_VERTICAL = `${prefix}logo/blue/vertical.png`;
13
-
14
- export const LOGO_CYAN_HORIZONTAL = `${prefix}logo/cyan/horizontal.png`;
15
- export const LOGO_CYAN_VERTICAL = `${prefix}logo/cyan/vertical.png`;
16
-
17
- export const LOGO_GRAD_HORIZONTAL = `${prefix}logo/grad/horizontal.png`;
18
- export const LOGO_GRAD_SQUARE = `${prefix}logo/grad/square.png`;
19
- export const LOGO_GRAD_VERTICAL = `${prefix}logo/grad/vertical.png`;
20
-
21
- export const LOGO_WHITE_HORIZONTAL = `${prefix}logo/white/horizontal.png`;
22
- export const LOGO_WHITE_SQUARE = `${prefix}logo/white/square.png`;
1
+ const prefix = "https://apps.kwizcom.com/products/common/images/";
2
+
3
+ export const LOGO_ANIM_SMALL = `${prefix}logo/anim-small.gif`;
4
+ export const LOGO_ANIM = `${prefix}logo/anim.gif`;
5
+
6
+ export const LOGO_BLACK_HORIZONTAL = `${prefix}logo/black/horizontal.png`;
7
+ export const LOGO_BLACK_SQUARE = `${prefix}logo/black/square.png`;
8
+ export const LOGO_BLACK_VERTICAL = `${prefix}logo/black/vertical.png`;
9
+
10
+ export const LOGO_BLUE_HORIZONTAL = `${prefix}logo/blue/horizontal.png`;
11
+ export const LOGO_BLUE_SQUARE = `${prefix}logo/blue/square.png`;
12
+ export const LOGO_BLUE_VERTICAL = `${prefix}logo/blue/vertical.png`;
13
+
14
+ export const LOGO_CYAN_HORIZONTAL = `${prefix}logo/cyan/horizontal.png`;
15
+ export const LOGO_CYAN_VERTICAL = `${prefix}logo/cyan/vertical.png`;
16
+
17
+ export const LOGO_GRAD_HORIZONTAL = `${prefix}logo/grad/horizontal.png`;
18
+ export const LOGO_GRAD_SQUARE = `${prefix}logo/grad/square.png`;
19
+ export const LOGO_GRAD_VERTICAL = `${prefix}logo/grad/vertical.png`;
20
+
21
+ export const LOGO_WHITE_HORIZONTAL = `${prefix}logo/white/horizontal.png`;
22
+ export const LOGO_WHITE_SQUARE = `${prefix}logo/white/square.png`;
23
23
  export const LOGO_WHITE_VERTICAL = `${prefix}logo/white/vertical.png`;
@@ -1,45 +1,45 @@
1
- import { eval2 } from "./eval";
2
- import { isFunction, isNullOrEmptyString } from "./typecheckers";
3
-
4
- export function jsonParse<T = any>(str: string) {
5
- if (isNullOrEmptyString(str)) {
6
- return null;
7
- }
8
-
9
- if (JSON) {
10
- if (isFunction(JSON.parse)) {
11
- try {
12
- var v = JSON.parse(str);
13
- return v as T;
14
- } catch (ex) {
15
- return null;
16
- }
17
- }
18
- }
19
- try {
20
- var v2 = eval2("(" + str + ")");
21
-
22
- return v2 as T;
23
- } catch (ex1) {
24
- return null;
25
- }
26
- }
27
-
28
- /** stringify JSON object, but also sorts properties alphabetically */
29
- export function jsonStringify(obj: any, space?: number): string {
30
- if (isNullOrEmptyString(obj)) return "";
31
- var allKeys = [];
32
- JSON.stringify(obj, (key, value) => {
33
- if (!allKeys.includes(key))
34
- allKeys.push(key);
35
- return value;
36
- });
37
- allKeys.sort();
38
- return JSON.stringify(obj, allKeys, space);
39
- }
40
- /** stringify json object without quotes on property names */
41
- export function jsonStringifyNoQuotes(obj: any) {
42
- return jsonStringify(obj, 2).replace(/^[\t ]*"[^:\n\r]+(?<!\\)":/gm, function (match) {
43
- return match.replace(/"/g, "");
44
- });
1
+ import { eval2 } from "./eval";
2
+ import { isFunction, isNullOrEmptyString } from "./typecheckers";
3
+
4
+ export function jsonParse<T = any>(str: string) {
5
+ if (isNullOrEmptyString(str)) {
6
+ return null;
7
+ }
8
+
9
+ if (JSON) {
10
+ if (isFunction(JSON.parse)) {
11
+ try {
12
+ var v = JSON.parse(str);
13
+ return v as T;
14
+ } catch (ex) {
15
+ return null;
16
+ }
17
+ }
18
+ }
19
+ try {
20
+ var v2 = eval2("(" + str + ")");
21
+
22
+ return v2 as T;
23
+ } catch (ex1) {
24
+ return null;
25
+ }
26
+ }
27
+
28
+ /** stringify JSON object, but also sorts properties alphabetically */
29
+ export function jsonStringify(obj: any, space?: number): string {
30
+ if (isNullOrEmptyString(obj)) return "";
31
+ var allKeys = [];
32
+ JSON.stringify(obj, (key, value) => {
33
+ if (!allKeys.includes(key))
34
+ allKeys.push(key);
35
+ return value;
36
+ });
37
+ allKeys.sort();
38
+ return JSON.stringify(obj, allKeys, space);
39
+ }
40
+ /** stringify json object without quotes on property names */
41
+ export function jsonStringifyNoQuotes(obj: any) {
42
+ return jsonStringify(obj, 2).replace(/^[\t ]*"[^:\n\r]+(?<!\\)":/gm, function (match) {
43
+ return match.replace(/"/g, "");
44
+ });
45
45
  }
@@ -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
  });