@nejs/basic-extensions 2.21.5 → 2.22.6

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 (266) hide show
  1. package/README.md +78 -4
  2. package/dist/@nejs/basic-extensions.bundle.2.22.6.js +25 -0
  3. package/dist/@nejs/basic-extensions.bundle.2.22.6.js.map +7 -0
  4. package/dist/cjs/classes/index.cjs +11129 -0
  5. package/dist/cjs/classes/index.cjs.map +7 -0
  6. package/dist/cjs/index.cjs +15191 -0
  7. package/dist/cjs/index.cjs.map +7 -0
  8. package/dist/cjs/utils/index.cjs +3954 -0
  9. package/dist/cjs/utils/index.cjs.map +7 -0
  10. package/dist/esm/basic-extensions.mjs +25 -0
  11. package/dist/esm/basic-extensions.mjs.map +7 -0
  12. package/package.json +16 -22
  13. package/repl.bootstrap.js +4 -7
  14. package/repl.history +26 -26
  15. package/src/classes/enumeration.js +466 -0
  16. package/src/classes/index.js +5 -1
  17. package/src/index.js +3 -1
  18. package/src/regular.expression.extensions.js +0 -35
  19. package/src/utils/toolkit.js +699 -516
  20. package/tests/arrayextensions.test.js +3 -3
  21. package/tests/index.test.js +3 -1
  22. package/tests/newClasses/asyncIterable.test.js +3 -3
  23. package/tests/newClasses/deferred.test.js +3 -3
  24. package/tests/newClasses/descriptor.test.js +3 -3
  25. package/tests/newClasses/iterable.test.js +3 -3
  26. package/tests/newClasses/refmap.test.js +3 -3
  27. package/tests/newClasses/refset.test.js +3 -3
  28. package/tests/objectextensions.test.js +3 -3
  29. package/tests/setextensions.test.js +3 -3
  30. package/tests/stringextensions.test.js +3 -2
  31. package/tests/utils/descriptor.utils.test.js +1 -1
  32. package/tests/utils/toolkit.test.js +429 -163
  33. package/.esdoc.json +0 -9
  34. package/.vscode/settings.json +0 -5
  35. package/bin/build +0 -27
  36. package/bin/clean +0 -14
  37. package/bin/esbuild +0 -91
  38. package/bin/fixup +0 -13
  39. package/bin/repl.basics.js +0 -584
  40. package/bin/repl.signature.js +0 -63
  41. package/bin/version +0 -100
  42. package/dist/@nejs/basic-extensions.bundle.2.21.5.js +0 -25
  43. package/dist/@nejs/basic-extensions.bundle.2.21.5.js.map +0 -7
  44. package/dist/cjs/array.extensions.d.ts +0 -39
  45. package/dist/cjs/array.extensions.js +0 -477
  46. package/dist/cjs/array.extensions.js.map +0 -1
  47. package/dist/cjs/big.int.extension.d.ts +0 -31
  48. package/dist/cjs/big.int.extension.js +0 -273
  49. package/dist/cjs/big.int.extension.js.map +0 -1
  50. package/dist/cjs/classes/asyncIterable.d.ts +0 -126
  51. package/dist/cjs/classes/asyncIterable.js +0 -209
  52. package/dist/cjs/classes/asyncIterable.js.map +0 -1
  53. package/dist/cjs/classes/deferred.d.ts +0 -146
  54. package/dist/cjs/classes/deferred.js +0 -291
  55. package/dist/cjs/classes/deferred.js.map +0 -1
  56. package/dist/cjs/classes/descriptor.d.ts +0 -334
  57. package/dist/cjs/classes/descriptor.js +0 -537
  58. package/dist/cjs/classes/descriptor.js.map +0 -1
  59. package/dist/cjs/classes/enum.d.ts +0 -50
  60. package/dist/cjs/classes/enum.js +0 -405
  61. package/dist/cjs/classes/enum.js.map +0 -1
  62. package/dist/cjs/classes/index.d.ts +0 -15
  63. package/dist/cjs/classes/index.js +0 -63
  64. package/dist/cjs/classes/index.js.map +0 -1
  65. package/dist/cjs/classes/introspector.d.ts +0 -20
  66. package/dist/cjs/classes/introspector.js +0 -130
  67. package/dist/cjs/classes/introspector.js.map +0 -1
  68. package/dist/cjs/classes/iterable.d.ts +0 -169
  69. package/dist/cjs/classes/iterable.js +0 -268
  70. package/dist/cjs/classes/iterable.js.map +0 -1
  71. package/dist/cjs/classes/param.parser.d.ts +0 -221
  72. package/dist/cjs/classes/param.parser.js +0 -242
  73. package/dist/cjs/classes/param.parser.js.map +0 -1
  74. package/dist/cjs/classes/pluggable.proxy.d.ts +0 -153
  75. package/dist/cjs/classes/pluggable.proxy.js +0 -444
  76. package/dist/cjs/classes/pluggable.proxy.js.map +0 -1
  77. package/dist/cjs/classes/property.d.ts +0 -79
  78. package/dist/cjs/classes/property.js +0 -284
  79. package/dist/cjs/classes/property.js.map +0 -1
  80. package/dist/cjs/classes/refmap.d.ts +0 -238
  81. package/dist/cjs/classes/refmap.js +0 -421
  82. package/dist/cjs/classes/refmap.js.map +0 -1
  83. package/dist/cjs/classes/refset.d.ts +0 -186
  84. package/dist/cjs/classes/refset.js +0 -370
  85. package/dist/cjs/classes/refset.js.map +0 -1
  86. package/dist/cjs/classes/symkeys.d.ts +0 -349
  87. package/dist/cjs/classes/symkeys.js +0 -510
  88. package/dist/cjs/classes/symkeys.js.map +0 -1
  89. package/dist/cjs/classes/type.d.ts +0 -56
  90. package/dist/cjs/classes/type.js +0 -405
  91. package/dist/cjs/classes/type.js.map +0 -1
  92. package/dist/cjs/function.extensions.d.ts +0 -12
  93. package/dist/cjs/function.extensions.js +0 -758
  94. package/dist/cjs/function.extensions.js.map +0 -1
  95. package/dist/cjs/global.this.d.ts +0 -2
  96. package/dist/cjs/global.this.js +0 -300
  97. package/dist/cjs/global.this.js.map +0 -1
  98. package/dist/cjs/index.d.ts +0 -31
  99. package/dist/cjs/index.js +0 -228
  100. package/dist/cjs/index.js.map +0 -1
  101. package/dist/cjs/json.extensions.d.ts +0 -2
  102. package/dist/cjs/json.extensions.js +0 -109
  103. package/dist/cjs/json.extensions.js.map +0 -1
  104. package/dist/cjs/map.extensions.d.ts +0 -3
  105. package/dist/cjs/map.extensions.js +0 -143
  106. package/dist/cjs/map.extensions.js.map +0 -1
  107. package/dist/cjs/math.extension.d.ts +0 -14
  108. package/dist/cjs/math.extension.js +0 -71
  109. package/dist/cjs/math.extension.js.map +0 -1
  110. package/dist/cjs/number.extension.d.ts +0 -44
  111. package/dist/cjs/number.extension.js +0 -278
  112. package/dist/cjs/number.extension.js.map +0 -1
  113. package/dist/cjs/object.extensions.d.ts +0 -33
  114. package/dist/cjs/object.extensions.js +0 -1091
  115. package/dist/cjs/object.extensions.js.map +0 -1
  116. package/dist/cjs/package.json +0 -3
  117. package/dist/cjs/proxy.extensions.d.ts +0 -2
  118. package/dist/cjs/proxy.extensions.js +0 -207
  119. package/dist/cjs/proxy.extensions.js.map +0 -1
  120. package/dist/cjs/reflect.extensions.d.ts +0 -14
  121. package/dist/cjs/reflect.extensions.js +0 -316
  122. package/dist/cjs/reflect.extensions.js.map +0 -1
  123. package/dist/cjs/regular.expression.extensions.d.ts +0 -2
  124. package/dist/cjs/regular.expression.extensions.js +0 -423
  125. package/dist/cjs/regular.expression.extensions.js.map +0 -1
  126. package/dist/cjs/set.extensions.d.ts +0 -40
  127. package/dist/cjs/set.extensions.js +0 -355
  128. package/dist/cjs/set.extensions.js.map +0 -1
  129. package/dist/cjs/string.extensions.d.ts +0 -23
  130. package/dist/cjs/string.extensions.js +0 -704
  131. package/dist/cjs/string.extensions.js.map +0 -1
  132. package/dist/cjs/symbol.extensions.d.ts +0 -11
  133. package/dist/cjs/symbol.extensions.js +0 -735
  134. package/dist/cjs/symbol.extensions.js.map +0 -1
  135. package/dist/cjs/utils/copy.object.d.ts +0 -408
  136. package/dist/cjs/utils/copy.object.js +0 -720
  137. package/dist/cjs/utils/copy.object.js.map +0 -1
  138. package/dist/cjs/utils/descriptor.utils.d.ts +0 -298
  139. package/dist/cjs/utils/descriptor.utils.js +0 -889
  140. package/dist/cjs/utils/descriptor.utils.js.map +0 -1
  141. package/dist/cjs/utils/index.d.ts +0 -75
  142. package/dist/cjs/utils/index.js +0 -61
  143. package/dist/cjs/utils/index.js.map +0 -1
  144. package/dist/cjs/utils/stdout.d.ts +0 -742
  145. package/dist/cjs/utils/stdout.js +0 -1042
  146. package/dist/cjs/utils/stdout.js.map +0 -1
  147. package/dist/cjs/utils/toolkit.d.ts +0 -1898
  148. package/dist/cjs/utils/toolkit.js +0 -1378
  149. package/dist/cjs/utils/toolkit.js.map +0 -1
  150. package/dist/cjs/weakref.extensions.d.ts +0 -2
  151. package/dist/cjs/weakref.extensions.js +0 -19
  152. package/dist/cjs/weakref.extensions.js.map +0 -1
  153. package/dist/mjs/array.extensions.d.ts +0 -39
  154. package/dist/mjs/array.extensions.js +0 -474
  155. package/dist/mjs/array.extensions.js.map +0 -1
  156. package/dist/mjs/big.int.extension.d.ts +0 -31
  157. package/dist/mjs/big.int.extension.js +0 -270
  158. package/dist/mjs/big.int.extension.js.map +0 -1
  159. package/dist/mjs/classes/asyncIterable.d.ts +0 -126
  160. package/dist/mjs/classes/asyncIterable.js +0 -204
  161. package/dist/mjs/classes/asyncIterable.js.map +0 -1
  162. package/dist/mjs/classes/deferred.d.ts +0 -146
  163. package/dist/mjs/classes/deferred.js +0 -287
  164. package/dist/mjs/classes/deferred.js.map +0 -1
  165. package/dist/mjs/classes/descriptor.d.ts +0 -334
  166. package/dist/mjs/classes/descriptor.js +0 -533
  167. package/dist/mjs/classes/descriptor.js.map +0 -1
  168. package/dist/mjs/classes/enum.d.ts +0 -50
  169. package/dist/mjs/classes/enum.js +0 -400
  170. package/dist/mjs/classes/enum.js.map +0 -1
  171. package/dist/mjs/classes/index.d.ts +0 -15
  172. package/dist/mjs/classes/index.js +0 -46
  173. package/dist/mjs/classes/index.js.map +0 -1
  174. package/dist/mjs/classes/introspector.d.ts +0 -20
  175. package/dist/mjs/classes/introspector.js +0 -126
  176. package/dist/mjs/classes/introspector.js.map +0 -1
  177. package/dist/mjs/classes/iterable.d.ts +0 -169
  178. package/dist/mjs/classes/iterable.js +0 -263
  179. package/dist/mjs/classes/iterable.js.map +0 -1
  180. package/dist/mjs/classes/param.parser.d.ts +0 -221
  181. package/dist/mjs/classes/param.parser.js +0 -238
  182. package/dist/mjs/classes/param.parser.js.map +0 -1
  183. package/dist/mjs/classes/pluggable.proxy.d.ts +0 -153
  184. package/dist/mjs/classes/pluggable.proxy.js +0 -438
  185. package/dist/mjs/classes/pluggable.proxy.js.map +0 -1
  186. package/dist/mjs/classes/property.d.ts +0 -79
  187. package/dist/mjs/classes/property.js +0 -280
  188. package/dist/mjs/classes/property.js.map +0 -1
  189. package/dist/mjs/classes/refmap.d.ts +0 -238
  190. package/dist/mjs/classes/refmap.js +0 -417
  191. package/dist/mjs/classes/refmap.js.map +0 -1
  192. package/dist/mjs/classes/refset.d.ts +0 -186
  193. package/dist/mjs/classes/refset.js +0 -366
  194. package/dist/mjs/classes/refset.js.map +0 -1
  195. package/dist/mjs/classes/symkeys.d.ts +0 -349
  196. package/dist/mjs/classes/symkeys.js +0 -506
  197. package/dist/mjs/classes/symkeys.js.map +0 -1
  198. package/dist/mjs/classes/type.d.ts +0 -56
  199. package/dist/mjs/classes/type.js +0 -401
  200. package/dist/mjs/classes/type.js.map +0 -1
  201. package/dist/mjs/function.extensions.d.ts +0 -12
  202. package/dist/mjs/function.extensions.js +0 -755
  203. package/dist/mjs/function.extensions.js.map +0 -1
  204. package/dist/mjs/global.this.d.ts +0 -2
  205. package/dist/mjs/global.this.js +0 -264
  206. package/dist/mjs/global.this.js.map +0 -1
  207. package/dist/mjs/index.d.ts +0 -31
  208. package/dist/mjs/index.js +0 -206
  209. package/dist/mjs/index.js.map +0 -1
  210. package/dist/mjs/json.extensions.d.ts +0 -2
  211. package/dist/mjs/json.extensions.js +0 -106
  212. package/dist/mjs/json.extensions.js.map +0 -1
  213. package/dist/mjs/map.extensions.d.ts +0 -3
  214. package/dist/mjs/map.extensions.js +0 -140
  215. package/dist/mjs/map.extensions.js.map +0 -1
  216. package/dist/mjs/math.extension.d.ts +0 -14
  217. package/dist/mjs/math.extension.js +0 -68
  218. package/dist/mjs/math.extension.js.map +0 -1
  219. package/dist/mjs/number.extension.d.ts +0 -44
  220. package/dist/mjs/number.extension.js +0 -275
  221. package/dist/mjs/number.extension.js.map +0 -1
  222. package/dist/mjs/object.extensions.d.ts +0 -33
  223. package/dist/mjs/object.extensions.js +0 -1088
  224. package/dist/mjs/object.extensions.js.map +0 -1
  225. package/dist/mjs/package.json +0 -3
  226. package/dist/mjs/proxy.extensions.d.ts +0 -2
  227. package/dist/mjs/proxy.extensions.js +0 -204
  228. package/dist/mjs/proxy.extensions.js.map +0 -1
  229. package/dist/mjs/reflect.extensions.d.ts +0 -14
  230. package/dist/mjs/reflect.extensions.js +0 -313
  231. package/dist/mjs/reflect.extensions.js.map +0 -1
  232. package/dist/mjs/regular.expression.extensions.d.ts +0 -2
  233. package/dist/mjs/regular.expression.extensions.js +0 -420
  234. package/dist/mjs/regular.expression.extensions.js.map +0 -1
  235. package/dist/mjs/set.extensions.d.ts +0 -40
  236. package/dist/mjs/set.extensions.js +0 -352
  237. package/dist/mjs/set.extensions.js.map +0 -1
  238. package/dist/mjs/string.extensions.d.ts +0 -23
  239. package/dist/mjs/string.extensions.js +0 -701
  240. package/dist/mjs/string.extensions.js.map +0 -1
  241. package/dist/mjs/symbol.extensions.d.ts +0 -11
  242. package/dist/mjs/symbol.extensions.js +0 -732
  243. package/dist/mjs/symbol.extensions.js.map +0 -1
  244. package/dist/mjs/utils/copy.object.d.ts +0 -408
  245. package/dist/mjs/utils/copy.object.js +0 -702
  246. package/dist/mjs/utils/copy.object.js.map +0 -1
  247. package/dist/mjs/utils/descriptor.utils.d.ts +0 -298
  248. package/dist/mjs/utils/descriptor.utils.js +0 -875
  249. package/dist/mjs/utils/descriptor.utils.js.map +0 -1
  250. package/dist/mjs/utils/index.d.ts +0 -75
  251. package/dist/mjs/utils/index.js +0 -45
  252. package/dist/mjs/utils/index.js.map +0 -1
  253. package/dist/mjs/utils/stdout.d.ts +0 -742
  254. package/dist/mjs/utils/stdout.js +0 -1037
  255. package/dist/mjs/utils/stdout.js.map +0 -1
  256. package/dist/mjs/utils/toolkit.d.ts +0 -1898
  257. package/dist/mjs/utils/toolkit.js +0 -1373
  258. package/dist/mjs/utils/toolkit.js.map +0 -1
  259. package/dist/mjs/weakref.extensions.d.ts +0 -2
  260. package/dist/mjs/weakref.extensions.js +0 -16
  261. package/dist/mjs/weakref.extensions.js.map +0 -1
  262. package/jsdoc-config.json +0 -31
  263. package/tsconfig.base.json +0 -28
  264. package/tsconfig.cjs.json +0 -8
  265. package/tsconfig.esm.json +0 -8
  266. package/vitest.config.js +0 -7
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JSONExtensions = void 0;
4
- const extension_1 = require("@nejs/extension");
5
- exports.JSONExtensions = new extension_1.Patch(JSON, {
6
- [extension_1.Patch.kMutablyHidden]: {
7
- extractAllFrom(string) {
8
- const pattern = this.JSONStartPattern;
9
- const notJSON = Symbol("Value is not valid JSON");
10
- const decoder = part => {
11
- try {
12
- return JSON.parse(part);
13
- }
14
- catch (_) {
15
- return notJSON;
16
- }
17
- };
18
- const parts = [];
19
- let part = undefined;
20
- while ((part = pattern.exec(string))) {
21
- parts.push(decoder(part?.[0]));
22
- }
23
- return parts.filter(isJSON => isJSON !== notJSON);
24
- },
25
- /**
26
- * The `extractFrom` method attempts to extract a JSON object from a string.
27
- * It uses a regular expression to identify potential JSON objects in the
28
- * string and attempts to parse them. If a valid JSON object is found, it is
29
- * returned. If no valid JSON object is found, the method returns undefined.
30
- *
31
- * NOTE: This method will only find JSON from an iterated upon start spot
32
- * until the end of the string. So `'JSON follows {"count": 0}'` will
33
- * return `{count: 0}` but `'JSON follows {"count": 0} and more'` will
34
- * fail to locate any JSON in the String. You've been warned.
35
- *
36
- * @param {string} string - The string from which to extract a JSON object.
37
- * @returns {Object|undefined} - The first valid JSON object found in the
38
- * string, or undefined if no valid JSON object is found.
39
- *
40
- * @example
41
- * // Suppose we have a string with embedded JSON
42
- * const str1 = 'Hello {"name":"John", "age":30} World'
43
- * const str2 = 'Hello {"name": "John", "age": 30}'
44
- *
45
- * // Using `extractFrom`
46
- * console.log(JSON.extractFrom(str1)) // Output: undefined
47
- * console.log(JSON.extractFrom(str2)) // Output: {name: 'John', age: 30}
48
- */
49
- extractFrom(string) {
50
- this.extractAllFrom(string)?.[0];
51
- },
52
- /**
53
- * The `mightContain` method checks if a string might contain a JSON object.
54
- * It uses the `JSONStartPattern` regular expression to search for potential
55
- * JSON objects in the string. If a potential JSON object is found, the method
56
- * returns true. If no potential JSON object is found, the method returns false.
57
- *
58
- * @param {string} string - The string to check for potential JSON objects.
59
- * @returns {boolean} - Returns true if the string might contain a JSON object,
60
- * false otherwise.
61
- *
62
- * @example
63
- * // Suppose we have a string with embedded JSON
64
- * const str = 'Hello {"name":"John", "age":30} World'
65
- *
66
- * // Using `mightContain`
67
- * console.log(JSON.mightContain(str)) // Output: true
68
- */
69
- mightContain(string, detail = false) {
70
- const results = this.JSONStartPattern.exec(string);
71
- return detail ? [!!results, results?.index ?? -1, results] : !!results;
72
- },
73
- /**
74
- * Getter method for the JSONStartPattern.
75
- *
76
- * This method constructs a regular expression pattern that is used to
77
- * identify potential JSON objects in a string. The pattern is designed
78
- * to match various JSON data types including null, boolean, number,
79
- * string, object, and array.
80
- *
81
- * The pattern is constructed using an array of strings, each representing
82
- * a part of the pattern. The array is then joined into a single string
83
- * and passed to the RegExp constructor to create the pattern.
84
- *
85
- * @returns {RegExp} - The constructed regular expression pattern.
86
- *
87
- * @example
88
- * // Using `JSONStartPattern`
89
- * const pattern = JSONStartPattern;
90
- * const str = 'Hello {"name":"John", "age":30} World';
91
- * const match = pattern.exec(str);
92
- * console.log(match[0]); // Output: '{"name":"John", "age":30}'
93
- */
94
- get JSONStartPattern() {
95
- const pattern = new RegExp([
96
- '(?:', // Start with a non-capturing group and match
97
- '(null)|', // ...a null
98
- '(true|false)|', // ...a bool
99
- '(\\d+\\.?\\d*)|', // ...a number (including floats)
100
- '("[^\\"]*(?:[^:])")|', // ...a double quote (start of string)
101
- '((?:\\{.*\\})+)|', // ...an open curly brace (object)
102
- '((?:\\[.*\\]+))', // ...an open square bracket (array)
103
- ')+', // End of the groups
104
- ].join(''), 'gm');
105
- return pattern;
106
- },
107
- }
108
- });
109
- //# sourceMappingURL=json.extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.extensions.js","sourceRoot":"","sources":["../../src/json.extensions.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAE1B,QAAA,cAAc,GAAG,IAAI,iBAAK,CAAC,IAAI,EAAE;IAC5C,CAAC,iBAAK,CAAC,cAAc,CAAC,EAAE;QACtB,cAAc,CAAC,MAAM;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAA;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE;gBACrB,IAAI,CAAC;oBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBAAC,OAAO,OAAO,CAAA;gBAAC,CAAC;YAC9D,CAAC,CAAA;YAED,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,IAAI,GAAG,SAAS,CAAA;YAEpB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChC,CAAC;YAED,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAA;QACnD,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,WAAW,CAAC,MAAM;YAChB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAClC,CAAC;QAED;;;;;;;;;;;;;;;;WAgBG;QACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACxE,CAAC;QAED;;;;;;;;;;;;;;;;;;;;WAoBG;QACH,IAAI,gBAAgB;YAClB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC;gBACzB,KAAK,EAAqB,6CAA6C;gBACrE,SAAS,EAAe,YAAY;gBACpC,eAAe,EAAS,YAAY;gBACpC,iBAAiB,EAAO,iCAAiC;gBACzD,sBAAsB,EAAE,sCAAsC;gBAC9D,kBAAkB,EAAM,kCAAkC;gBAC1D,iBAAiB,EAAO,oCAAoC;gBAC9D,IAAI,EAAsB,oBAAoB;aAC/C,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAEjB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF;CACF,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- export const MapExtensions: Patch;
2
- export const MapPrototypeExtensions: Patch;
3
- import { Patch } from '@nejs/extension';
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MapPrototypeExtensions = exports.MapExtensions = void 0;
4
- const extension_1 = require("@nejs/extension");
5
- exports.MapExtensions = new extension_1.Patch(Map, {
6
- [extension_1.Patch.kMutablyHidden]: {
7
- /**
8
- * Determines if the supplied `value` is a `Map` object. This check
9
- * is performed by first looking for the `Symbol.toStringTag` on the
10
- * `value` and checking to see if it is equal to the string "Map".
11
- * If that check fails, `instanceof` is used as a fallback to check
12
- * the prototype chain.
13
- *
14
- * @param {any} value the value that needs to be checked to determine
15
- * if it is a `Map` object or not
16
- * @returns {boolean} `true` if the supplied `value` is a `Map`
17
- * object, `false` otherwise
18
- *
19
- * @example
20
- * const map = new Map()
21
- * isMap(map) // true
22
- * isMap(new Set()) // false
23
- * isMap([]) // false
24
- * isMap({}) // false
25
- */
26
- isMap(value) {
27
- return value?.[Symbol.toStringTag] === Map.name && value instanceof Map;
28
- },
29
- /**
30
- * Conditionally returns a value based on whether the supplied
31
- * `value` is a `Map` object or not. If the `value` is a `Map`
32
- * object, the `thenValue` will be returned. If it is not a `Map`
33
- * object, the `elseValue` will be returned instead.
34
- *
35
- * @param {any} value the value to check to determine if it is a
36
- * `Map` object
37
- * @param {any} thenValue the value to return if the supplied
38
- * `value` is a `Map` object
39
- * @param {any} elseValue the value to return if the supplied
40
- * `value` is not a `Map` object
41
- * @returns {any} either the `thenValue` or `elseValue` depending
42
- * on if the supplied `value` is a `Map` object
43
- *
44
- * @example
45
- * const map = new Map()
46
- * const set = new Set()
47
- * ifMap(map, 'is a map', 'not a map') // 'is a map'
48
- * ifMap(set, 'is a map', 'not a map') // 'not a map'
49
- */
50
- ifMap(value, thenValue, elseValue) {
51
- return isThenElse(this.isMap(value), thenValue, elseValue);
52
- },
53
- }
54
- });
55
- const { isMap: pIsMap, ifMap: pIfMap } = exports.MapExtensions.patches;
56
- exports.MapPrototypeExtensions = new extension_1.Patch(Map.prototype, {
57
- [extension_1.Patch.kMutablyHidden]: {
58
- /**
59
- * Determines if the current object is a `Map` object
60
- *
61
- * This is a getter that uses the `isMap` function from the
62
- * `MapExtensions` patch to check if the current object (`this`) is
63
- * a `Map` object
64
- *
65
- * @type {boolean}
66
- * @readonly
67
- *
68
- * @example
69
- * const map = new Map()
70
- * console.log(map.isMap) // Output: true
71
- *
72
- * const notMap = {}
73
- * console.log(notMap.isMap) // Output: false
74
- */
75
- get isMap() {
76
- return pIsMap(this);
77
- },
78
- /**
79
- * Conditionally returns a value based on whether the current
80
- * object is a `Map` object or not
81
- *
82
- * If the current object is a `Map` object, the `thenValue` will
83
- * be returned. If it is not a `Map` object, the `elseValue` will
84
- * be returned instead.
85
- *
86
- * @param {any} thenValue the value to return if the current
87
- * object is a `Map` object
88
- * @param {any} elseValue the value to return if the current
89
- * object is not a `Map` object
90
- * @returns {any} either the `thenValue` or `elseValue` depending
91
- * on if the current object is a `Map` object
92
- *
93
- * @example
94
- * const map = new Map()
95
- * map.ifMap('is a map', 'not a map') // 'is a map'
96
- *
97
- * const notMap = {}
98
- * notMap.ifMap('is a map', 'not a map') // 'not a map'
99
- */
100
- ifMap(thenValue, elseValue) {
101
- return pIfMap(this, thenValue, elseValue);
102
- },
103
- /**
104
- * The function `getKey` returns the key associated with a given value
105
- * in a map.
106
- *
107
- * @param {any} value - The value parameter is the value that you want to
108
- * find the corresponding key for in the map.
109
- * @param [strict=true] - The "strict" parameter is a boolean value that
110
- * determines whether strict equality (===) or loose equality (==) should
111
- * be used when comparing the "value" parameter with the values in the
112
- * entries of the object. If "strict" is set to true, strict equality will
113
- * be used.
114
- * @returns the key associated with the given value. If a matching key is
115
- * found, it is returned. If no matching key is found, null is returned.
116
- */
117
- getKey(value, strict = true) {
118
- for (const [key, entryValue] of this) {
119
- if ((strict && value === entryValue) &&
120
- (!strict && value == entryValue)) {
121
- return key;
122
- }
123
- return null;
124
- }
125
- },
126
- },
127
- });
128
- // NOTE to self; this is repeated here otherwise a circular reference from
129
- // Object<->Function<->Global occurs. See original source in global.this.js
130
- // {@see globalThis.isThenElse}
131
- function isThenElse(bv, tv, ev) {
132
- function isFunction(value) { typeof value === 'function'; }
133
- if (arguments.length > 1) {
134
- var _then = isFunction(tv) ? tv(bv) : tv;
135
- if (arguments.length > 2) {
136
- var _else = isFunction(ev) ? tv(bv) : ev;
137
- return bv ? _then : _else;
138
- }
139
- return bv || _then;
140
- }
141
- return bv;
142
- }
143
- //# sourceMappingURL=map.extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map.extensions.js","sourceRoot":"","sources":["../../src/map.extensions.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAE1B,QAAA,aAAa,GAAG,IAAI,iBAAK,CAAC,GAAG,EAAE;IAC1C,CAAC,iBAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;;;;;;;;;WAkBG;QACH,KAAK,CAAC,KAAK;YACT,OAAO,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,YAAY,GAAG,CAAA;QACzE,CAAC;QAED;;;;;;;;;;;;;;;;;;;;WAoBG;QACH,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAC5D,CAAC;KACF;CACF,CAAC,CAAA;AAEF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,qBAAa,CAAC,OAAO,CAAA;AAEjD,QAAA,sBAAsB,GAAG,IAAI,iBAAK,CAAC,GAAG,CAAC,SAAS,EAAE;IAC7D,CAAC,iBAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,KAAK;YACP,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,KAAK,CAAC,SAAS,EAAE,SAAS;YACxB,OAAO,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAC3C,CAAC;QAED;;;;;;;;;;;;;WAaG;QACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrC,IACE,CAAC,MAAM,IAAI,KAAK,KAAK,UAAU,CAAC;oBAChC,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,UAAU,CAAC,EAChC,CAAC;oBACD,OAAO,GAAG,CAAA;gBACZ,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAA;AAEF,0EAA0E;AAC1E,2EAA2E;AAC3E,+BAA+B;AAC/B,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5B,SAAS,UAAU,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,CAAA,CAAC,CAAC;IAE1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACrE,CAAC;QAAC,OAAO,EAAE,IAAI,KAAK,CAAC;IACvB,CAAC;IAAC,OAAO,EAAE,CAAA;AACb,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * `Math` extensions. Building better worlds...actually just
3
- * providing some parity between Number and BigInt types for
4
- * now, but later, better worlds.
5
- *
6
- * @type {Patch}
7
- * @example
8
- * import { MathExtensions } from 'math.extension.js'
9
- *
10
- * MathExtensions.apply()
11
- * // Now the `Math` class has additional methods available
12
- */
13
- export const MathExtensions: Patch;
14
- import { Patch } from '@nejs/extension';
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MathExtensions = void 0;
4
- const extension_1 = require("@nejs/extension");
5
- /**
6
- * `Math` extensions. Building better worlds...actually just
7
- * providing some parity between Number and BigInt types for
8
- * now, but later, better worlds.
9
- *
10
- * @type {Patch}
11
- * @example
12
- * import { MathExtensions } from 'math.extension.js'
13
- *
14
- * MathExtensions.apply()
15
- * // Now the `Math` class has additional methods available
16
- */
17
- exports.MathExtensions = new extension_1.Patch(Math, {
18
- [extension_1.Patch.kMutablyHidden]: {
19
- /**
20
- * The Math.min() static method returns the smallest of the numbers given
21
- * as input parameters, or Infinity if there are no parameters.
22
- *
23
- * @param {bigint|number} values value1, …, valueN – Zero or more numbers
24
- * among which the lowest value will be selected and returned.
25
- * @returns {bigint|number|NaN|Infinity} The smallest of the given numbers.
26
- * Returns NaN if any of the parameters is or is converted into NaN or if
27
- * the types of numbers are mismatched (i.e., bigint vs. number types).
28
- * Returns Infinity if no parameters are provided.
29
- */
30
- min(...values) {
31
- const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
32
- if (!values.length)
33
- return Infinity;
34
- if (values.every(n => typeof n === 'bigint')) {
35
- return values.toSorted(sorter).at(0);
36
- }
37
- else if (values.every(n => typeof n === 'number')) {
38
- return values.toSorted(sorter).at(0);
39
- }
40
- else {
41
- return NaN;
42
- }
43
- },
44
- /**
45
- * The Math.max() static method returns the largest of the numbers given
46
- * as input parameters, or Infinity if there are no parameters.
47
- *
48
- * @param {bigint|number} values value1, …, valueN – Zero or more numbers
49
- * among which the largest value will be selected and returned.
50
- * @returns {bigint|number|NaN|Infinity} The largest of the given numbers.
51
- * Returns NaN if any of the parameters is or is converted into NaN or if
52
- * the types of numbers are mismatched (i.e., bigint vs. number types).
53
- * Returns Infinity if no parameters are provided.
54
- */
55
- max(...values) {
56
- const sorter = (l, r) => l < r ? -1 : l > r ? 1 : 0;
57
- if (!values.length)
58
- return Infinity;
59
- if (values.every(n => typeof n === 'bigint')) {
60
- return values.toSorted(sorter).at(-1);
61
- }
62
- else if (values.every(n => typeof n === 'number')) {
63
- return values.toSorted(sorter).at(-1);
64
- }
65
- else {
66
- return NaN;
67
- }
68
- },
69
- },
70
- });
71
- //# sourceMappingURL=math.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"math.extension.js","sourceRoot":"","sources":["../../src/math.extension.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC;;;;;;;;;;;GAWG;AACU,QAAA,cAAc,GAAG,IAAI,iBAAK,CAAC,IAAI,EAAE;IAC5C,CAAC,iBAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;WAUG;QACH,GAAG,CAAC,GAAG,MAAM;YACX,MAAM,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAChB,OAAO,QAAQ,CAAA;YAEjB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;iBACI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;iBACI,CAAC;gBACJ,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;QAED;;;;;;;;;;WAUG;QACH,GAAG,CAAC,GAAG,MAAM;YACX,MAAM,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAChB,OAAO,QAAQ,CAAA;YAEjB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC7C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;iBACI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,CAAC;iBACI,CAAC;gBACJ,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAA"}
@@ -1,44 +0,0 @@
1
- /**
2
- * A patch for the JavaScript built-in `Number` class that adds utility
3
- * methods without modifying the global namespace directly
4
- *
5
- * This patch includes methods for checking if a value is a number and
6
- * conditionally returning a value based on whether the supplied value is
7
- * a number or not.
8
- *
9
- * @type {Patch}
10
- * @property {Object} [Patch.kMutablyHidden] An object containing methods
11
- * that are hidden from enumeration and mutation
12
- *
13
- * @example
14
- * import { NumberExtensions } from 'number.extension.js'
15
- *
16
- * NumberExtensions.apply()
17
- * // Now the `Number` class has additional methods available
18
- */
19
- export const NumberExtensions: Patch;
20
- /**
21
- * `NumberPrototypeExtensions` provides a set of utility methods that
22
- * are added to the `Number` prototype. This allows all number instances
23
- * to access new functionality directly, enhancing their capabilities
24
- * beyond the standard `Number` class methods.
25
- *
26
- * These extensions are applied using the `Patch` class from
27
- * '@nejs/extension', ensuring that they do not interfere with the
28
- * global namespace or existing properties.
29
- *
30
- * The extensions include methods for checking if a value is a number,
31
- * conditionally returning values based on whether a value is a number,
32
- * and more, making number-related tasks more convenient and expressive.
33
- *
34
- * @example
35
- * const num = 42
36
- * console.log(num.isNumber) // Output: true
37
- *
38
- * const notNum = "123"
39
- * console.log(notNum.isNumber) // Output: false
40
- *
41
- * @type {Patch}
42
- */
43
- export const NumberPrototypeExtensions: Patch;
44
- import { Patch } from '@nejs/extension';