@nejs/basic-extensions 2.7.0 → 2.8.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 (270) hide show
  1. package/.vscode/settings.json +5 -0
  2. package/README.md +6129 -1574
  3. package/dist/@nejs/basic-extensions.bundle.2.7.0.js +19 -0
  4. package/dist/@nejs/basic-extensions.bundle.2.7.0.js.map +7 -0
  5. package/dist/cjs/array.extensions.d.ts +39 -0
  6. package/dist/cjs/array.extensions.js +303 -0
  7. package/dist/cjs/array.extensions.js.map +1 -0
  8. package/dist/cjs/big.int.extension.d.ts +31 -0
  9. package/dist/cjs/big.int.extension.js +164 -0
  10. package/dist/cjs/big.int.extension.js.map +1 -0
  11. package/dist/cjs/{newClasses → classes}/asyncIterable.js +32 -44
  12. package/dist/cjs/classes/asyncIterable.js.map +1 -0
  13. package/dist/cjs/{newClasses → classes}/deferred.js +66 -138
  14. package/dist/cjs/classes/deferred.js.map +1 -0
  15. package/dist/cjs/{newClasses → classes}/descriptor.js +56 -90
  16. package/dist/cjs/classes/descriptor.js.map +1 -0
  17. package/dist/cjs/classes/index.d.ts +13 -0
  18. package/dist/cjs/classes/index.js +57 -0
  19. package/dist/cjs/classes/index.js.map +1 -0
  20. package/dist/cjs/classes/introspector.d.ts +20 -0
  21. package/dist/cjs/classes/introspector.js +130 -0
  22. package/dist/cjs/classes/introspector.js.map +1 -0
  23. package/dist/cjs/{newClasses → classes}/iterable.js +42 -63
  24. package/dist/cjs/classes/iterable.js.map +1 -0
  25. package/dist/cjs/classes/param.parser.d.ts +227 -0
  26. package/dist/cjs/classes/param.parser.js +242 -0
  27. package/dist/cjs/classes/param.parser.js.map +1 -0
  28. package/dist/cjs/classes/pluggable.proxy.d.ts +152 -0
  29. package/dist/cjs/classes/pluggable.proxy.js +444 -0
  30. package/dist/cjs/classes/pluggable.proxy.js.map +1 -0
  31. package/dist/cjs/{newClasses → classes}/refmap.js +18 -30
  32. package/dist/cjs/classes/refmap.js.map +1 -0
  33. package/dist/cjs/{newClasses → classes}/refset.js +28 -47
  34. package/dist/cjs/classes/refset.js.map +1 -0
  35. package/dist/cjs/classes/symkeys.d.ts +292 -0
  36. package/dist/cjs/classes/symkeys.js +424 -0
  37. package/dist/cjs/classes/symkeys.js.map +1 -0
  38. package/dist/cjs/classes/type.d.ts +56 -0
  39. package/dist/cjs/classes/type.js +405 -0
  40. package/dist/cjs/classes/type.js.map +1 -0
  41. package/dist/cjs/function.extensions.js +757 -0
  42. package/dist/cjs/function.extensions.js.map +1 -0
  43. package/dist/cjs/global.this.js +261 -0
  44. package/dist/cjs/global.this.js.map +1 -0
  45. package/dist/cjs/index.d.ts +4 -3
  46. package/dist/cjs/index.js +62 -32
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/json.extensions.d.ts +2 -0
  49. package/dist/cjs/json.extensions.js +107 -0
  50. package/dist/cjs/json.extensions.js.map +1 -0
  51. package/dist/{mjs/mapextensions.d.ts → cjs/map.extensions.d.ts} +1 -0
  52. package/dist/cjs/map.extensions.js +142 -0
  53. package/dist/cjs/map.extensions.js.map +1 -0
  54. package/dist/cjs/number.extension.d.ts +44 -0
  55. package/dist/cjs/number.extension.js +260 -0
  56. package/dist/cjs/number.extension.js.map +1 -0
  57. package/dist/cjs/object.extensions.d.ts +62 -0
  58. package/dist/cjs/object.extensions.js +1116 -0
  59. package/dist/cjs/object.extensions.js.map +1 -0
  60. package/dist/cjs/proxy.extensions.d.ts +2 -0
  61. package/dist/cjs/proxy.extensions.js +207 -0
  62. package/dist/cjs/proxy.extensions.js.map +1 -0
  63. package/dist/cjs/reflect.extensions.js +316 -0
  64. package/dist/cjs/reflect.extensions.js.map +1 -0
  65. package/dist/cjs/regular.expression.extensions.d.ts +2 -0
  66. package/dist/cjs/regular.expression.extensions.js +423 -0
  67. package/dist/cjs/regular.expression.extensions.js.map +1 -0
  68. package/dist/cjs/set.extensions.d.ts +40 -0
  69. package/dist/cjs/{setextensions.js → set.extensions.js} +150 -2
  70. package/dist/cjs/set.extensions.js.map +1 -0
  71. package/dist/cjs/string.extensions.js +471 -0
  72. package/dist/cjs/string.extensions.js.map +1 -0
  73. package/dist/{mjs/symbolextensions.d.ts → cjs/symbol.extensions.d.ts} +1 -0
  74. package/dist/cjs/symbol.extensions.js +259 -0
  75. package/dist/cjs/symbol.extensions.js.map +1 -0
  76. package/dist/cjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  77. package/dist/cjs/weakref.extensions.js.map +1 -0
  78. package/dist/mjs/array.extensions.d.ts +39 -0
  79. package/dist/mjs/array.extensions.js +300 -0
  80. package/dist/mjs/array.extensions.js.map +1 -0
  81. package/dist/mjs/big.int.extension.d.ts +31 -0
  82. package/dist/mjs/big.int.extension.js +161 -0
  83. package/dist/mjs/big.int.extension.js.map +1 -0
  84. package/dist/mjs/classes/asyncIterable.js.map +1 -0
  85. package/dist/mjs/classes/deferred.js.map +1 -0
  86. package/dist/mjs/{newClasses → classes}/descriptor.js +7 -4
  87. package/dist/mjs/classes/descriptor.js.map +1 -0
  88. package/dist/mjs/classes/index.d.ts +13 -0
  89. package/dist/mjs/classes/index.js +40 -0
  90. package/dist/mjs/classes/index.js.map +1 -0
  91. package/dist/mjs/classes/introspector.d.ts +20 -0
  92. package/dist/mjs/classes/introspector.js +126 -0
  93. package/dist/mjs/classes/introspector.js.map +1 -0
  94. package/dist/mjs/classes/iterable.js.map +1 -0
  95. package/dist/mjs/classes/param.parser.d.ts +227 -0
  96. package/dist/mjs/classes/param.parser.js +238 -0
  97. package/dist/mjs/classes/param.parser.js.map +1 -0
  98. package/dist/mjs/classes/pluggable.proxy.d.ts +152 -0
  99. package/dist/mjs/classes/pluggable.proxy.js +438 -0
  100. package/dist/mjs/classes/pluggable.proxy.js.map +1 -0
  101. package/dist/mjs/{newClasses → classes}/refmap.js +3 -3
  102. package/dist/mjs/classes/refmap.js.map +1 -0
  103. package/dist/mjs/classes/refset.js.map +1 -0
  104. package/dist/mjs/classes/symkeys.d.ts +292 -0
  105. package/dist/mjs/classes/symkeys.js +420 -0
  106. package/dist/mjs/classes/symkeys.js.map +1 -0
  107. package/dist/mjs/classes/type.d.ts +56 -0
  108. package/dist/mjs/classes/type.js +401 -0
  109. package/dist/mjs/classes/type.js.map +1 -0
  110. package/dist/mjs/function.extensions.js +754 -0
  111. package/dist/mjs/function.extensions.js.map +1 -0
  112. package/dist/mjs/global.this.js +258 -0
  113. package/dist/mjs/global.this.js.map +1 -0
  114. package/dist/mjs/index.d.ts +4 -3
  115. package/dist/mjs/index.js +49 -19
  116. package/dist/mjs/index.js.map +1 -1
  117. package/dist/mjs/json.extensions.d.ts +2 -0
  118. package/dist/mjs/json.extensions.js +104 -0
  119. package/dist/mjs/json.extensions.js.map +1 -0
  120. package/dist/{cjs/mapextensions.d.ts → mjs/map.extensions.d.ts} +1 -0
  121. package/dist/mjs/map.extensions.js +139 -0
  122. package/dist/mjs/map.extensions.js.map +1 -0
  123. package/dist/mjs/number.extension.d.ts +44 -0
  124. package/dist/mjs/number.extension.js +257 -0
  125. package/dist/mjs/number.extension.js.map +1 -0
  126. package/dist/mjs/object.extensions.d.ts +62 -0
  127. package/dist/mjs/object.extensions.js +1112 -0
  128. package/dist/mjs/object.extensions.js.map +1 -0
  129. package/dist/mjs/proxy.extensions.d.ts +2 -0
  130. package/dist/mjs/proxy.extensions.js +204 -0
  131. package/dist/mjs/proxy.extensions.js.map +1 -0
  132. package/dist/mjs/reflect.extensions.js +313 -0
  133. package/dist/mjs/reflect.extensions.js.map +1 -0
  134. package/dist/mjs/regular.expression.extensions.d.ts +2 -0
  135. package/dist/mjs/regular.expression.extensions.js +420 -0
  136. package/dist/mjs/regular.expression.extensions.js.map +1 -0
  137. package/dist/mjs/set.extensions.d.ts +40 -0
  138. package/dist/mjs/{setextensions.js → set.extensions.js} +149 -1
  139. package/dist/mjs/set.extensions.js.map +1 -0
  140. package/dist/mjs/string.extensions.js +468 -0
  141. package/dist/mjs/string.extensions.js.map +1 -0
  142. package/dist/{cjs/symbolextensions.d.ts → mjs/symbol.extensions.d.ts} +1 -0
  143. package/dist/mjs/symbol.extensions.js +256 -0
  144. package/dist/mjs/symbol.extensions.js.map +1 -0
  145. package/dist/mjs/{weakrefextensions.js → weakref.extensions.js} +1 -1
  146. package/dist/mjs/weakref.extensions.js.map +1 -0
  147. package/docs/index.html +24045 -5805
  148. package/package.json +6 -4
  149. package/src/array.extensions.js +322 -0
  150. package/src/big.int.extension.js +163 -0
  151. package/src/{newClasses → classes}/descriptor.js +16 -12
  152. package/src/classes/index.js +51 -0
  153. package/src/classes/introspector.js +167 -0
  154. package/src/classes/param.parser.js +253 -0
  155. package/src/classes/pluggable.proxy.js +485 -0
  156. package/src/{newClasses → classes}/refmap.js +5 -3
  157. package/src/classes/symkeys.js +464 -0
  158. package/src/classes/type.js +427 -0
  159. package/src/function.extensions.js +818 -0
  160. package/src/global.this.js +304 -0
  161. package/src/index.js +56 -23
  162. package/src/json.extensions.js +108 -0
  163. package/src/map.extensions.js +144 -0
  164. package/src/number.extension.js +273 -0
  165. package/src/object.extensions.js +1222 -0
  166. package/src/proxy.extensions.js +229 -0
  167. package/src/reflect.extensions.js +346 -0
  168. package/src/regular.expression.extensions.js +451 -0
  169. package/src/{setextensions.js → set.extensions.js} +151 -2
  170. package/src/string.extensions.js +515 -0
  171. package/src/symbol.extensions.js +268 -0
  172. package/tests/newClasses/refmap.test.js +3 -2
  173. package/tsconfig.base.json +5 -3
  174. package/tsconfig.cjs.json +2 -2
  175. package/tsconfig.esm.json +2 -2
  176. package/dist/@nejs/basic-extensions.bundle.2.6.0.js +0 -17
  177. package/dist/@nejs/basic-extensions.bundle.2.6.0.js.map +0 -7
  178. package/dist/cjs/arrayextensions.d.ts +0 -10
  179. package/dist/cjs/arrayextensions.js +0 -73
  180. package/dist/cjs/arrayextensions.js.map +0 -1
  181. package/dist/cjs/functionextensions.js +0 -202
  182. package/dist/cjs/functionextensions.js.map +0 -1
  183. package/dist/cjs/globals.js +0 -166
  184. package/dist/cjs/globals.js.map +0 -1
  185. package/dist/cjs/mapextensions.js +0 -32
  186. package/dist/cjs/mapextensions.js.map +0 -1
  187. package/dist/cjs/newClasses/asyncIterable.js.map +0 -1
  188. package/dist/cjs/newClasses/deferred.js.map +0 -1
  189. package/dist/cjs/newClasses/descriptor.js.map +0 -1
  190. package/dist/cjs/newClasses/iterable.js.map +0 -1
  191. package/dist/cjs/newClasses/refmap.js.map +0 -1
  192. package/dist/cjs/newClasses/refset.js.map +0 -1
  193. package/dist/cjs/objectextensions.d.ts +0 -11
  194. package/dist/cjs/objectextensions.js +0 -232
  195. package/dist/cjs/objectextensions.js.map +0 -1
  196. package/dist/cjs/reflectextensions.js +0 -111
  197. package/dist/cjs/reflectextensions.js.map +0 -1
  198. package/dist/cjs/setextensions.d.ts +0 -2
  199. package/dist/cjs/setextensions.js.map +0 -1
  200. package/dist/cjs/stringextensions.js +0 -158
  201. package/dist/cjs/stringextensions.js.map +0 -1
  202. package/dist/cjs/symbolextensions.js +0 -69
  203. package/dist/cjs/symbolextensions.js.map +0 -1
  204. package/dist/cjs/weakrefextensions.js.map +0 -1
  205. package/dist/mjs/arrayextensions.d.ts +0 -10
  206. package/dist/mjs/arrayextensions.js +0 -70
  207. package/dist/mjs/arrayextensions.js.map +0 -1
  208. package/dist/mjs/functionextensions.js +0 -199
  209. package/dist/mjs/functionextensions.js.map +0 -1
  210. package/dist/mjs/globals.js +0 -163
  211. package/dist/mjs/globals.js.map +0 -1
  212. package/dist/mjs/mapextensions.js +0 -29
  213. package/dist/mjs/mapextensions.js.map +0 -1
  214. package/dist/mjs/newClasses/asyncIterable.js.map +0 -1
  215. package/dist/mjs/newClasses/deferred.js.map +0 -1
  216. package/dist/mjs/newClasses/descriptor.js.map +0 -1
  217. package/dist/mjs/newClasses/iterable.js.map +0 -1
  218. package/dist/mjs/newClasses/refmap.js.map +0 -1
  219. package/dist/mjs/newClasses/refset.js.map +0 -1
  220. package/dist/mjs/objectextensions.d.ts +0 -11
  221. package/dist/mjs/objectextensions.js +0 -229
  222. package/dist/mjs/objectextensions.js.map +0 -1
  223. package/dist/mjs/reflectextensions.js +0 -108
  224. package/dist/mjs/reflectextensions.js.map +0 -1
  225. package/dist/mjs/setextensions.d.ts +0 -2
  226. package/dist/mjs/setextensions.js.map +0 -1
  227. package/dist/mjs/stringextensions.js +0 -155
  228. package/dist/mjs/stringextensions.js.map +0 -1
  229. package/dist/mjs/symbolextensions.js +0 -66
  230. package/dist/mjs/symbolextensions.js.map +0 -1
  231. package/dist/mjs/weakrefextensions.js.map +0 -1
  232. package/src/arrayextensions.js +0 -75
  233. package/src/functionextensions.js +0 -225
  234. package/src/globals.js +0 -196
  235. package/src/mapextensions.js +0 -32
  236. package/src/objectextensions.js +0 -256
  237. package/src/reflectextensions.js +0 -118
  238. package/src/stringextensions.js +0 -166
  239. package/src/symbolextensions.js +0 -69
  240. /package/dist/cjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  241. /package/dist/cjs/{newClasses → classes}/deferred.d.ts +0 -0
  242. /package/dist/cjs/{newClasses → classes}/descriptor.d.ts +0 -0
  243. /package/dist/cjs/{newClasses → classes}/iterable.d.ts +0 -0
  244. /package/dist/cjs/{newClasses → classes}/refmap.d.ts +0 -0
  245. /package/dist/cjs/{newClasses → classes}/refset.d.ts +0 -0
  246. /package/dist/cjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  247. /package/dist/cjs/{globals.d.ts → global.this.d.ts} +0 -0
  248. /package/dist/cjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  249. /package/dist/cjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  250. /package/dist/cjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  251. /package/dist/mjs/{newClasses → classes}/asyncIterable.d.ts +0 -0
  252. /package/dist/mjs/{newClasses → classes}/asyncIterable.js +0 -0
  253. /package/dist/mjs/{newClasses → classes}/deferred.d.ts +0 -0
  254. /package/dist/mjs/{newClasses → classes}/deferred.js +0 -0
  255. /package/dist/mjs/{newClasses → classes}/descriptor.d.ts +0 -0
  256. /package/dist/mjs/{newClasses → classes}/iterable.d.ts +0 -0
  257. /package/dist/mjs/{newClasses → classes}/iterable.js +0 -0
  258. /package/dist/mjs/{newClasses → classes}/refmap.d.ts +0 -0
  259. /package/dist/mjs/{newClasses → classes}/refset.d.ts +0 -0
  260. /package/dist/mjs/{newClasses → classes}/refset.js +0 -0
  261. /package/dist/mjs/{functionextensions.d.ts → function.extensions.d.ts} +0 -0
  262. /package/dist/mjs/{globals.d.ts → global.this.d.ts} +0 -0
  263. /package/dist/mjs/{reflectextensions.d.ts → reflect.extensions.d.ts} +0 -0
  264. /package/dist/mjs/{stringextensions.d.ts → string.extensions.d.ts} +0 -0
  265. /package/dist/mjs/{weakrefextensions.d.ts → weakref.extensions.d.ts} +0 -0
  266. /package/src/{newClasses → classes}/asyncIterable.js +0 -0
  267. /package/src/{newClasses → classes}/deferred.js +0 -0
  268. /package/src/{newClasses → classes}/iterable.js +0 -0
  269. /package/src/{newClasses → classes}/refset.js +0 -0
  270. /package/src/{weakrefextensions.js → weakref.extensions.js} +0 -0
@@ -1,26 +1,14 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _RefMap_objectifyValues;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.RefMapExtensions = exports.RefMap = void 0;
16
4
  const extension_1 = require("@nejs/extension");
17
- const objectextensions_js_1 = require("../objectextensions.js");
18
- const symbolextensions_js_1 = require("../symbolextensions.js");
19
- const weakrefextensions_js_1 = require("../weakrefextensions.js");
5
+ const object_extensions_js_1 = require("../object.extensions.js");
6
+ const symbol_extensions_js_1 = require("../symbol.extensions.js");
7
+ const weakref_extensions_js_1 = require("../weakref.extensions.js");
20
8
  const iterable_js_1 = require("./iterable.js");
21
- const { isObject, isNullDefined, isValidKey } = objectextensions_js_1.ObjectExtensions.patches;
22
- const { isRegistered } = symbolextensions_js_1.SymbolExtensions.patches;
23
- const { isValidReference } = weakrefextensions_js_1.WeakRefExtensions.patches;
9
+ const { isObject, isNullDefined, isValidKey } = object_extensions_js_1.ObjectExtensions.patches;
10
+ const { isRegistered } = symbol_extensions_js_1.SymbolExtensions.patches;
11
+ const { isValidReference } = weakref_extensions_js_1.WeakRefExtensions.patches;
24
12
  /**
25
13
  * RefMap class extends the standard Map object to manage a collection of
26
14
  * WeakRef values mapped to strong keys. It provides additional functionality
@@ -34,15 +22,15 @@ const { isValidReference } = weakrefextensions_js_1.WeakRefExtensions.patches;
34
22
  * @extends Map
35
23
  */
36
24
  class RefMap extends Map {
25
+ /**
26
+ * Private field to track whether the RefMap should objectify primitive
27
+ * values.
28
+ *
29
+ * @private
30
+ */
31
+ #objectifyValues = false;
37
32
  constructor(...args) {
38
33
  super(...args);
39
- /**
40
- * Private field to track whether the RefMap should objectify primitive
41
- * values.
42
- *
43
- * @private
44
- */
45
- _RefMap_objectifyValues.set(this, false);
46
34
  }
47
35
  /**
48
36
  * Method to control whether the RefMap should objectify its values. When
@@ -83,7 +71,7 @@ class RefMap extends Map {
83
71
  * @returns {boolean} The current state of objectifyValues.
84
72
  */
85
73
  get objectifyValues() {
86
- return __classPrivateFieldGet(this, _RefMap_objectifyValues, "f");
74
+ return this.#objectifyValues;
87
75
  }
88
76
  /**
89
77
  * The `get` function retrieves a value from a map and returns it, or returns a
@@ -117,7 +105,7 @@ class RefMap extends Map {
117
105
  * @param {boolean} value - The new state to set for objectifyValues.
118
106
  */
119
107
  set objectifyValues(value) {
120
- __classPrivateFieldSet(this, _RefMap_objectifyValues, !!value, "f");
108
+ this.#objectifyValues = !!value;
121
109
  }
122
110
  /**
123
111
  * Overrides the set method of `Map`. Adds a value to the `RefMap`,
@@ -134,7 +122,7 @@ class RefMap extends Map {
134
122
  set(key, value) {
135
123
  let useValue = value;
136
124
  // Objectify the value if needed
137
- if (__classPrivateFieldGet(this, _RefMap_objectifyValues, "f") && (typeof useValue === 'number' ||
125
+ if (this.#objectifyValues && (typeof useValue === 'number' ||
138
126
  typeof useValue === 'string' ||
139
127
  typeof useValue === 'boolean' ||
140
128
  typeof useValue === 'bigint')) {
@@ -279,7 +267,7 @@ class RefMap extends Map {
279
267
  if (isNullDefined(value)) {
280
268
  return false;
281
269
  }
282
- if (__classPrivateFieldGet(this, _RefMap_objectifyValues, "f")) {
270
+ if (this.#objectifyValues) {
283
271
  strict = false;
284
272
  }
285
273
  for (const [_, dereferenced] of this) {
@@ -413,7 +401,7 @@ class RefMap extends Map {
413
401
  *
414
402
  * @returns {Iterator} A new iterator object is being returned.
415
403
  */
416
- *[(_RefMap_objectifyValues = new WeakMap(), Symbol.iterator)]() {
404
+ *[Symbol.iterator]() {
417
405
  for (const [key, ref] of this.entries()) {
418
406
  yield [key, ref];
419
407
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refmap.js","sourceRoot":"","sources":["../../../src/classes/refmap.js"],"names":[],"mappings":"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"}
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _RefSet_instances, _RefSet_objectifyValues, _RefSet_validWeakRefTarget;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.RefSetExtensions = exports.RefSet = void 0;
16
4
  const extension_1 = require("@nejs/extension");
@@ -27,28 +15,13 @@ const extension_1 = require("@nejs/extension");
27
15
  * @extends Set
28
16
  */
29
17
  class RefSet extends Set {
30
- constructor() {
31
- super(...arguments);
32
- _RefSet_instances.add(this);
33
- /**
34
- * Private field to track whether the RefSet should objectify primitive
35
- * values.
36
- *
37
- * @private
38
- */
39
- _RefSet_objectifyValues.set(this, false
40
- /**
41
- * Method to control whether the RefSet should objectify its values. When
42
- * objectifying, primitive values (number, string, boolean, bigint) are
43
- * converted to their respective object types, which allows them to be used as
44
- * WeakRef targets.
45
- *
46
- * @param {boolean} setObjectification - Flag to enable or disable
47
- * objectification.
48
- * @returns {RefSet} - The current RefSet instance to allow method chaining.
49
- */
50
- );
51
- }
18
+ /**
19
+ * Private field to track whether the RefSet should objectify primitive
20
+ * values.
21
+ *
22
+ * @private
23
+ */
24
+ #objectifyValues = false;
52
25
  /**
53
26
  * Method to control whether the RefSet should objectify its values. When
54
27
  * objectifying, primitive values (number, string, boolean, bigint) are
@@ -72,7 +45,7 @@ class RefSet extends Set {
72
45
  * @returns {boolean} The current state of objectifyValues.
73
46
  */
74
47
  get objectifyValues() {
75
- return __classPrivateFieldGet(this, _RefSet_objectifyValues, "f");
48
+ return this.#objectifyValues;
76
49
  }
77
50
  /**
78
51
  * Setting this value to true, will cause all added values to the Set to
@@ -84,7 +57,7 @@ class RefSet extends Set {
84
57
  * @param {boolean} value - The new state to set for objectifyValues.
85
58
  */
86
59
  set objectifyValues(value) {
87
- __classPrivateFieldSet(this, _RefSet_objectifyValues, !!value, "f");
60
+ this.#objectifyValues = !!value;
88
61
  }
89
62
  /**
90
63
  * Overrides the add method of Set. Adds a value to the RefSet, converting it
@@ -98,7 +71,7 @@ class RefSet extends Set {
98
71
  */
99
72
  add(value) {
100
73
  // Objectify the value if needed
101
- if (__classPrivateFieldGet(this, _RefSet_objectifyValues, "f") && (typeof value === 'number' ||
74
+ if (this.#objectifyValues && (typeof value === 'number' ||
102
75
  typeof value === 'string' ||
103
76
  typeof value === 'boolean' ||
104
77
  typeof value === 'bigint')) {
@@ -237,7 +210,7 @@ class RefSet extends Set {
237
210
  * in the RefSet, false otherwise.
238
211
  */
239
212
  has(value) {
240
- if (__classPrivateFieldGet(this, _RefSet_objectifyValues, "f")) {
213
+ if (this.#objectifyValues) {
241
214
  return this.contains(value);
242
215
  }
243
216
  for (const item of this.values()) {
@@ -345,12 +318,12 @@ class RefSet extends Set {
345
318
  if (dereferenced) {
346
319
  const mappedItem = mapFn.call(thisArg, dereferenced, NaN, this);
347
320
  if (validRefSetOutput || validRefSetOutputIfObjectified) {
348
- const weakReferenceable = __classPrivateFieldGet(this, _RefSet_instances, "m", _RefSet_validWeakRefTarget).call(this, mappedItem);
321
+ const weakReferenceable = this.#validWeakRefTarget(mappedItem);
349
322
  if (!weakReferenceable) {
350
323
  validRefSetOutput = false;
351
324
  if (validRefSetOutputIfObjectified) {
352
325
  validRefSetOutputIfObjectified =
353
- __classPrivateFieldGet(this, _RefSet_instances, "m", _RefSet_validWeakRefTarget).call(this, Object(mappedItem));
326
+ this.#validWeakRefTarget(Object(mappedItem));
354
327
  }
355
328
  }
356
329
  }
@@ -363,7 +336,7 @@ class RefSet extends Set {
363
336
  }
364
337
  if (validRefSetOutputIfObjectified) {
365
338
  return new RefSet(mapped.map(value => {
366
- return __classPrivateFieldGet(this, _RefSet_instances, "m", _RefSet_validWeakRefTarget).call(this, value) ? value : Object(value);
339
+ return this.#validWeakRefTarget(value) ? value : Object(value);
367
340
  })).objectifying();
368
341
  }
369
342
  }
@@ -375,15 +348,23 @@ class RefSet extends Set {
375
348
  *
376
349
  * @returns {string} the name of the class
377
350
  */
378
- get [(_RefSet_objectifyValues = new WeakMap(), _RefSet_instances = new WeakSet(), Symbol.toStringTag)]() {
351
+ get [Symbol.toStringTag]() {
379
352
  return this.constructor.name;
380
353
  }
354
+ /**
355
+ * Private method to check if a given value is a valid target for a WeakRef.
356
+ *
357
+ * @param {*} value - The value to check for validity as a WeakRef target.
358
+ * @returns {boolean} - True if the value is a valid WeakRef target,
359
+ * false otherwise.
360
+ * @private
361
+ */
362
+ #validWeakRefTarget(value) {
363
+ return !((typeof value === 'symbol' && Symbol.keyFor(value) === undefined) ||
364
+ (typeof value !== 'object' && typeof value !== 'symbol') ||
365
+ (value === null || value === undefined));
366
+ }
381
367
  }
382
368
  exports.RefSet = RefSet;
383
- _RefSet_validWeakRefTarget = function _RefSet_validWeakRefTarget(value) {
384
- return !((typeof value === 'symbol' && Symbol.keyFor(value) === undefined) ||
385
- (typeof value !== 'object' && typeof value !== 'symbol') ||
386
- (value === null || value === undefined));
387
- };
388
369
  exports.RefSetExtensions = new extension_1.Extension(RefSet);
389
370
  //# sourceMappingURL=refset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refset.js","sourceRoot":"","sources":["../../../src/classes/refset.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Represents a secure container for storing and retrieving unique symbols
3
+ * associated with data. This class provides methods to add new symbols to
4
+ * the Symkeys and to retrieve data associated with a particular symbol.
5
+ *
6
+ * @example
7
+ * // Create a new Symkeys instance
8
+ * const symkeys = new Symkeys();
9
+ *
10
+ * // Add a symbol with associated data to the Symkeys
11
+ * const mySymbol = Symkeys.add('myIdentifier', { foo: 'bar' });
12
+ *
13
+ * // Retrieve the data using the symbol
14
+ * const myData = Symkeys.dataFor(mySymbol);
15
+ * console.log(myData); // Output: { foo: 'bar' }
16
+ */
17
+ export class Symkeys {
18
+ /**
19
+ * Checks if a given value is a Symkey.
20
+ *
21
+ * This method checks if the provided value is a Symkey. A Symkey is a
22
+ * symbol that matches a specific pattern. The pattern is defined as a
23
+ * symbol that starts with '@', followed by any characters, a space, a '#',
24
+ * and ends with one or more word characters.
25
+ *
26
+ * @param {Symbol} value - The value to check.
27
+ * @returns {boolean} Returns true if the value is a Symkey, false otherwise.
28
+ *
29
+ * @example
30
+ * // Check if a symbol is a Symkey:
31
+ * const sym = Symbol('@nejs.prototype #rwiy2o905d');
32
+ * console.log(Symkeys.isSymkey(sym)); // Outputs: true
33
+ */
34
+ static isSymkey(value: Symbol): boolean;
35
+ /**
36
+ * Generates a random token string.
37
+ *
38
+ * This method creates a pseudo-random token that can be used for various
39
+ * purposes within the library, such as generating unique identifiers or
40
+ * keys. The token is generated using a base 36 encoding, which includes
41
+ * numbers and lowercase letters.
42
+ *
43
+ * @returns A random token string.
44
+ *
45
+ * @example
46
+ * // Example of getting a random token:
47
+ * const token = MyClass.token;
48
+ * console.log(token); // Outputs a string like 'qg6k1zr0is'
49
+ */
50
+ static get token(): string;
51
+ /**
52
+ * Reusable publicly static key for identifying where data is stored.
53
+ */
54
+ static get kDataKey(): symbol;
55
+ /**
56
+ * Reusable publicly static key for identifying where data is stored.
57
+ */
58
+ static get kPrototype(): symbol;
59
+ /**
60
+ * A static getter that returns a unique, reusable symbol for 'symkeys.domain'.
61
+ *
62
+ * This getter is used to create a unique symbol that can be used as a key
63
+ * for storing and retrieving domain-specific data in the Symkeys. The symbol
64
+ * is created using the `Symbol.for` method, which ensures that the same
65
+ * symbol is returned for a given key, in this case 'symkeys.domain'.
66
+ *
67
+ * @returns {Symbol} A unique symbol for 'symkeys.domain'.
68
+ *
69
+ * @example
70
+ * // Retrieve the 'symkeys.domain' symbol
71
+ * const domainSymbol = Symkeys.kDomain;
72
+ * console.log(domainSymbol); // Outputs: Symbol(symkeys.domain)
73
+ */
74
+ static get kDomain(): Symbol;
75
+ /**
76
+ * A static getter that returns a unique, reusable symbol for 'symkeys.separator'.
77
+ *
78
+ * This getter is used to create a unique symbol that can be used as a key
79
+ * for storing and retrieving separator-specific data in the Symkeys. The symbol
80
+ * is created using the `Symbol.for` method, which ensures that the same
81
+ * symbol is returned for a given key, in this case 'symkeys.separator'.
82
+ *
83
+ * @returns {Symbol} A unique symbol for 'symkeys.separator'.
84
+ *
85
+ * @example
86
+ * // Retrieve the 'symkeys.separator' symbol
87
+ * const separatorSymbol = Symkeys.kSeparator;
88
+ * console.log(separatorSymbol); // Outputs: Symbol(symkeys.separator)
89
+ */
90
+ static get kSeparator(): Symbol;
91
+ /**
92
+ * Constructs a new instance of the Symkeys, setting up a proxy to
93
+ * intercept and manage access to properties.
94
+ *
95
+ * This constructor initializes the Symkeys with a proxy that
96
+ * overrides the default behavior for property access, checking, and
97
+ * enumeration. It allows the Symkeys to behave like a map for its
98
+ * own properties, while also maintaining the prototype chain.
99
+ *
100
+ * @param {string} domain an optional prefix string, to which the
101
+ * `separator` parameter value will be guaranteed to have in between
102
+ * the domain (if truthy) and the name of the added key.
103
+ * @param {string} separator defaults to a period. So if your domain
104
+ * is 'symkeys.internal' then calling {@link add()} with a name of
105
+ * `"feature"` will result in the full name being
106
+ * `"symkeys.internal.feature"`
107
+ *
108
+ * @example
109
+ * const Symkeys = new Symkeys();
110
+ * Symkeys[Symbol.for('myProperty')] = 'myValue';
111
+ * console.log(Symkeys[Symbol.for('myProperty')]); // 'myValue'
112
+ */
113
+ constructor(domain?: string, separator?: string);
114
+ /**
115
+ * Adds a new entry to the Symkeys with a unique symbol based on the provided
116
+ * name and associates it with the given data.
117
+ *
118
+ * @param named - The base name for the symbol to be created.
119
+ * @param [associatedData={}] - The data to associate with the symbol.
120
+ * @returns The unique symbol created for the entry.
121
+ *
122
+ * @example
123
+ * // Add an entry with associated data
124
+ * const symbol = Symkeys.add('myEntry', { foo: 'bar' });
125
+ * // Retrieve the associated data using the symbol
126
+ * const data = Symkeys.dataFor(symbol);
127
+ * console.log(data); // Output: { foo: 'bar' }
128
+ */
129
+ add(named: any, associatedData?: {} | undefined): symbol;
130
+ /**
131
+ * Retrieves the data associated with a given symbol from the Symkeys.
132
+ *
133
+ * This method allows access to the data that has been associated with a
134
+ * particular symbol in the Symkeys. It is useful for retrieving stored
135
+ * information when only the symbol is known.
136
+ *
137
+ * @param symbol - The symbol whose associated data is to be
138
+ * retrieved.
139
+ * @returns The data associated with the symbol, or undefined if
140
+ * the symbol is not found in the Symkeys.
141
+ *
142
+ * @example
143
+ * // Assuming 'mySymbol' is a symbol that has been added to the Symkeys
144
+ * // with associated data
145
+ * const data = Symkeys.dataFor(mySymbol);
146
+ * console.log(data); // Output: The data associated with 'mySymbol'
147
+ */
148
+ data(forSymbol: any): any;
149
+ /**
150
+ * Deletes the data associated with a given symbol from the Symkeys.
151
+ *
152
+ * This method allows removal of the data that has been associated with a
153
+ * particular symbol in the Symkeys. It is useful when you want to clean up
154
+ * or remove stored information associated with a symbol.
155
+ *
156
+ * @param {Symbol} forSymbol - The symbol whose associated data is to be
157
+ * deleted.
158
+ * @param {*} replaceWith - Optionally, if `replaceWith` is not `undefined`,
159
+ * a new value can be set after the original is deleted
160
+ * @returns {boolean} - Returns true if an element in the Symkeys existed and
161
+ * has been removed, or false if the element does not exist
162
+ *
163
+ * @example
164
+ * // Assuming 'mySymbol' is a symbol that has been added to the Symkeys
165
+ * // with associated data
166
+ * const isDeleted = Symkeys.deleteData(mySymbol);
167
+ * console.log(isDeleted); // Output: true if data was deleted, false otherwise
168
+ */
169
+ deleteData(forSymbol: Symbol, replaceWith?: any): boolean;
170
+ /**
171
+ * Checks if the Symkeys instance has data associated with a given symbol.
172
+ *
173
+ * This method checks if the Symkeys instance has any data associated with
174
+ * the provided symbol. It is useful when you need to verify if data exists
175
+ * for a particular symbol before attempting to retrieve or manipulate it.
176
+ *
177
+ * @param {Symbol} forSymbol - The symbol to check for associated data.
178
+ * @returns {boolean} Returns true if data exists for the symbol, false otherwise.
179
+ *
180
+ * @example
181
+ * // Assuming 'mySymbol' is a symbol that has been added to the Symkeys
182
+ * // with associated data
183
+ * const hasData = Symkeys.hasData(mySymbol);
184
+ * console.log(hasData); // Output: true if data exists, false otherwise
185
+ */
186
+ hasData(forSymbol: Symbol): boolean;
187
+ /**
188
+ * Sets the data associated with a given symbol in the Symkeys.
189
+ *
190
+ * This method allows you to associate data with a particular symbol in the
191
+ * Symkeys. It is useful when you want to store information that can be
192
+ * retrieved later using the symbol.
193
+ *
194
+ * Note that setting only succeeds if the Symkey symbol has already been
195
+ * added via {@link Symkeys.add}
196
+ *
197
+ * @param {Symbol} forSymbol - The symbol with which the data is to be
198
+ * associated.
199
+ * @param {*} value - The data to be associated with the symbol.
200
+ * @returns {boolean} true if the value has been set, false if the key
201
+ * has not yet been added via {@link Symkeys.add}
202
+ *
203
+ * @example
204
+ * // Assuming 'mySymbol' is a symbol that has been added to the Symkeys
205
+ * // and 'myData' is the data to be associated with 'mySymbol'
206
+ * Symkeys.setData(mySymbol, myData);
207
+ */
208
+ setData(forSymbol: Symbol, value: any): boolean;
209
+ /**
210
+ * Extracts the token part from a symbol created by the `add` method.
211
+ *
212
+ * This method parses the string representation of a symbol to retrieve
213
+ * the unique token that was appended to the symbol's name upon creation.
214
+ * It is useful for debugging or for operations that require knowledge of
215
+ * the token associated with a symbol.
216
+ *
217
+ * @param symbol - The symbol whose token is to be extracted.
218
+ * @returns The extracted token or undefined if the
219
+ * token cannot be extracted.
220
+ *
221
+ * @example
222
+ * // Assuming 'mySymbol' is a symbol created with the name 'myEntry'
223
+ * // and a token 'agftofxob6f'
224
+ * const token = Symkeys.tokenFor(mySymbol);
225
+ * console.log(token); // Output: 'agftofxob6f'
226
+ */
227
+ token(forSymbol: any): any;
228
+ /**
229
+ * Retrieves the separator used in the Symkeys instance.
230
+ *
231
+ * This getter method allows access to the separator that is used to
232
+ * distinguish between different parts of a symbol in the Symkeys instance.
233
+ * It is useful when you need to know the separator for parsing symbols or
234
+ * constructing new ones.
235
+ *
236
+ * @returns {string} The separator used in the Symkeys instance.
237
+ *
238
+ * @example
239
+ * // Assuming the Symkeys instance has a separator '.'
240
+ * const separator = Symkeys.separator;
241
+ * console.log(separator); // Output: '.'
242
+ */
243
+ get separator(): string;
244
+ /**
245
+ * Retrieves an iterator for the symbols stored in the Symkeys.
246
+ *
247
+ * This method provides access to the symbols that have been stored in
248
+ * the Symkeys. It returns an iterator which can be used to loop over
249
+ * all the symbols. This is particularly useful for iterating through
250
+ * all stored data without knowing the individual symbols in advance.
251
+ *
252
+ * @returns An iterator that yields all the symbols
253
+ * stored in the Symkeys.
254
+ *
255
+ * @example
256
+ * // Assuming the Symkeys has symbols stored
257
+ * for (const symbol of Symkeys.symbols()) {
258
+ * console.log(symbol);
259
+ * }
260
+ */
261
+ symbols(): any;
262
+ /**
263
+ * Calculates a name by combining a provided name, domain, and separator.
264
+ *
265
+ * This method takes a provided name, domain, and separator as input and
266
+ * constructs a new name by combining these elements. If the domain or
267
+ * separator are not provided, it uses the default domain and separator
268
+ * stored in the Symkeys instance. If the provided name starts with the
269
+ * separator, it removes the leading separator from the name.
270
+ *
271
+ * If the domain ends with the separator, it removes the trailing separator
272
+ * from the domain. If the domain is empty, it sets the separator to an
273
+ * empty string.
274
+ *
275
+ * @param {string} providedName - The name to be used in the calculation.
276
+ * @param {string} [useDomain] - The domain to be used in the calculation.
277
+ * If not provided, the default domain of the Symkeys instance is used.
278
+ * @param {string} [useSeparator] - The separator to be used in the
279
+ * calculation. If not provided, the default separator of the Symkeys
280
+ * instance is used.
281
+ * @returns {string} The calculated name.
282
+ *
283
+ * @example
284
+ * // Assuming the Symkeys instance has a domain 'symkeys.internal'
285
+ * // and a separator '.'
286
+ * const name = Symkeys.calculateName('feature', 'symkeys.public', '/');
287
+ * console.log(name); // Output: 'symkeys.public/feature'
288
+ */
289
+ calculateName(providedName: string, useDomain?: string | undefined, useSeparator?: string | undefined): string;
290
+ }
291
+ export const SymkeysExtension: Extension;
292
+ import { Extension } from '@nejs/extension';