@nejs/basic-extensions 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/.vscode/settings.json +5 -0
  2. package/README.md +6250 -1574
  3. package/bin/version +100 -0
  4. package/dist/@nejs/basic-extensions.bundle.2.8.0.js +19 -0
  5. package/dist/@nejs/basic-extensions.bundle.2.8.0.js.map +7 -0
  6. package/dist/cjs/array.extensions.d.ts +39 -0
  7. package/dist/cjs/array.extensions.js +303 -0
  8. package/dist/cjs/array.extensions.js.map +1 -0
  9. package/dist/cjs/big.int.extension.d.ts +31 -0
  10. package/dist/cjs/big.int.extension.js +164 -0
  11. package/dist/cjs/big.int.extension.js.map +1 -0
  12. package/dist/cjs/{newClasses → classes}/asyncIterable.js +32 -44
  13. package/dist/cjs/classes/asyncIterable.js.map +1 -0
  14. package/dist/cjs/{newClasses → classes}/deferred.js +66 -138
  15. package/dist/cjs/classes/deferred.js.map +1 -0
  16. package/dist/cjs/{newClasses → classes}/descriptor.js +56 -90
  17. package/dist/cjs/classes/descriptor.js.map +1 -0
  18. package/dist/cjs/classes/index.d.ts +13 -0
  19. package/dist/cjs/classes/index.js +57 -0
  20. package/dist/cjs/classes/index.js.map +1 -0
  21. package/dist/cjs/classes/introspector.d.ts +20 -0
  22. package/dist/cjs/classes/introspector.js +130 -0
  23. package/dist/cjs/classes/introspector.js.map +1 -0
  24. package/dist/cjs/{newClasses → classes}/iterable.js +42 -63
  25. package/dist/cjs/classes/iterable.js.map +1 -0
  26. package/dist/cjs/classes/param.parser.d.ts +227 -0
  27. package/dist/cjs/classes/param.parser.js +242 -0
  28. package/dist/cjs/classes/param.parser.js.map +1 -0
  29. package/dist/cjs/classes/pluggable.proxy.d.ts +152 -0
  30. package/dist/cjs/classes/pluggable.proxy.js +444 -0
  31. package/dist/cjs/classes/pluggable.proxy.js.map +1 -0
  32. package/dist/cjs/{newClasses → classes}/refmap.js +18 -30
  33. package/dist/cjs/classes/refmap.js.map +1 -0
  34. package/dist/cjs/{newClasses → classes}/refset.js +28 -47
  35. package/dist/cjs/classes/refset.js.map +1 -0
  36. package/dist/cjs/classes/symkeys.d.ts +292 -0
  37. package/dist/cjs/classes/symkeys.js +424 -0
  38. package/dist/cjs/classes/symkeys.js.map +1 -0
  39. package/dist/cjs/classes/type.d.ts +56 -0
  40. package/dist/cjs/classes/type.js +405 -0
  41. package/dist/cjs/classes/type.js.map +1 -0
  42. package/dist/cjs/function.extensions.js +757 -0
  43. package/dist/cjs/function.extensions.js.map +1 -0
  44. package/dist/cjs/global.this.js +261 -0
  45. package/dist/cjs/global.this.js.map +1 -0
  46. package/dist/cjs/index.d.ts +4 -3
  47. package/dist/cjs/index.js +62 -32
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/json.extensions.d.ts +2 -0
  50. package/dist/cjs/json.extensions.js +108 -0
  51. package/dist/cjs/json.extensions.js.map +1 -0
  52. package/dist/{mjs/mapextensions.d.ts → cjs/map.extensions.d.ts} +1 -0
  53. package/dist/cjs/map.extensions.js +142 -0
  54. package/dist/cjs/map.extensions.js.map +1 -0
  55. package/dist/cjs/number.extension.d.ts +44 -0
  56. package/dist/cjs/number.extension.js +260 -0
  57. package/dist/cjs/number.extension.js.map +1 -0
  58. package/dist/cjs/object.extensions.d.ts +62 -0
  59. package/dist/cjs/object.extensions.js +1128 -0
  60. package/dist/cjs/object.extensions.js.map +1 -0
  61. package/dist/cjs/proxy.extensions.d.ts +2 -0
  62. package/dist/cjs/proxy.extensions.js +207 -0
  63. package/dist/cjs/proxy.extensions.js.map +1 -0
  64. package/dist/cjs/reflect.extensions.js +316 -0
  65. package/dist/cjs/reflect.extensions.js.map +1 -0
  66. package/dist/cjs/regular.expression.extensions.d.ts +2 -0
  67. package/dist/cjs/regular.expression.extensions.js +423 -0
  68. package/dist/cjs/regular.expression.extensions.js.map +1 -0
  69. package/dist/cjs/set.extensions.d.ts +40 -0
  70. package/dist/cjs/{setextensions.js → set.extensions.js} +150 -2
  71. package/dist/cjs/set.extensions.js.map +1 -0
  72. package/dist/cjs/string.extensions.js +661 -0
  73. package/dist/cjs/string.extensions.js.map +1 -0
  74. package/dist/{mjs/symbolextensions.d.ts → cjs/symbol.extensions.d.ts} +1 -0
  75. package/dist/cjs/symbol.extensions.js +380 -0
  76. package/dist/cjs/symbol.extensions.js.map +1 -0
  77. package/dist/cjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  78. package/dist/cjs/weakref.extensions.js.map +1 -0
  79. package/dist/mjs/array.extensions.d.ts +39 -0
  80. package/dist/mjs/array.extensions.js +300 -0
  81. package/dist/mjs/array.extensions.js.map +1 -0
  82. package/dist/mjs/big.int.extension.d.ts +31 -0
  83. package/dist/mjs/big.int.extension.js +161 -0
  84. package/dist/mjs/big.int.extension.js.map +1 -0
  85. package/dist/mjs/classes/asyncIterable.js.map +1 -0
  86. package/dist/mjs/classes/deferred.js.map +1 -0
  87. package/dist/mjs/{newClasses → classes}/descriptor.js +7 -4
  88. package/dist/mjs/classes/descriptor.js.map +1 -0
  89. package/dist/mjs/classes/index.d.ts +13 -0
  90. package/dist/mjs/classes/index.js +40 -0
  91. package/dist/mjs/classes/index.js.map +1 -0
  92. package/dist/mjs/classes/introspector.d.ts +20 -0
  93. package/dist/mjs/classes/introspector.js +126 -0
  94. package/dist/mjs/classes/introspector.js.map +1 -0
  95. package/dist/mjs/classes/iterable.js.map +1 -0
  96. package/dist/mjs/classes/param.parser.d.ts +227 -0
  97. package/dist/mjs/classes/param.parser.js +238 -0
  98. package/dist/mjs/classes/param.parser.js.map +1 -0
  99. package/dist/mjs/classes/pluggable.proxy.d.ts +152 -0
  100. package/dist/mjs/classes/pluggable.proxy.js +438 -0
  101. package/dist/mjs/classes/pluggable.proxy.js.map +1 -0
  102. package/dist/mjs/{newClasses → classes}/refmap.js +3 -3
  103. package/dist/mjs/classes/refmap.js.map +1 -0
  104. package/dist/mjs/classes/refset.js.map +1 -0
  105. package/dist/mjs/classes/symkeys.d.ts +292 -0
  106. package/dist/mjs/classes/symkeys.js +420 -0
  107. package/dist/mjs/classes/symkeys.js.map +1 -0
  108. package/dist/mjs/classes/type.d.ts +56 -0
  109. package/dist/mjs/classes/type.js +401 -0
  110. package/dist/mjs/classes/type.js.map +1 -0
  111. package/dist/mjs/function.extensions.js +754 -0
  112. package/dist/mjs/function.extensions.js.map +1 -0
  113. package/dist/mjs/global.this.js +258 -0
  114. package/dist/mjs/global.this.js.map +1 -0
  115. package/dist/mjs/index.d.ts +4 -3
  116. package/dist/mjs/index.js +49 -19
  117. package/dist/mjs/index.js.map +1 -1
  118. package/dist/mjs/json.extensions.d.ts +2 -0
  119. package/dist/mjs/json.extensions.js +105 -0
  120. package/dist/mjs/json.extensions.js.map +1 -0
  121. package/dist/{cjs/mapextensions.d.ts → mjs/map.extensions.d.ts} +1 -0
  122. package/dist/mjs/map.extensions.js +139 -0
  123. package/dist/mjs/map.extensions.js.map +1 -0
  124. package/dist/mjs/number.extension.d.ts +44 -0
  125. package/dist/mjs/number.extension.js +257 -0
  126. package/dist/mjs/number.extension.js.map +1 -0
  127. package/dist/mjs/object.extensions.d.ts +62 -0
  128. package/dist/mjs/object.extensions.js +1124 -0
  129. package/dist/mjs/object.extensions.js.map +1 -0
  130. package/dist/mjs/proxy.extensions.d.ts +2 -0
  131. package/dist/mjs/proxy.extensions.js +204 -0
  132. package/dist/mjs/proxy.extensions.js.map +1 -0
  133. package/dist/mjs/reflect.extensions.js +313 -0
  134. package/dist/mjs/reflect.extensions.js.map +1 -0
  135. package/dist/mjs/regular.expression.extensions.d.ts +2 -0
  136. package/dist/mjs/regular.expression.extensions.js +420 -0
  137. package/dist/mjs/regular.expression.extensions.js.map +1 -0
  138. package/dist/mjs/set.extensions.d.ts +40 -0
  139. package/dist/mjs/{setextensions.js → set.extensions.js} +149 -1
  140. package/dist/mjs/set.extensions.js.map +1 -0
  141. package/dist/mjs/string.extensions.js +658 -0
  142. package/dist/mjs/string.extensions.js.map +1 -0
  143. package/dist/{cjs/symbolextensions.d.ts → mjs/symbol.extensions.d.ts} +1 -0
  144. package/dist/mjs/symbol.extensions.js +377 -0
  145. package/dist/mjs/symbol.extensions.js.map +1 -0
  146. package/dist/mjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  147. package/dist/mjs/weakref.extensions.js.map +1 -0
  148. package/docs/index.html +24452 -5692
  149. package/package.json +7 -5
  150. package/src/array.extensions.js +322 -0
  151. package/src/big.int.extension.js +163 -0
  152. package/src/{newClasses → classes}/descriptor.js +16 -12
  153. package/src/classes/index.js +51 -0
  154. package/src/classes/introspector.js +167 -0
  155. package/src/classes/param.parser.js +253 -0
  156. package/src/classes/pluggable.proxy.js +485 -0
  157. package/src/{newClasses → classes}/refmap.js +5 -3
  158. package/src/classes/symkeys.js +464 -0
  159. package/src/classes/type.js +427 -0
  160. package/src/function.extensions.js +818 -0
  161. package/src/global.this.js +304 -0
  162. package/src/index.js +56 -23
  163. package/src/json.extensions.js +109 -0
  164. package/src/map.extensions.js +144 -0
  165. package/src/number.extension.js +273 -0
  166. package/src/object.extensions.js +1237 -0
  167. package/src/proxy.extensions.js +229 -0
  168. package/src/reflect.extensions.js +346 -0
  169. package/src/regular.expression.extensions.js +451 -0
  170. package/src/{setextensions.js → set.extensions.js} +151 -2
  171. package/src/string.extensions.js +734 -0
  172. package/src/symbol.extensions.js +389 -0
  173. package/tests/newClasses/refmap.test.js +3 -2
  174. package/tsconfig.base.json +5 -3
  175. package/tsconfig.cjs.json +2 -2
  176. package/tsconfig.esm.json +2 -2
  177. package/dist/@nejs/basic-extensions.bundle.2.6.0.js +0 -17
  178. package/dist/@nejs/basic-extensions.bundle.2.6.0.js.map +0 -7
  179. package/dist/cjs/arrayextensions.d.ts +0 -10
  180. package/dist/cjs/arrayextensions.js +0 -73
  181. package/dist/cjs/arrayextensions.js.map +0 -1
  182. package/dist/cjs/functionextensions.js +0 -202
  183. package/dist/cjs/functionextensions.js.map +0 -1
  184. package/dist/cjs/globals.js +0 -166
  185. package/dist/cjs/globals.js.map +0 -1
  186. package/dist/cjs/mapextensions.js +0 -32
  187. package/dist/cjs/mapextensions.js.map +0 -1
  188. package/dist/cjs/newClasses/asyncIterable.js.map +0 -1
  189. package/dist/cjs/newClasses/deferred.js.map +0 -1
  190. package/dist/cjs/newClasses/descriptor.js.map +0 -1
  191. package/dist/cjs/newClasses/iterable.js.map +0 -1
  192. package/dist/cjs/newClasses/refmap.js.map +0 -1
  193. package/dist/cjs/newClasses/refset.js.map +0 -1
  194. package/dist/cjs/objectextensions.d.ts +0 -11
  195. package/dist/cjs/objectextensions.js +0 -232
  196. package/dist/cjs/objectextensions.js.map +0 -1
  197. package/dist/cjs/reflectextensions.js +0 -111
  198. package/dist/cjs/reflectextensions.js.map +0 -1
  199. package/dist/cjs/setextensions.d.ts +0 -2
  200. package/dist/cjs/setextensions.js.map +0 -1
  201. package/dist/cjs/stringextensions.js +0 -158
  202. package/dist/cjs/stringextensions.js.map +0 -1
  203. package/dist/cjs/symbolextensions.js +0 -69
  204. package/dist/cjs/symbolextensions.js.map +0 -1
  205. package/dist/cjs/weakrefextensions.js.map +0 -1
  206. package/dist/mjs/arrayextensions.d.ts +0 -10
  207. package/dist/mjs/arrayextensions.js +0 -70
  208. package/dist/mjs/arrayextensions.js.map +0 -1
  209. package/dist/mjs/functionextensions.js +0 -199
  210. package/dist/mjs/functionextensions.js.map +0 -1
  211. package/dist/mjs/globals.js +0 -163
  212. package/dist/mjs/globals.js.map +0 -1
  213. package/dist/mjs/mapextensions.js +0 -29
  214. package/dist/mjs/mapextensions.js.map +0 -1
  215. package/dist/mjs/newClasses/asyncIterable.js.map +0 -1
  216. package/dist/mjs/newClasses/deferred.js.map +0 -1
  217. package/dist/mjs/newClasses/descriptor.js.map +0 -1
  218. package/dist/mjs/newClasses/iterable.js.map +0 -1
  219. package/dist/mjs/newClasses/refmap.js.map +0 -1
  220. package/dist/mjs/newClasses/refset.js.map +0 -1
  221. package/dist/mjs/objectextensions.d.ts +0 -11
  222. package/dist/mjs/objectextensions.js +0 -229
  223. package/dist/mjs/objectextensions.js.map +0 -1
  224. package/dist/mjs/reflectextensions.js +0 -108
  225. package/dist/mjs/reflectextensions.js.map +0 -1
  226. package/dist/mjs/setextensions.d.ts +0 -2
  227. package/dist/mjs/setextensions.js.map +0 -1
  228. package/dist/mjs/stringextensions.js +0 -155
  229. package/dist/mjs/stringextensions.js.map +0 -1
  230. package/dist/mjs/symbolextensions.js +0 -66
  231. package/dist/mjs/symbolextensions.js.map +0 -1
  232. package/dist/mjs/weakrefextensions.js.map +0 -1
  233. package/src/arrayextensions.js +0 -75
  234. package/src/functionextensions.js +0 -225
  235. package/src/globals.js +0 -196
  236. package/src/mapextensions.js +0 -32
  237. package/src/objectextensions.js +0 -256
  238. package/src/reflectextensions.js +0 -118
  239. package/src/stringextensions.js +0 -166
  240. package/src/symbolextensions.js +0 -69
  241. /package/dist/cjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  242. /package/dist/cjs/{newClasses → classes}/deferred.d.ts +0 -0
  243. /package/dist/cjs/{newClasses → classes}/descriptor.d.ts +0 -0
  244. /package/dist/cjs/{newClasses → classes}/iterable.d.ts +0 -0
  245. /package/dist/cjs/{newClasses → classes}/refmap.d.ts +0 -0
  246. /package/dist/cjs/{newClasses → classes}/refset.d.ts +0 -0
  247. /package/dist/cjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  248. /package/dist/cjs/{globals.d.ts → global.this.d.ts} +0 -0
  249. /package/dist/cjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  250. /package/dist/cjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  251. /package/dist/cjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  252. /package/dist/mjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  253. /package/dist/mjs/{newClasses → classes}/asyncIterable.js +0 -0
  254. /package/dist/mjs/{newClasses → classes}/deferred.d.ts +0 -0
  255. /package/dist/mjs/{newClasses → classes}/deferred.js +0 -0
  256. /package/dist/mjs/{newClasses → classes}/descriptor.d.ts +0 -0
  257. /package/dist/mjs/{newClasses → classes}/iterable.d.ts +0 -0
  258. /package/dist/mjs/{newClasses → classes}/iterable.js +0 -0
  259. /package/dist/mjs/{newClasses → classes}/refmap.d.ts +0 -0
  260. /package/dist/mjs/{newClasses → classes}/refset.d.ts +0 -0
  261. /package/dist/mjs/{newClasses → classes}/refset.js +0 -0
  262. /package/dist/mjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  263. /package/dist/mjs/{globals.d.ts → global.this.d.ts} +0 -0
  264. /package/dist/mjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  265. /package/dist/mjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  266. /package/dist/mjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  267. /package/src/{newClasses → classes}/asyncIterable.js +0 -0
  268. /package/src/{newClasses → classes}/deferred.js +0 -0
  269. /package/src/{newClasses → classes}/iterable.js +0 -0
  270. /package/src/{newClasses → classes}/refset.js +0 -0
  271. /package/src/{weakrefextensions.js → weakref.extensions.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.extensions.js","sourceRoot":"","sources":["../../src/string.extensions.js"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@
7
7
  * utility functions.
8
8
  */
9
9
  export const SymbolExtensions: Patch;
10
+ export const SymbolPrototypeExtensions: Patch;
10
11
  import { Patch } from '@nejs/extension';
@@ -0,0 +1,380 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymbolPrototypeExtensions = exports.SymbolExtensions = void 0;
4
+ const extension_1 = require("@nejs/extension");
5
+ const symkeys_js_1 = require("./classes/symkeys.js");
6
+ const json_extensions_js_1 = require("./json.extensions.js");
7
+ const JSONToggle = new extension_1.PatchToggle(json_extensions_js_1.JSONExtensions);
8
+ /**
9
+ * `SymbolExtensions` is a patch for the JavaScript built-in `Symbol` class. It
10
+ * adds utility methods to the `Symbol` class without modifying the global namespace
11
+ * directly. This patch includes methods for key validation, object type checking,
12
+ * and retrieving the string tag of an object. These methods are useful for
13
+ * enhancing the capabilities of the standard `Symbol` class with additional
14
+ * utility functions.
15
+ */
16
+ exports.SymbolExtensions = new extension_1.Patch(Symbol, {
17
+ add(named, associatedData = {}) {
18
+ return this.keys.add(named, associatedData);
19
+ },
20
+ deleteData(forSymbol, replaceWith = undefined) {
21
+ return this.keys.deleteData(forSymbol, replaceWith);
22
+ },
23
+ hasData(forSymbol) {
24
+ return this.keys.hasData(forSymbol);
25
+ },
26
+ /**
27
+ * The `isSymbol` method does exactly what one would it expect. It returns
28
+ * true if the string matches typeof or instanceof as a symbol.
29
+ *
30
+ * @param {*} value checks to see if the `value` is a string
31
+ * @returns {boolean} `true` if it is a `Symbol`, `false` otherwise
32
+ */
33
+ isSymbol(value) {
34
+ return value && (typeof value === 'symbol');
35
+ },
36
+ /**
37
+ * Returns true if the supplied value is a Symbol created using
38
+ * `Symbol.for()`.
39
+ *
40
+ * @param {any} value assumption is that the supplied value is of type
41
+ * 'symbol' however, unless `allowOnlySymbols` is set to `true`, `false`
42
+ * will be returned for any non-symbol values.
43
+ * @param {boolean} allowOnlySymbols true if an error should be thrown
44
+ * if the supplied value is not of type 'symbol'
45
+ * @returns true if the symbol is registered, meaning, none of the spec
46
+ * static symbols (`toStringTag`, `iterator`, etc...), and no symbols
47
+ * created by passing a value directly to the Symbol function, such as
48
+ * `Symbol('name')`
49
+ */
50
+ isRegistered(value, allowOnlySymbols = false) {
51
+ if (!Symbol.isSymbol(value)) {
52
+ if (allowOnlySymbols) {
53
+ throw new TypeError('allowOnlySymbols specified; value is not a symbol');
54
+ }
55
+ return false;
56
+ }
57
+ return Symbol.keyFor(value) !== undefined;
58
+ },
59
+ /**
60
+ * A function that returns true if the symbol is not registered, meaning,
61
+ * any of the spec static symbols (`toStringTag`, `iterator`, etc...), and
62
+ * any symbols created by passing a value directly to the `Symbol` function,
63
+ * such as `Symbol('name')`.
64
+ *
65
+ * @param {any} value assumption is that the supplied value is of type
66
+ * 'symbol' however, unless allowOnlySymbols is set to true, false will
67
+ * be returned for any non-symbol values.
68
+ * @param {boolean} allowOnlySymbols true if an error should be thrown
69
+ * if the supplied value is not of type 'symbol'
70
+ * @returns true if the symbol is not registered, meaning, any of the
71
+ * spec static symbols (`toStringTag`, `iterator`, etc...), and any symbols
72
+ * created by passing a value directly to the `Symbol` function, such as
73
+ * `Symbol('name')`
74
+ * @returns true if the `value` in question is both a `symbol` and has
75
+ * returns `undefined` if passed to `Symbol.keyFor`
76
+ */
77
+ isNonRegistered(value, allowOnlySymbols = false) {
78
+ return !Symbol.isRegistered(value, allowOnlySymbols);
79
+ },
80
+ /**
81
+ * `keys` is an instance of the `Symkeys` class, initialized with the
82
+ * domain 'nejs'. The `Symkeys` class provides a way to easily generate
83
+ * Symbol.for elements that follow particular pattern. Symkeys also
84
+ * allows associated data storage with each generated key.
85
+ *
86
+ * @type {Symkeys}
87
+ * @see {@link SymKeys}
88
+ * @example
89
+ * // Returns something like Symbol.for('@nejs.prototype #rwiy2o905d')
90
+ * const kOriginal = Symbol.keys.add('prototypes')
91
+ *
92
+ * // Which can be used to retrieve and fetch data associated with that key
93
+ * // The value stored is an array by default, but can be anything. It can
94
+ * // be accessed one property at a time
95
+ * Symbol.keys[kOriginal].original = Object.prototype
96
+ * Symbol.keys[kOriginal].modified = Object.create(Object.prototype, ...)
97
+ *
98
+ * // Or wholesale replaced
99
+ * Symbol.keys[kOriginal] = [Object.prototype, Array.prototype]
100
+ *
101
+ * // But if all Symbol Extensions are in place, including prototype add-ons
102
+ * kOriginal.data.original = Object.prototype // ...and...
103
+ * kOriginal.data = [Object.prototype, Array.prototype] // ...both work
104
+ */
105
+ keys: new symkeys_js_1.Symkeys('nejs'),
106
+ setData(forSymbol, value) {
107
+ this.keys.setData(forSymbol, value);
108
+ },
109
+ /**
110
+ * Creates a new Symbol with the given name and optional data. If data
111
+ * is provided, it will be stringified and appended to the symbol's
112
+ * name. This method is useful for creating unique symbols that carry
113
+ * additional metadata.
114
+ *
115
+ * @param {string} name The name of the symbol.
116
+ * @param {*} [data] Optional data to be associated with the symbol.
117
+ * @returns {symbol} A new symbol created with Symbol.for(), using the
118
+ * provided name and stringified data (if provided).
119
+ *
120
+ * @example
121
+ * const symbolWithData = Symbol.withData('mySymbol', { foo: 'bar' })
122
+ * console.log(symbolWithData.toString())
123
+ * // Output: "Symbol(mySymbol {"foo":"bar"})"
124
+ *
125
+ * @example
126
+ * const symbolWithoutData = Symbol.withData('mySymbol')
127
+ * console.log(symbolWithoutData.toString())
128
+ * // Output: "Symbol(mySymbol)"
129
+ */
130
+ withData(name, data) {
131
+ return data !== undefined
132
+ ? Symbol.for(`${name} ${JSON.stringify(data)}`)
133
+ : Symbol.for(name);
134
+ },
135
+ });
136
+ exports.SymbolPrototypeExtensions = new extension_1.Patch(Symbol.prototype, {
137
+ [extension_1.Patch.kMutablyHidden]: {
138
+ /**
139
+ * Returns an object representation of the symbol instance.
140
+ *
141
+ * This getter method creates and returns an object that wraps the
142
+ * symbol instance, allowing it to be treated as an object. The
143
+ * returned object is created using the `Object()` constructor,
144
+ * which takes the symbol instance as its argument.
145
+ *
146
+ * @type {Object}
147
+ * @readonly
148
+ *
149
+ * @example
150
+ * const sym = Symbol('example')
151
+ * console.log(typeof sym) // 'symbol'
152
+ * console.log(typeof sym.instance) // 'object'
153
+ */
154
+ get instance() {
155
+ return Object(this);
156
+ },
157
+ /**
158
+ * Getter method for retrieving the data associated with a symbol.
159
+ *
160
+ * This method first checks if the symbol is a Symkey created symbol
161
+ * by checking the existence of Symbol.keys and if the symbol's
162
+ * description matches the Symkey pattern. If it is a Symkey symbol,
163
+ * it attempts to fetch its associated data.
164
+ *
165
+ * NOTE: Symkey data is returned as its value directly, this is because
166
+ * it is stored in a {@link Map}. Embedded JSON data might be expensive
167
+ * to parse and as such a function is returned when data is accessed that
168
+ * needs to be invoked in order to decode its contents. See
169
+ * `{@link mightHaveEmbeddedJSON}` for more information.
170
+ *
171
+ * If the symbol is not a Symkey symbol or if no data is associated
172
+ * with it, the method attempts to parse the symbol's description as
173
+ * JSON and returns the first valid JSON object found.
174
+ *
175
+ * If no valid JSON object is found in the description, the method
176
+ * returns undefined.
177
+ *
178
+ * @type {Object|Function}
179
+ * @readonly
180
+ *
181
+ * @example
182
+ * const keys = new Symkeys
183
+ * const key = keys.add('example', {count: 0})
184
+ * const data = key.data // note this isn't function!!
185
+ * const count = data.count
186
+ *
187
+ * @example
188
+ * const sym = Symbol.for('fun {"name":"Brie"}')
189
+ * let json = sym.data() // {name: 'Brie'} JS object
190
+ *
191
+ * @example
192
+ * const sym = Symbol('mySymbol')
193
+ * let data = sym.data() // undefined
194
+ */
195
+ get data() {
196
+ if (Symbol?.keys && symkeys_js_1.Symkeys.isSymkey(this)) {
197
+ const possibleData = Symbol.keys[this];
198
+ if (possibleData) {
199
+ return possibleData;
200
+ }
201
+ }
202
+ let result = undefined;
203
+ let revertToggle = false;
204
+ if (!json_extensions_js_1.JSONExtensions.applied) {
205
+ JSONToggle.start();
206
+ revertToggle = true;
207
+ }
208
+ if (JSON.mightContain(this.description)) {
209
+ try {
210
+ result = JSON.extractFrom(this.description);
211
+ }
212
+ catch (ignore) { }
213
+ }
214
+ if (revertToggle) {
215
+ JSONToggle.stop();
216
+ }
217
+ return result;
218
+ },
219
+ /**
220
+ * Sets the data associated with a symbol.
221
+ *
222
+ * This setter method checks if the symbol is a Symkey and if it has
223
+ * associated data. If both conditions are met, it sets the data of the
224
+ * symbol to the provided value and returns true. If the conditions are
225
+ * not met, it simply returns false.
226
+ *
227
+ * While Symbols have been upgraded to also support embedded JSON data
228
+ * with this extension, symbol descriptions are static. Non Symkey symbols
229
+ * do not associated their data outside of a symbol, and cannot be changed,
230
+ * there new data cannot be set on them.
231
+ *
232
+ * @param {any} value - The value to be set as the symbol's data.
233
+ * @returns {boolean} - Returns true if the data was successfully set,
234
+ * false otherwise.
235
+ *
236
+ * @example
237
+ * const sym = Symbol.for('fun {"name":"Brie"}')
238
+ * Symkeys.isSymkey(sym) // false; not in Symkey format
239
+ * let json = sym.data() // {name: 'Brie'} JS object
240
+ * sym.data = JSON.stringify({name: 'Jane'}) // fails silently
241
+ * json = sym.data() // {name: 'Brie'} is hard-coded in description
242
+ *
243
+ * @example
244
+ * const sym = Symbol('mySymbol')
245
+ * Symkeys.isSymkey(sym) // false; not in Symkey format
246
+ * Symkeys.hasData(sym) // false
247
+ * sym.data = { name: 'John', age: 30 } // will fail silently
248
+ * Symkeys.hasData(sym) // still false
249
+ *
250
+ * // Now let's create a Symkey with data
251
+ * const symWithData = Symkeys.create('mySymbolWithData',
252
+ * { name: 'Jane', age: 25 })
253
+ * Symkeys.isSymkey(symWithData) // true
254
+ * Symkeys.hasData(symWithData) // true
255
+ * symWithData.data = { name: 'Jane', age: 26 } // will succeed
256
+ * Symkeys.getData(symWithData) // returns { name: 'Jane', age: 26 }
257
+ */
258
+ set data(value) {
259
+ if (symkeys_js_1.Symkeys.isSymkey(this) && symkeys_js_1.Symkeys.hasData(this)) {
260
+ Symbol.keys.setData(this, value);
261
+ }
262
+ },
263
+ /**
264
+ * Checks if the symbol might have embedded JSON data.
265
+ *
266
+ * This getter method checks if the symbol's description might contain
267
+ * JSON data and if the data property of the symbol is a function. If both
268
+ * conditions are met, it returns true, otherwise it returns false.
269
+ *
270
+ * @returns {boolean} - Returns true if the symbol might have embedded
271
+ * JSON, false otherwise.
272
+ *
273
+ * @example
274
+ * const sym = Symbol.for('fun {"name":"Brie"}')
275
+ * console.log(sym.mightHaveEmbeddedJSON) // Output: true
276
+ *
277
+ * @example
278
+ * const sym = Symbol('mySymbol')
279
+ * console.log(sym.mightHaveEmbeddedJSON) // Output: false
280
+ */
281
+ get mightHaveEmbeddedJSON() {
282
+ return mightContain(this.description);
283
+ },
284
+ get sgrString() {
285
+ let revert = false;
286
+ let detail = undefined;
287
+ let { sgr } = String;
288
+ if (!sgr) {
289
+ sgr = (string, ...args) => string;
290
+ }
291
+ if (!json_extensions_js_1.JSONExtensions.applied) {
292
+ JSONToggle.start();
293
+ revert = true;
294
+ }
295
+ if ((detail = JSON.mightContain(this.description, true))) {
296
+ let jsonText = detail[2][0];
297
+ let index = detail[1];
298
+ if (~index && jsonText && jsonText.length > 30) {
299
+ let desc = this.description;
300
+ let newDescription = [
301
+ sgr(`Symbol.for(${desc.slice(0, index)}`, 'green'),
302
+ sgr(jsonText.slice(0, 10), 'di'),
303
+ '...',
304
+ sgr(jsonText.slice(-5), 'di'),
305
+ sgr(`${desc.slice(index + jsonText.length + 1)})`, 'green'),
306
+ ].join('');
307
+ if (revert) {
308
+ JSONToggle.stop();
309
+ }
310
+ return `${newDescription}`;
311
+ }
312
+ }
313
+ if (revert) {
314
+ JSONToggle.stop();
315
+ }
316
+ return newDescription;
317
+ },
318
+ /**
319
+ * Custom inspect method for Node.js util.inspect.
320
+ *
321
+ * NOTE: this will only apply if looking at an instance of Symbol,
322
+ * sadly; {@see SymbolPrototypeExtensions.instance}
323
+ *
324
+ * This method is used by Node.js util.inspect to provide a custom
325
+ * representation of the symbol when inspected. It checks if the
326
+ * symbol's description might contain JSON data and if so, it
327
+ * truncates the JSON data in the description to a maximum of 30
328
+ * characters and formats the output with colors using the `sgr`
329
+ * function from the `String` object.
330
+ *
331
+ * @param {number} depth - The current depth of the recursive
332
+ * inspection.
333
+ * @param {Object} options - The options object passed to
334
+ * util.inspect.
335
+ * @param {Function} inspect - The original util.inspect function.
336
+ *
337
+ * @returns {string} - The formatted representation of the symbol.
338
+ *
339
+ * @example
340
+ * const sym = Symbol.for('fun {"name":"John Doe"}')
341
+ * console.log(util.inspect(sym))
342
+ * // Output: Symbol.for(fun {"name":"John ...hn Doe"})
343
+ */
344
+ [Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {
345
+ let revert = false;
346
+ let detail = undefined;
347
+ let { sgr } = String;
348
+ if (!sgr) {
349
+ sgr = (string, ...args) => string;
350
+ }
351
+ if (!json_extensions_js_1.JSONExtensions.applied) {
352
+ JSONToggle.start();
353
+ revert = true;
354
+ }
355
+ if ((detail = JSON.mightContain(this.description, true))) {
356
+ let jsonText = detail[2][0];
357
+ let index = detail[1];
358
+ if (~index && jsonText && jsonText.length > 30) {
359
+ let desc = this.description;
360
+ let newDescription = [
361
+ sgr(`Symbol.for(${desc.slice(0, index)}`, 'green'),
362
+ sgr(jsonText.slice(0, 10), 'di'),
363
+ '...',
364
+ sgr(jsonText.slice(-5), 'di'),
365
+ sgr(`${desc.slice(index + jsonText.length + 1)})`, 'green'),
366
+ ].join('');
367
+ if (revert) {
368
+ JSONToggle.stop();
369
+ }
370
+ return `${newDescription}`;
371
+ }
372
+ }
373
+ if (revert) {
374
+ JSONToggle.stop();
375
+ }
376
+ return inspect(this, { colors: true });
377
+ },
378
+ },
379
+ });
380
+ //# sourceMappingURL=symbol.extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol.extensions.js","sourceRoot":"","sources":["../../src/symbol.extensions.js"],"names":[],"mappings":"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"}
@@ -16,4 +16,4 @@ exports.WeakRefExtensions = new extension_1.Patch(WeakRef, {
16
16
  (value === null || value === undefined));
17
17
  },
18
18
  });
19
- //# sourceMappingURL=weakrefextensions.js.map
19
+ //# sourceMappingURL=weakref.extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weakref.extensions.js","sourceRoot":"","sources":["../../src/weakref.extensions.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAE1B,QAAA,iBAAiB,GAAG,IAAI,iBAAK,CAAC,OAAO,EAAE;IAClD;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK;QACpB,OAAO,CAAC,CACN,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;YACjE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;YACxD,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CACxC,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * `ArrayExtensions` is a constant that applies a patch to the global
3
+ * `Array` constructor. This patch extends the `Array` with additional
4
+ * methods and properties, enhancing its functionality.
5
+ *
6
+ * The `Patch` function takes two arguments: the target object to be patched
7
+ * (in this case, `Array`), and an object containing the methods and
8
+ * properties to be added to the target object.
9
+ *
10
+ * @example
11
+ * // Using a method added by ArrayExtensions
12
+ * const arr = [1, 2, 3];
13
+ * console.log(Array.ifArray(arr, 'Array', 'Not Array')); // Output: 'Array'
14
+ *
15
+ * @const
16
+ * @type {Patch}
17
+ * @memberof module:array.extensions
18
+ */
19
+ export const ArrayExtensions: Patch;
20
+ /**
21
+ * `ArrayPrototypeExtensions` is a constant that applies a patch to the
22
+ * Array prototype. This patch extends the Array prototype with additional
23
+ * methods and properties, enhancing its functionality.
24
+ *
25
+ * The `Patch` function takes two arguments: the target object to be patched
26
+ * (in this case, `Array.prototype`), and an object containing the methods
27
+ * and properties to be added to the target object.
28
+ *
29
+ * @example
30
+ * // Using a method added by ArrayPrototypeExtensions
31
+ * const arr = [1, 2, 3];
32
+ * console.log(arr.ifArray('Array', 'Not Array')); // Output: 'Array'
33
+ *
34
+ * @const
35
+ * @type {Patch}
36
+ * @memberof module:array.extensions
37
+ */
38
+ export const ArrayPrototypeExtensions: Patch;
39
+ import { Patch } from '@nejs/extension';