@lowentry/utils 2.0.3 → 2.0.4

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 (183) hide show
  1. package/dist/LeTypes.d.ts.map +1 -0
  2. package/dist/LeTypes.js.map +1 -0
  3. package/dist/LeUtils.d.ts.map +1 -0
  4. package/dist/LeUtils.js.map +1 -0
  5. package/dist/classes/EventEmitter.d.ts.map +1 -0
  6. package/dist/classes/EventEmitter.js.map +1 -0
  7. package/dist/classes/LinkedList.d.ts.map +1 -0
  8. package/dist/classes/LinkedList.js.map +1 -0
  9. package/dist/classes/SerializableMap.d.ts.map +1 -0
  10. package/dist/classes/SerializableMap.js.map +1 -0
  11. package/dist/classes/TreeSet.d.ts.map +1 -0
  12. package/dist/classes/TreeSet.js.map +1 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js.map +1 -0
  15. package/package.json +2 -2
  16. package/dist/src/LeTypes.d.ts.map +0 -1
  17. package/dist/src/LeTypes.js.map +0 -1
  18. package/dist/src/LeUtils.d.ts.map +0 -1
  19. package/dist/src/LeUtils.js.map +0 -1
  20. package/dist/src/classes/EventEmitter.d.ts.map +0 -1
  21. package/dist/src/classes/EventEmitter.js.map +0 -1
  22. package/dist/src/classes/LinkedList.d.ts.map +0 -1
  23. package/dist/src/classes/LinkedList.js.map +0 -1
  24. package/dist/src/classes/SerializableMap.d.ts.map +0 -1
  25. package/dist/src/classes/SerializableMap.js.map +0 -1
  26. package/dist/src/classes/TreeSet.d.ts.map +0 -1
  27. package/dist/src/classes/TreeSet.js.map +0 -1
  28. package/dist/src/index.d.ts.map +0 -1
  29. package/dist/src/index.js.map +0 -1
  30. package/dist/tests/CustomClasses.test.d.ts +0 -2
  31. package/dist/tests/CustomClasses.test.d.ts.map +0 -1
  32. package/dist/tests/CustomClasses.test.js +0 -138
  33. package/dist/tests/CustomClasses.test.js.map +0 -1
  34. package/dist/tests/LeClasses.EventEmitter.test.d.ts +0 -2
  35. package/dist/tests/LeClasses.EventEmitter.test.d.ts.map +0 -1
  36. package/dist/tests/LeClasses.EventEmitter.test.js +0 -39
  37. package/dist/tests/LeClasses.EventEmitter.test.js.map +0 -1
  38. package/dist/tests/LeClasses.LinkedList.test.d.ts +0 -2
  39. package/dist/tests/LeClasses.LinkedList.test.d.ts.map +0 -1
  40. package/dist/tests/LeClasses.LinkedList.test.js +0 -36
  41. package/dist/tests/LeClasses.LinkedList.test.js.map +0 -1
  42. package/dist/tests/LeClasses.SerializableMap.test.d.ts +0 -2
  43. package/dist/tests/LeClasses.SerializableMap.test.d.ts.map +0 -1
  44. package/dist/tests/LeClasses.SerializableMap.test.js +0 -25
  45. package/dist/tests/LeClasses.SerializableMap.test.js.map +0 -1
  46. package/dist/tests/LeClasses.TreeSet.test.d.ts +0 -2
  47. package/dist/tests/LeClasses.TreeSet.test.d.ts.map +0 -1
  48. package/dist/tests/LeClasses.TreeSet.test.js +0 -28
  49. package/dist/tests/LeClasses.TreeSet.test.js.map +0 -1
  50. package/dist/tests/LeTypes.ARRAY.test.d.ts +0 -2
  51. package/dist/tests/LeTypes.ARRAY.test.d.ts.map +0 -1
  52. package/dist/tests/LeTypes.ARRAY.test.js +0 -103
  53. package/dist/tests/LeTypes.ARRAY.test.js.map +0 -1
  54. package/dist/tests/LeTypes.BOOL.test.d.ts +0 -2
  55. package/dist/tests/LeTypes.BOOL.test.d.ts.map +0 -1
  56. package/dist/tests/LeTypes.BOOL.test.js +0 -138
  57. package/dist/tests/LeTypes.BOOL.test.js.map +0 -1
  58. package/dist/tests/LeTypes.FLOAT.test.d.ts +0 -2
  59. package/dist/tests/LeTypes.FLOAT.test.d.ts.map +0 -1
  60. package/dist/tests/LeTypes.FLOAT.test.js +0 -120
  61. package/dist/tests/LeTypes.FLOAT.test.js.map +0 -1
  62. package/dist/tests/LeTypes.FLOAT_ANY.test.d.ts +0 -2
  63. package/dist/tests/LeTypes.FLOAT_ANY.test.d.ts.map +0 -1
  64. package/dist/tests/LeTypes.FLOAT_ANY.test.js +0 -47
  65. package/dist/tests/LeTypes.FLOAT_ANY.test.js.map +0 -1
  66. package/dist/tests/LeTypes.INT.test.d.ts +0 -2
  67. package/dist/tests/LeTypes.INT.test.d.ts.map +0 -1
  68. package/dist/tests/LeTypes.INT.test.js +0 -80
  69. package/dist/tests/LeTypes.INT.test.js.map +0 -1
  70. package/dist/tests/LeTypes.INT_ANY.test.d.ts +0 -2
  71. package/dist/tests/LeTypes.INT_ANY.test.d.ts.map +0 -1
  72. package/dist/tests/LeTypes.INT_ANY.test.js +0 -37
  73. package/dist/tests/LeTypes.INT_ANY.test.js.map +0 -1
  74. package/dist/tests/LeTypes.ISSET.test.d.ts +0 -2
  75. package/dist/tests/LeTypes.ISSET.test.d.ts.map +0 -1
  76. package/dist/tests/LeTypes.ISSET.test.js +0 -113
  77. package/dist/tests/LeTypes.ISSET.test.js.map +0 -1
  78. package/dist/tests/LeTypes.IS_ARRAY.test.d.ts +0 -2
  79. package/dist/tests/LeTypes.IS_ARRAY.test.d.ts.map +0 -1
  80. package/dist/tests/LeTypes.IS_ARRAY.test.js +0 -81
  81. package/dist/tests/LeTypes.IS_ARRAY.test.js.map +0 -1
  82. package/dist/tests/LeTypes.IS_OBJECT.test.d.ts +0 -2
  83. package/dist/tests/LeTypes.IS_OBJECT.test.d.ts.map +0 -1
  84. package/dist/tests/LeTypes.IS_OBJECT.test.js +0 -98
  85. package/dist/tests/LeTypes.IS_OBJECT.test.js.map +0 -1
  86. package/dist/tests/LeTypes.LAX.test.d.ts +0 -2
  87. package/dist/tests/LeTypes.LAX.test.d.ts.map +0 -1
  88. package/dist/tests/LeTypes.LAX.test.js +0 -89
  89. package/dist/tests/LeTypes.LAX.test.js.map +0 -1
  90. package/dist/tests/LeTypes.OBJECT.test.d.ts +0 -2
  91. package/dist/tests/LeTypes.OBJECT.test.d.ts.map +0 -1
  92. package/dist/tests/LeTypes.OBJECT.test.js +0 -81
  93. package/dist/tests/LeTypes.OBJECT.test.js.map +0 -1
  94. package/dist/tests/LeTypes.STRING.test.d.ts +0 -2
  95. package/dist/tests/LeTypes.STRING.test.d.ts.map +0 -1
  96. package/dist/tests/LeTypes.STRING.test.js +0 -204
  97. package/dist/tests/LeTypes.STRING.test.js.map +0 -1
  98. package/dist/tests/LeTypes.STRING_ANY.test.d.ts +0 -2
  99. package/dist/tests/LeTypes.STRING_ANY.test.d.ts.map +0 -1
  100. package/dist/tests/LeTypes.STRING_ANY.test.js +0 -58
  101. package/dist/tests/LeTypes.STRING_ANY.test.js.map +0 -1
  102. package/dist/tests/LeUtils.clone.test.d.ts +0 -2
  103. package/dist/tests/LeUtils.clone.test.d.ts.map +0 -1
  104. package/dist/tests/LeUtils.clone.test.js +0 -180
  105. package/dist/tests/LeUtils.clone.test.js.map +0 -1
  106. package/dist/tests/LeUtils.collections.test.d.ts +0 -2
  107. package/dist/tests/LeUtils.collections.test.d.ts.map +0 -1
  108. package/dist/tests/LeUtils.collections.test.js +0 -149
  109. package/dist/tests/LeUtils.collections.test.js.map +0 -1
  110. package/dist/tests/LeUtils.comparison.test.d.ts +0 -2
  111. package/dist/tests/LeUtils.comparison.test.d.ts.map +0 -1
  112. package/dist/tests/LeUtils.comparison.test.js +0 -125
  113. package/dist/tests/LeUtils.comparison.test.js.map +0 -1
  114. package/dist/tests/LeUtils.contains.test.d.ts +0 -2
  115. package/dist/tests/LeUtils.contains.test.d.ts.map +0 -1
  116. package/dist/tests/LeUtils.contains.test.js +0 -52
  117. package/dist/tests/LeUtils.contains.test.js.map +0 -1
  118. package/dist/tests/LeUtils.each.test.d.ts +0 -2
  119. package/dist/tests/LeUtils.each.test.d.ts.map +0 -1
  120. package/dist/tests/LeUtils.each.test.js +0 -267
  121. package/dist/tests/LeUtils.each.test.js.map +0 -1
  122. package/dist/tests/LeUtils.eachAsync.test.d.ts +0 -2
  123. package/dist/tests/LeUtils.eachAsync.test.d.ts.map +0 -1
  124. package/dist/tests/LeUtils.eachAsync.test.js +0 -80
  125. package/dist/tests/LeUtils.eachAsync.test.js.map +0 -1
  126. package/dist/tests/LeUtils.encoding.test.d.ts +0 -2
  127. package/dist/tests/LeUtils.encoding.test.d.ts.map +0 -1
  128. package/dist/tests/LeUtils.encoding.test.js +0 -45
  129. package/dist/tests/LeUtils.encoding.test.js.map +0 -1
  130. package/dist/tests/LeUtils.equals.test.d.ts +0 -2
  131. package/dist/tests/LeUtils.equals.test.d.ts.map +0 -1
  132. package/dist/tests/LeUtils.equals.test.js +0 -328
  133. package/dist/tests/LeUtils.equals.test.js.map +0 -1
  134. package/dist/tests/LeUtils.flatten.test.d.ts +0 -2
  135. package/dist/tests/LeUtils.flatten.test.d.ts.map +0 -1
  136. package/dist/tests/LeUtils.flatten.test.js +0 -30
  137. package/dist/tests/LeUtils.flatten.test.js.map +0 -1
  138. package/dist/tests/LeUtils.misc.test.d.ts +0 -2
  139. package/dist/tests/LeUtils.misc.test.d.ts.map +0 -1
  140. package/dist/tests/LeUtils.misc.test.js +0 -50
  141. package/dist/tests/LeUtils.misc.test.js.map +0 -1
  142. package/dist/tests/LeUtils.misc2.test.d.ts +0 -2
  143. package/dist/tests/LeUtils.misc2.test.d.ts.map +0 -1
  144. package/dist/tests/LeUtils.misc2.test.js +0 -58
  145. package/dist/tests/LeUtils.misc2.test.js.map +0 -1
  146. package/dist/tests/LeUtils.newlyAdded.test.d.ts +0 -2
  147. package/dist/tests/LeUtils.newlyAdded.test.d.ts.map +0 -1
  148. package/dist/tests/LeUtils.newlyAdded.test.js +0 -121
  149. package/dist/tests/LeUtils.newlyAdded.test.js.map +0 -1
  150. package/dist/tests/LeUtils.strings.test.d.ts +0 -2
  151. package/dist/tests/LeUtils.strings.test.d.ts.map +0 -1
  152. package/dist/tests/LeUtils.strings.test.js +0 -125
  153. package/dist/tests/LeUtils.strings.test.js.map +0 -1
  154. package/dist/tests/LeUtils.timing.test.d.ts +0 -2
  155. package/dist/tests/LeUtils.timing.test.d.ts.map +0 -1
  156. package/dist/tests/LeUtils.timing.test.js +0 -72
  157. package/dist/tests/LeUtils.timing.test.js.map +0 -1
  158. package/dist/tests/LeUtils.transactional.test.d.ts +0 -2
  159. package/dist/tests/LeUtils.transactional.test.d.ts.map +0 -1
  160. package/dist/tests/LeUtils.transactional.test.js +0 -39
  161. package/dist/tests/LeUtils.transactional.test.js.map +0 -1
  162. package/dist/tests/setup.d.ts +0 -2
  163. package/dist/tests/setup.d.ts.map +0 -1
  164. package/dist/tests/setup.js +0 -6
  165. package/dist/tests/setup.js.map +0 -1
  166. package/dist/vitest.config.d.ts +0 -3
  167. package/dist/vitest.config.d.ts.map +0 -1
  168. package/dist/vitest.config.js +0 -21
  169. package/dist/vitest.config.js.map +0 -1
  170. /package/dist/{src/LeTypes.d.ts → LeTypes.d.ts} +0 -0
  171. /package/dist/{src/LeTypes.js → LeTypes.js} +0 -0
  172. /package/dist/{src/LeUtils.d.ts → LeUtils.d.ts} +0 -0
  173. /package/dist/{src/LeUtils.js → LeUtils.js} +0 -0
  174. /package/dist/{src/classes → classes}/EventEmitter.d.ts +0 -0
  175. /package/dist/{src/classes → classes}/EventEmitter.js +0 -0
  176. /package/dist/{src/classes → classes}/LinkedList.d.ts +0 -0
  177. /package/dist/{src/classes → classes}/LinkedList.js +0 -0
  178. /package/dist/{src/classes → classes}/SerializableMap.d.ts +0 -0
  179. /package/dist/{src/classes → classes}/SerializableMap.js +0 -0
  180. /package/dist/{src/classes → classes}/TreeSet.d.ts +0 -0
  181. /package/dist/{src/classes → classes}/TreeSet.js +0 -0
  182. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  183. /package/dist/{src/index.js → index.js} +0 -0
@@ -1,45 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { utf8ToBase64, base64ToUtf8, base64ToHex, hexToBase64, base64ToBytes, bytesToBase64, } from '../src/index';
3
- describe('Base64 & UTF-8 Encoding', () => {
4
- it('encodes and decodes UTF-8 strings correctly', () => {
5
- const original = 'Hello World! 🌍';
6
- const base64 = utf8ToBase64(original);
7
- expect(base64).toBe('SGVsbG8gV29ybGQhIPCfjI0=');
8
- expect(base64ToUtf8(base64)).toBe(original);
9
- });
10
- it('handles special characters in UTF-8', () => {
11
- const original = '✓ à la mode';
12
- const base64 = utf8ToBase64(original);
13
- expect(base64ToUtf8(base64)).toBe(original);
14
- });
15
- });
16
- describe('Base64 & Hex Conversion', () => {
17
- it('converts between Base64 and Hex', () => {
18
- const hex = '48656c6c6f'; // "Hello"
19
- const base64 = hexToBase64(hex);
20
- expect(base64).toBe('SGVsbG8=');
21
- expect(base64ToHex(base64)).toBe(hex);
22
- });
23
- it('handles malformed hex strings by stripping non-hex chars', () => {
24
- const hex = '48-65-6c-6c-6f';
25
- expect(hexToBase64(hex)).toBe('SGVsbG8=');
26
- });
27
- it('throws error for invalid hex string length (odd length)', () => {
28
- // Legacy behavior: match(/\w{2}/g) will ignore the last odd char
29
- // So '486' becomes '48'
30
- expect(hexToBase64('486')).toBe('SA=='); // 'SA==' is Base64 for 0x48 ('H')
31
- });
32
- });
33
- describe('Base64 & Bytes (Uint8Array)', () => {
34
- it('converts between Base64 and Uint8Array', () => {
35
- const bytes = new Uint8Array([72, 101, 108, 108, 111]); // "Hello"
36
- const base64 = bytesToBase64(bytes);
37
- expect(base64).toBe('SGVsbG8=');
38
- expect(base64ToBytes(base64)).toEqual(bytes);
39
- });
40
- it('handles ArrayBuffer input for bytesToBase64', () => {
41
- const buffer = new Uint8Array([72, 101, 108, 108, 111]).buffer;
42
- expect(bytesToBase64(buffer)).toBe('SGVsbG8=');
43
- });
44
- });
45
- //# sourceMappingURL=LeUtils.encoding.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.encoding.test.js","sourceRoot":"","sources":["../../tests/LeUtils.encoding.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,GACb,MAAM,cAAc,CAAC;AAEtB,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IAExC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAEtD,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAE9C,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IAExC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAE1C,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,UAAU;QACpC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAEnE,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAElE,iEAAiE;QACjE,wBAAwB;QACxB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kCAAkC;IAC5E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAE5C,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAEjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU;QAClE,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAEtD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/D,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LeUtils.equals.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.equals.test.d.ts","sourceRoot":"","sources":["../../tests/LeUtils.equals.test.ts"],"names":[],"mappings":""}
@@ -1,328 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { equals } from '../src/index';
3
- /**
4
- * equals() - Comprehensive Baseline Tests
5
- * Most complex function in the library - handles all JavaScript types
6
- */
7
- describe('equals() - Primitives (Branch 1: a === b)', () => {
8
- it('returns true for identical numbers', () => {
9
- expect(equals(5, 5)).toBe(true);
10
- expect(equals(0, 0)).toBe(true);
11
- expect(equals(-123.45, -123.45)).toBe(true);
12
- });
13
- it('returns false for different numbers', () => {
14
- expect(equals(5, 6)).toBe(false);
15
- });
16
- it('returns true for identical strings', () => {
17
- expect(equals('hello', 'hello')).toBe(true);
18
- });
19
- it('returns false for different strings', () => {
20
- expect(equals('hello', 'world')).toBe(false);
21
- });
22
- it('returns true for identical booleans', () => {
23
- expect(equals(true, true)).toBe(true);
24
- expect(equals(false, false)).toBe(true);
25
- });
26
- it('returns true for null === null', () => {
27
- expect(equals(null, null)).toBe(true);
28
- });
29
- it('returns true for undefined === undefined', () => {
30
- expect(equals(undefined, undefined)).toBe(true);
31
- });
32
- it('returns false for null vs undefined', () => {
33
- expect(equals(null, undefined)).toBe(false);
34
- });
35
- });
36
- describe('equals() - Arrays (Branch 2b)', () => {
37
- it('returns true for identical arrays', () => {
38
- expect(equals([1, 2, 3], [1, 2, 3])).toBe(true);
39
- });
40
- it('returns false for different length', () => {
41
- expect(equals([1, 2], [1, 2, 3])).toBe(false);
42
- });
43
- it('returns false for different values', () => {
44
- expect(equals([1, 2, 3], [1, 2, 4])).toBe(false);
45
- });
46
- it('returns true for empty arrays', () => {
47
- expect(equals([], [])).toBe(true);
48
- });
49
- it('recursively compares nested arrays', () => {
50
- expect(equals([[1, 2], [3, 4]], [[1, 2], [3, 4]])).toBe(true);
51
- expect(equals([[1, 2], [3, 4]], [[1, 2], [3, 5]])).toBe(false);
52
- });
53
- it('handles sparse arrays', () => {
54
- expect(equals([1, , 3], [1, , 3])).toBe(true);
55
- expect(equals([1, , 3], [1, undefined, 3])).toBe(true);
56
- });
57
- it('returns false for array vs object', () => {
58
- expect(equals([1, 2], { 0: 1, 1: 2 })).toBe(false);
59
- });
60
- });
61
- describe('equals() - Maps (Branch 2c)', () => {
62
- it('returns true for identical Maps', () => {
63
- const map1 = new Map([['a', 1], ['b', 2]]);
64
- const map2 = new Map([['a', 1], ['b', 2]]);
65
- expect(equals(map1, map2)).toBe(true);
66
- });
67
- it('returns false for different sizes', () => {
68
- const map1 = new Map([['a', 1]]);
69
- const map2 = new Map([['a', 1], ['b', 2]]);
70
- expect(equals(map1, map2)).toBe(false);
71
- });
72
- it('returns false for different keys', () => {
73
- const map1 = new Map([['a', 1]]);
74
- const map2 = new Map([['b', 1]]);
75
- expect(equals(map1, map2)).toBe(false);
76
- });
77
- it('returns false for different values', () => {
78
- const map1 = new Map([['a', 1]]);
79
- const map2 = new Map([['a', 2]]);
80
- expect(equals(map1, map2)).toBe(false);
81
- });
82
- it('returns true for empty Maps', () => {
83
- expect(equals(new Map(), new Map())).toBe(true);
84
- });
85
- it('recursively compares Map values', () => {
86
- const map1 = new Map([['key', { nested: [1, 2] }]]);
87
- const map2 = new Map([['key', { nested: [1, 2] }]]);
88
- expect(equals(map1, map2)).toBe(true);
89
- });
90
- });
91
- describe('equals() - Sets (Branch 2d)', () => {
92
- it('returns true for identical Sets', () => {
93
- const set1 = new Set([1, 2, 3]);
94
- const set2 = new Set([1, 2, 3]);
95
- expect(equals(set1, set2)).toBe(true);
96
- });
97
- it('returns false for different sizes', () => {
98
- const set1 = new Set([1, 2]);
99
- const set2 = new Set([1, 2, 3]);
100
- expect(equals(set1, set2)).toBe(false);
101
- });
102
- it('returns false for different values', () => {
103
- const set1 = new Set([1, 2, 3]);
104
- const set2 = new Set([1, 2, 4]);
105
- expect(equals(set1, set2)).toBe(false);
106
- });
107
- it('returns true for empty Sets', () => {
108
- expect(equals(new Set(), new Set())).toBe(true);
109
- });
110
- });
111
- describe('equals() - TypedArrays (Branch 2e)', () => {
112
- it('returns true for identical Uint8Arrays', () => {
113
- const arr1 = new Uint8Array([1, 2, 3]);
114
- const arr2 = new Uint8Array([1, 2, 3]);
115
- expect(equals(arr1, arr2)).toBe(true);
116
- });
117
- it('returns false for different Uint8Arrays', () => {
118
- const arr1 = new Uint8Array([1, 2, 3]);
119
- const arr2 = new Uint8Array([1, 2, 4]);
120
- expect(equals(arr1, arr2)).toBe(false);
121
- });
122
- it('handles different TypedArray types', () => {
123
- const arr1 = new Uint8Array([1, 2]);
124
- const arr2 = new Int8Array([1, 2]);
125
- expect(equals(arr1, arr2)).toBe(false); // Different constructors
126
- });
127
- it('returns true for empty TypedArrays', () => {
128
- expect(equals(new Uint8Array(), new Uint8Array())).toBe(true);
129
- });
130
- });
131
- describe('equals() - RegExp (Branch 2f)', () => {
132
- it('returns true for identical RegExp', () => {
133
- expect(equals(/abc/gi, /abc/gi)).toBe(true);
134
- });
135
- it('returns false for different pattern', () => {
136
- expect(equals(/abc/, /def/)).toBe(false);
137
- });
138
- it('returns false for different flags', () => {
139
- expect(equals(/abc/i, /abc/gi)).toBe(false);
140
- });
141
- });
142
- describe('equals() - Dates (Branch 2g: valueOf)', () => {
143
- it('returns true for same timestamps', () => {
144
- const date1 = new Date('2024-01-01');
145
- const date2 = new Date('2024-01-01');
146
- expect(equals(date1, date2)).toBe(true);
147
- });
148
- it('returns false for different timestamps', () => {
149
- const date1 = new Date('2024-01-01');
150
- const date2 = new Date('2024-01-02');
151
- expect(equals(date1, date2)).toBe(false);
152
- });
153
- });
154
- describe('equals() - Objects (Branch 2j)', () => {
155
- it('returns true for identical objects', () => {
156
- expect(equals({ a: 1, b: 2 }, { a: 1, b: 2 })).toBe(true);
157
- });
158
- it('returns false for different key count', () => {
159
- expect(equals({ a: 1 }, { a: 1, b: 2 })).toBe(false);
160
- });
161
- it('returns false for different keys', () => {
162
- expect(equals({ a: 1 }, { b: 1 })).toBe(false);
163
- });
164
- it('returns false for different values', () => {
165
- expect(equals({ a: 1 }, { a: 2 })).toBe(false);
166
- });
167
- it('returns true for empty objects', () => {
168
- expect(equals({}, {})).toBe(true);
169
- });
170
- it('recursively compares nested objects', () => {
171
- expect(equals({ a: { b: { c: 1 } } }, { a: { b: { c: 1 } } })).toBe(true);
172
- expect(equals({ a: { b: { c: 1 } } }, { a: { b: { c: 2 } } })).toBe(false);
173
- });
174
- it('returns true for different key order', () => {
175
- expect(equals({ a: 1, b: 2 }, { b: 2, a: 1 })).toBe(true);
176
- });
177
- });
178
- describe('equals() - React Elements (Branch 2k: _owner special case)', () => {
179
- it('ignores _owner property', () => {
180
- const elem1 = { $$typeof: Symbol.for('react.element'), _owner: {}, props: { a: 1 } };
181
- const elem2 = { $$typeof: Symbol.for('react.element'), _owner: { different: true }, props: { a: 1 } };
182
- expect(equals(elem1, elem2)).toBe(true);
183
- });
184
- it('compares other properties normally', () => {
185
- const elem1 = { $$typeof: Symbol.for('react.element'), _owner: {}, props: { a: 1 } };
186
- const elem2 = { $$typeof: Symbol.for('react.element'), _owner: {}, props: { a: 2 } };
187
- expect(equals(elem1, elem2)).toBe(false);
188
- });
189
- });
190
- describe('equals() - NaN Special Case (Branch 3)', () => {
191
- it('returns true for NaN === NaN', () => {
192
- expect(equals(NaN, NaN)).toBe(true);
193
- });
194
- it('returns false for NaN vs number', () => {
195
- expect(equals(NaN, 5)).toBe(false);
196
- });
197
- });
198
- describe('equals() - Custom Classes (Branch 2i)', () => {
199
- it('does NOT use custom equals() for plain objects', () => {
200
- // Plain objects don't trigger custom equals branch
201
- // (branch requires custom constructor !== Object)
202
- const obj1 = {
203
- value: 1,
204
- equals: (other) => other.value === 1,
205
- };
206
- const obj2 = { value: 1, equals: () => false };
207
- // Old behavior: Compares as plain objects, includes equals property
208
- expect(equals(obj1, obj2)).toBe(false);
209
- });
210
- it('uses custom equals() for actual custom classes', () => {
211
- class Custom {
212
- value;
213
- constructor(v) {
214
- this.value = v;
215
- }
216
- equals(other) {
217
- return other.value === this.value;
218
- }
219
- }
220
- const obj1 = new Custom(1);
221
- const obj2 = new Custom(1);
222
- // Custom class with .equals() method
223
- expect(equals(obj1, obj2)).toBe(true);
224
- });
225
- it('returns true for custom class without equals() if fields match', () => {
226
- class Custom {
227
- value = 1;
228
- }
229
- const obj1 = new Custom();
230
- const obj2 = new Custom();
231
- expect(equals(obj1, obj2)).toBe(true);
232
- });
233
- });
234
- describe('equals() - Edge Cases', () => {
235
- it('handles circular references without throwing', () => {
236
- const obj1 = { a: 1 };
237
- obj1.self = obj1;
238
- const obj2 = { a: 1 };
239
- obj2.self = obj2;
240
- expect(equals(obj1, obj2)).toBe(true);
241
- });
242
- it('handles object with throwing toString() safely', () => {
243
- const obj1 = {
244
- toString: () => {
245
- throw new Error('toString throws');
246
- },
247
- };
248
- const obj2 = {
249
- toString: () => {
250
- throw new Error('toString throws');
251
- },
252
- };
253
- expect(equals(obj1, obj2)).toBe(false); // Should not throw
254
- });
255
- it('handles frozen objects', () => {
256
- const obj1 = Object.freeze({ a: 1 });
257
- const obj2 = { a: 1 };
258
- expect(equals(obj1, obj2)).toBe(true);
259
- });
260
- it('handles sealed objects', () => {
261
- const obj1 = Object.seal({ a: 1 });
262
- const obj2 = { a: 1 };
263
- expect(equals(obj1, obj2)).toBe(true);
264
- });
265
- it('handles very large objects', () => {
266
- const obj1 = {};
267
- const obj2 = {};
268
- for (let i = 0; i < 1000; i++) {
269
- obj1[`key${i}`] = i;
270
- obj2[`key${i}`] = i;
271
- }
272
- expect(equals(obj1, obj2)).toBe(true);
273
- });
274
- it('handles deeply nested objects', () => {
275
- let obj1 = { value: 1 };
276
- let obj2 = { value: 1 };
277
- for (let i = 0; i < 100; i++) {
278
- obj1 = { nested: obj1 };
279
- obj2 = { nested: obj2 };
280
- }
281
- expect(equals(obj1, obj2)).toBe(true);
282
- });
283
- it('handles different constructor', () => {
284
- expect(equals([], {})).toBe(false);
285
- expect(equals(new Date(), {})).toBe(false);
286
- });
287
- it('handles Infinity vs -Infinity', () => {
288
- expect(equals(Infinity, Infinity)).toBe(true);
289
- expect(equals(Infinity, -Infinity)).toBe(false);
290
- });
291
- it('handles -0 vs 0', () => {
292
- expect(equals(-0, 0)).toBe(true); // -0 === 0 is true
293
- });
294
- it('handles inherited properties (should ignore them)', () => {
295
- const proto = { a: 1 };
296
- const a = Object.create(proto);
297
- a.b = 2;
298
- const b = { b: 2 };
299
- expect(equals(a, b)).toBe(true);
300
- });
301
- it('handles Maps with different types of keys', () => {
302
- const m1 = new Map();
303
- m1.set(1, 'a');
304
- const m2 = new Map();
305
- m2.set('1', 'a');
306
- expect(equals(m1, m2)).toBe(false);
307
- });
308
- it('handles Sets with different types of values', () => {
309
- const s1 = new Set([1]);
310
- const s2 = new Set(['1']);
311
- expect(equals(s1, s2)).toBe(false);
312
- });
313
- it('handles throwing getters', () => {
314
- const a = { get x() {
315
- throw new Error('getter error');
316
- } };
317
- const b = { x: 1 };
318
- expect(() => equals(a, b)).toThrow('getter error');
319
- });
320
- it('handles objects with null prototype', () => {
321
- const a = Object.create(null);
322
- a.x = 1;
323
- const b = Object.create(null);
324
- b.x = 1;
325
- expect(equals(a, b)).toBe(true);
326
- });
327
- });
328
- //# sourceMappingURL=LeUtils.equals.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.equals.test.js","sourceRoot":"","sources":["../../tests/LeUtils.equals.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LeUtils.flatten.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.flatten.test.d.ts","sourceRoot":"","sources":["../../tests/LeUtils.flatten.test.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { flattenArray, flattenToArray } from '../src/index';
3
- describe('flattenArray()', () => {
4
- it('flattens nested arrays', () => {
5
- expect(flattenArray([1, [2, [3, 4]]])).toEqual([1, 2, 3, 4]);
6
- });
7
- it('handles empty arrays', () => {
8
- expect(flattenArray([[], [[]]])).toEqual([]);
9
- });
10
- it('returns array for non-array input', () => {
11
- expect(flattenArray(123)).toEqual([123]);
12
- });
13
- });
14
- describe('flattenToArray()', () => {
15
- it('flattens arrays, sets, and maps', () => {
16
- const data = [
17
- new Set([1, 2]),
18
- new Map([['a', 3]]),
19
- [4, [5]],
20
- ];
21
- expect(flattenToArray(data)).toEqual([1, 2, 3, 4, 5]);
22
- });
23
- it('handles objects', () => {
24
- expect(flattenToArray({ a: 1, b: [2, 3] })).toEqual([1, 2, 3]);
25
- });
26
- it('returns array for primitive', () => {
27
- expect(flattenToArray(123)).toEqual([123]);
28
- });
29
- });
30
- //# sourceMappingURL=LeUtils.flatten.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.flatten.test.js","sourceRoot":"","sources":["../../tests/LeUtils.flatten.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAE1D,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAE/B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAEjC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAE/B,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAE5C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAEjC,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAE1C,MAAM,IAAI,GAAG;YACZ,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACR,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAE1B,MAAM,CAAC,cAAc,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAEtC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LeUtils.misc.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.misc.test.d.ts","sourceRoot":"","sources":["../../tests/LeUtils.misc.test.ts"],"names":[],"mappings":""}
@@ -1,50 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { uniqueId, timestamp, isGeneratorFunction } from '../src/index';
3
- describe('uniqueId()', () => {
4
- it('generates unique ID', () => {
5
- const id1 = uniqueId();
6
- const id2 = uniqueId();
7
- expect(id1).not.toBe(id2);
8
- });
9
- it('returns string', () => {
10
- expect(typeof uniqueId()).toBe('string');
11
- });
12
- it('generates many unique IDs', () => {
13
- const ids = new Set();
14
- for (let i = 0; i < 1000; i++) {
15
- ids.add(uniqueId());
16
- }
17
- expect(ids.size).toBe(1000);
18
- });
19
- });
20
- describe('timestamp()', () => {
21
- it('returns current timestamp', () => {
22
- const ts = timestamp();
23
- // Legacy: returns a base64-encoded string
24
- expect(typeof ts).toBe('string');
25
- expect(ts.length).toBeGreaterThan(0);
26
- });
27
- });
28
- describe('isGeneratorFunction()', () => {
29
- it('returns true for generator function', () => {
30
- function* gen() {
31
- yield 1;
32
- }
33
- expect(isGeneratorFunction(gen)).toBe(true);
34
- });
35
- it('returns false for regular function', () => {
36
- function regular() {
37
- return 1;
38
- }
39
- expect(isGeneratorFunction(regular)).toBe(false);
40
- });
41
- it('returns false for arrow function', () => {
42
- const arrow = () => { };
43
- expect(isGeneratorFunction(arrow)).toBe(false);
44
- });
45
- it('returns false for non-function', () => {
46
- expect(isGeneratorFunction({})).toBe(false);
47
- expect(isGeneratorFunction(null)).toBe(false);
48
- });
49
- });
50
- //# sourceMappingURL=LeUtils.misc.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.misc.test.js","sourceRoot":"","sources":["../../tests/LeUtils.misc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAEtE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAE3B,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAE9B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAEzB,MAAM,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAC7B,CAAC;YACA,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAE5B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAEpC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QACvB,0CAA0C;QAC1C,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAEtC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAE9C,QAAQ,CAAC,CAAC,GAAG;YAEZ,MAAM,CAAC,CAAC;QACT,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAE7C,SAAS,OAAO;YAEf,OAAO,CAAC,CAAC;QACV,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAE3C,MAAM,KAAK,GAAG,GAAG,EAAE,GAClB,CAAC,CAAC;QACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAEzC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LeUtils.misc2.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.misc2.test.d.ts","sourceRoot":"","sources":["../../tests/LeUtils.misc2.test.ts"],"names":[],"mappings":""}
@@ -1,58 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { uniqueId, timestamp, isGeneratorFunction, isTransactionalValueValid, createTransactionalValue, transactionalValueToString, } from '../src/index';
3
- describe('Miscellaneous Utilities (Batch 2)', () => {
4
- describe('uniqueId()', () => {
5
- it('generates unique IDs', () => {
6
- const id1 = uniqueId();
7
- const id2 = uniqueId();
8
- expect(id1).not.toBe(id2);
9
- expect(typeof id1).toBe('string');
10
- expect(id1.length).toBeGreaterThan(10);
11
- });
12
- });
13
- describe('timestamp()', () => {
14
- it('returns a value representing current time', () => {
15
- const ts = timestamp();
16
- // Legacy returns string, current version returns number.
17
- // This test is written to be flexible for the parity run.
18
- expect(ts).toBeDefined();
19
- });
20
- });
21
- describe('isGeneratorFunction()', () => {
22
- it('identifies generator functions', () => {
23
- function* gen() {
24
- yield 1;
25
- }
26
- expect(isGeneratorFunction(gen)).toBe(true);
27
- });
28
- it('identifies async generator functions', () => {
29
- async function* asyncGen() {
30
- yield 1;
31
- }
32
- expect(isGeneratorFunction(asyncGen)).toBe(true);
33
- });
34
- it('returns false for regular functions', () => {
35
- function reg() { }
36
- const result = isGeneratorFunction(reg);
37
- // Legacy returns undefined, current version returns false.
38
- // Parity run will check this.
39
- expect(result).not.toBe(true);
40
- });
41
- });
42
- describe('TransactionalValue Validation', () => {
43
- it('identifies valid transactional values', () => {
44
- const tv = createTransactionalValue(10);
45
- expect(isTransactionalValueValid(tv)).toBe(true);
46
- });
47
- it('returns false for invalid shapes', () => {
48
- expect(isTransactionalValueValid({})).toBe(false);
49
- expect(isTransactionalValueValid({ value: 1 })).toBe(false);
50
- expect(isTransactionalValueValid({ value: 1, changes: {} })).toBe(false);
51
- });
52
- it('converts to string correctly', () => {
53
- const tv = createTransactionalValue(10);
54
- expect(transactionalValueToString(tv)).toBe('10');
55
- });
56
- });
57
- });
58
- //# sourceMappingURL=LeUtils.misc2.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.misc2.test.js","sourceRoot":"","sources":["../../tests/LeUtils.misc2.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=LeUtils.newlyAdded.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LeUtils.newlyAdded.test.d.ts","sourceRoot":"","sources":["../../tests/LeUtils.newlyAdded.test.ts"],"names":[],"mappings":""}