@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,24 +1,23 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- 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");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- 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");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _Descriptor_desc, _Descriptor_object;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.DescriptorExtensions = exports.Descriptor = void 0;
16
4
  const extension_1 = require("@nejs/extension");
17
- const objectextensions_js_1 = require("../objectextensions.js");
18
- const reflectextensions_js_1 = require("../reflectextensions.js");
19
- const { isObject, isValidKey } = objectextensions_js_1.ObjectExtensions.patches;
20
- const { hasSome } = reflectextensions_js_1.ReflectExtensions.patches;
21
5
  class Descriptor {
6
+ /**
7
+ * The default private descriptor value is that of `enigmatic`
8
+ *
9
+ * @private
10
+ * @type {object}
11
+ */
12
+ #desc = undefined;
13
+ /**
14
+ * An optionally associated object, usually the parent from which
15
+ * the descriptor was taken, or undefined if none was able to be
16
+ * derived.
17
+ *
18
+ * @type {object}
19
+ */
20
+ #object = undefined;
22
21
  /**
23
22
  * Constructs a Descriptor instance which wraps and manages an object
24
23
  * property descriptor. The constructor can handle an existing descriptor
@@ -36,64 +35,24 @@ class Descriptor {
36
35
  * valid.
37
36
  */
38
37
  constructor(object, key) {
39
- /**
40
- * The default private descriptor value is that of `enigmatic`
41
- *
42
- * @private
43
- * @type {object}
44
- */
45
- _Descriptor_desc.set(this, undefined
46
- /**
47
- * An optionally associated object, usually the parent from which
48
- * the descriptor was taken, or undefined if none was able to be
49
- * derived.
50
- *
51
- * @type {object}
52
- */
53
- );
54
- /**
55
- * An optionally associated object, usually the parent from which
56
- * the descriptor was taken, or undefined if none was able to be
57
- * derived.
58
- *
59
- * @type {object}
60
- */
61
- _Descriptor_object.set(this, undefined
62
- /**
63
- * Constructs a Descriptor instance which wraps and manages an object
64
- * property descriptor. The constructor can handle an existing descriptor
65
- * object or create a new one based on an object and a property key.
66
- *
67
- * @param {object|Descriptor} object - The target object or an existing
68
- * Descriptor instance. If it's an object, it is used in conjunction with
69
- * `key` to create a descriptor. If it's a Descriptor instance, it is used
70
- * directly as the descriptor.
71
- * @param {string|symbol} [key] - The property key for which the descriptor
72
- * is to be created. This parameter is ignored if `object` is a Descriptor
73
- * instance. If `key` is an object and `object` is a valid descriptor, `key`
74
- * is treated as the associated object.
75
- * @throws {Error} Throws an error if the constructed descriptor is not
76
- * valid.
77
- */
78
- );
79
38
  if ((object ?? key) === undefined) {
80
- __classPrivateFieldSet(this, _Descriptor_desc, Descriptor.enigmatic, "f");
39
+ this.#desc = Descriptor.enigmatic;
81
40
  }
82
41
  else if (Descriptor.isDescriptor(object)) {
83
- __classPrivateFieldSet(this, _Descriptor_desc, object, "f");
84
- __classPrivateFieldSet(this, _Descriptor_object, isObject(key) ? key : undefined, "f");
42
+ this.#desc = object;
43
+ this.#object = isObject(key) ? key : undefined;
85
44
  }
86
45
  else if (isObject(object) && isValidKey(key)) {
87
- __classPrivateFieldSet(this, _Descriptor_desc, Object.getOwnPropertyDescriptor(object, key), "f");
88
- __classPrivateFieldSet(this, _Descriptor_object, object, "f");
46
+ this.#desc = Object.getOwnPropertyDescriptor(object, key);
47
+ this.#object = object;
89
48
  }
90
49
  if (!this.isDescriptor) {
91
50
  console.error(`
92
51
  Descriptor(object,key) FAILED:
93
52
  object: ${object === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(object) : String(object))}
94
53
  key: ${key === globalThis ? '[GLOBAL]' : (typeof key === 'object' ? JSON.stringify(key) : String(key))}
95
- descriptor: `, __classPrivateFieldGet(this, _Descriptor_desc, "f"));
96
- throw new Error(`Not a valid descriptor:`, __classPrivateFieldGet(this, _Descriptor_desc, "f"));
54
+ descriptor: `, this.#desc);
55
+ throw new Error(`Not a valid descriptor:`, this.#desc);
97
56
  }
98
57
  }
99
58
  /**
@@ -103,7 +62,7 @@ class Descriptor {
103
62
  * a data descriptor
104
63
  */
105
64
  get isAccessor() {
106
- return Descriptor.isAccessor(__classPrivateFieldGet(this, _Descriptor_desc, "f"));
65
+ return Descriptor.isAccessor(this.#desc);
107
66
  }
108
67
  /**
109
68
  * Detects whether or not this instance is an data object descriptor
@@ -112,7 +71,7 @@ class Descriptor {
112
71
  * an accessor descriptor
113
72
  */
114
73
  get isData() {
115
- return Descriptor.isData(__classPrivateFieldGet(this, _Descriptor_desc, "f"));
74
+ return Descriptor.isData(this.#desc);
116
75
  }
117
76
  /**
118
77
  * Detects whether or not this instance is a valid object descriptor
@@ -120,7 +79,7 @@ class Descriptor {
120
79
  * @returns {boolean} true if this descriptor store is a valid descriptor
121
80
  */
122
81
  get isDescriptor() {
123
- return Descriptor.isDescriptor(__classPrivateFieldGet(this, _Descriptor_desc, "f"));
82
+ return Descriptor.isDescriptor(this.#desc);
124
83
  }
125
84
  /**
126
85
  * Getter around the `configurable` object descriptor property of
@@ -130,7 +89,7 @@ class Descriptor {
130
89
  * descriptor store is invalid.
131
90
  */
132
91
  get configurable() {
133
- return !!__classPrivateFieldGet(this, _Descriptor_desc, "f")?.configurable;
92
+ return !!this.#desc?.configurable;
134
93
  }
135
94
  /**
136
95
  * Sets the `configurable` value of this object. If the internal descriptor
@@ -140,7 +99,7 @@ class Descriptor {
140
99
  * property. If this value is not a `boolean` it will be converted to one
141
100
  */
142
101
  set configurable(value) {
143
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).configurable = !!value;
102
+ (this.#desc || {}).configurable = !!value;
144
103
  }
145
104
  /**
146
105
  * Getter around the `enumerable` object descriptor property of
@@ -150,7 +109,7 @@ class Descriptor {
150
109
  * descriptor store is invalid.
151
110
  */
152
111
  get enumerable() {
153
- return __classPrivateFieldGet(this, _Descriptor_desc, "f")?.enumerable;
112
+ return this.#desc?.enumerable;
154
113
  }
155
114
  /**
156
115
  * Sets the `enumerable` value of this object. If the internal descriptor
@@ -160,7 +119,7 @@ class Descriptor {
160
119
  * property. If this value is not a `boolean` it will be converted to one
161
120
  */
162
121
  set enumerable(value) {
163
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).enumerable = value;
122
+ (this.#desc || {}).enumerable = value;
164
123
  }
165
124
  /**
166
125
  * Getter around the `writable` object descriptor property of
@@ -170,7 +129,7 @@ class Descriptor {
170
129
  * descriptor store is invalid.
171
130
  */
172
131
  get writable() {
173
- return __classPrivateFieldGet(this, _Descriptor_desc, "f")?.writable;
132
+ return this.#desc?.writable;
174
133
  }
175
134
  /**
176
135
  * Sets the `writable` value of this object. If the internal descriptor
@@ -180,7 +139,7 @@ class Descriptor {
180
139
  * property. If this value is not a `boolean` it will be converted to one
181
140
  */
182
141
  set writable(value) {
183
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).writable = value;
142
+ (this.#desc || {}).writable = value;
184
143
  }
185
144
  /**
186
145
  * Getter around the `value` object descriptor property of
@@ -189,7 +148,7 @@ class Descriptor {
189
148
  * @returns {any} any value stored in this descriptor
190
149
  */
191
150
  get value() {
192
- return __classPrivateFieldGet(this, _Descriptor_desc, "f")?.value;
151
+ return this.#desc?.value;
193
152
  }
194
153
  /**
195
154
  * Sets the `value` value of this object. If the internal descriptor
@@ -199,7 +158,7 @@ class Descriptor {
199
158
  * property.
200
159
  */
201
160
  set value(value) {
202
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).value = value;
161
+ (this.#desc || {}).value = value;
203
162
  }
204
163
  /**
205
164
  * Getter around the `get` object descriptor property of
@@ -210,7 +169,7 @@ class Descriptor {
210
169
  * is undefined.
211
170
  */
212
171
  get get() {
213
- return __classPrivateFieldGet(this, _Descriptor_desc, "f")?.get;
172
+ return this.#desc?.get;
214
173
  }
215
174
  /**
216
175
  * Retrieves the {@link get} function for this accessor and binds it to
@@ -221,7 +180,7 @@ class Descriptor {
221
180
  * getter will be bound the associated and previously set `object`.
222
181
  */
223
182
  get boundGet() {
224
- return (isObject(__classPrivateFieldGet(this, _Descriptor_object, "f")) ? this.get?.bind(__classPrivateFieldGet(this, _Descriptor_object, "f")) : this.get);
183
+ return (isObject(this.#object) ? this.get?.bind(this.#object) : this.get);
225
184
  }
226
185
  /**
227
186
  * Sets the `get` value of this object. If the internal descriptor
@@ -230,7 +189,7 @@ class Descriptor {
230
189
  * @param {function} value the getter function for this descriptor
231
190
  */
232
191
  set get(value) {
233
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).get = value;
192
+ (this.#desc || {}).get = value;
234
193
  }
235
194
  /**
236
195
  * Getter around the `set` object descriptor property of
@@ -241,7 +200,7 @@ class Descriptor {
241
200
  * is undefined.
242
201
  */
243
202
  get set() {
244
- return (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).set;
203
+ return (this.#desc || {}).set;
245
204
  }
246
205
  /**
247
206
  * Retrieves the {@link set} function for this accessor and binds it to
@@ -252,7 +211,7 @@ class Descriptor {
252
211
  * setter will be bound the associated and previously set `object`.
253
212
  */
254
213
  get boundSet() {
255
- return (isObject(__classPrivateFieldGet(this, _Descriptor_object, "f")) ? this.set?.bind(__classPrivateFieldGet(this, _Descriptor_object, "f")) : this.set);
214
+ return (isObject(this.#object) ? this.set?.bind(this.#object) : this.set);
256
215
  }
257
216
  /**
258
217
  * Sets the `set` value of this object. If the internal descriptor
@@ -261,7 +220,7 @@ class Descriptor {
261
220
  * @param {function} value the setter function for this descriptor
262
221
  */
263
222
  set set(value) {
264
- (__classPrivateFieldGet(this, _Descriptor_desc, "f") || {}).set = value;
223
+ (this.#desc || {}).set = value;
265
224
  }
266
225
  /**
267
226
  * The function checks the descriptor's associated object has been set on this
@@ -270,7 +229,7 @@ class Descriptor {
270
229
  * @returns {boolean} `true` if the `object` property has been set,
271
230
  * `false` otherwise
272
231
  */
273
- get hasObject() { return isObject(__classPrivateFieldGet(this, _Descriptor_object, "f")); }
232
+ get hasObject() { return isObject(this.#object); }
274
233
  /**
275
234
  * Returns the descriptor's associated `object` value. This is usually the
276
235
  * parent object from which the descriptor was derived. If the value is preset
@@ -279,7 +238,7 @@ class Descriptor {
279
238
  * @returns {object} the associated object for this descriptor or undefined
280
239
  * if it has not yet been set.
281
240
  */
282
- get object() { return __classPrivateFieldGet(this, _Descriptor_object, "f"); }
241
+ get object() { return this.#object; }
283
242
  /**
284
243
  * Sets the descriptor's associated `object` value. This is usually the
285
244
  * parent object from which the descriptor was derived.
@@ -287,7 +246,7 @@ class Descriptor {
287
246
  * @param {object} value sets the object for which this descriptor is to
288
247
  * be associated with.
289
248
  */
290
- set object(value) { __classPrivateFieldSet(this, _Descriptor_object, Object(value), "f"); }
249
+ set object(value) { this.#object = Object(value); }
291
250
  /**
292
251
  * The function returns a string representation of a descriptor object with
293
252
  * additional information about its type when used in the NodeJS repl.
@@ -306,9 +265,9 @@ class Descriptor {
306
265
  * type of the descriptor (either "Accessor" or "Data") and the result of
307
266
  * inspecting the descriptor object using the provided options and depth.
308
267
  */
309
- [(_Descriptor_desc = new WeakMap(), _Descriptor_object = new WeakMap(), Symbol.for('nodejs.util.inspect.custom'))](depth, options, inspect) {
268
+ [Symbol.for('nodejs.util.inspect.custom')](depth, options, inspect) {
310
269
  const type = this.isAccessor ? ' (Accessor)' : this.isData ? ' (Data)' : '';
311
- return `Descriptor${type} ${inspect(__classPrivateFieldGet(this, _Descriptor_desc, "f"), { ...options, depth })}`;
270
+ return `Descriptor${type} ${inspect(this.#desc, { ...options, depth })}`;
312
271
  }
313
272
  /**
314
273
  * Shorthand for Object.getOwnPropertyDescriptor()
@@ -354,7 +313,7 @@ class Descriptor {
354
313
  * a descriptor.
355
314
  */
356
315
  toObject(bindAccessors = false) {
357
- let descriptor = { ...__classPrivateFieldGet(this, _Descriptor_desc, "f") };
316
+ let descriptor = { ...this.#desc };
358
317
  if (bindAccessors && this.isAccessor) {
359
318
  if (this.hasObject) {
360
319
  descriptor = {
@@ -384,14 +343,14 @@ class Descriptor {
384
343
  switch (hint) {
385
344
  case 'string':
386
345
  if (this.isAccessor) {
387
- const hasGetter = Reflect.has(__classPrivateFieldGet(this, _Descriptor_desc, "f"), 'get') ? `getter` : '';
388
- const hasSetter = Reflect.has(__classPrivateFieldGet(this, _Descriptor_desc, "f"), 'set') ? `setter` : '';
346
+ const hasGetter = Reflect.has(this.#desc, 'get') ? `getter` : '';
347
+ const hasSetter = Reflect.has(this.#desc, 'set') ? `setter` : '';
389
348
  const separator = hasGetter && hasSetter ? ', ' : '';
390
349
  return `Accessor (${hasGetter}${separator}${hasSetter})`;
391
350
  }
392
351
  else if (this.isData) {
393
- const hasGetter = Reflect.has(__classPrivateFieldGet(this, _Descriptor_desc, "f"), 'value') ? `value` : '';
394
- const hasSetter = Reflect.has(__classPrivateFieldGet(this, _Descriptor_desc, "f"), 'writable') ? `writable` : '';
352
+ const hasGetter = Reflect.has(this.#desc, 'value') ? `value` : '';
353
+ const hasSetter = Reflect.has(this.#desc, 'writable') ? `writable` : '';
395
354
  const separator = hasGetter && hasSetter ? ', ' : '';
396
355
  return `Data (${hasGetter}${separator}${hasSetter})`;
397
356
  }
@@ -661,4 +620,11 @@ class Descriptor {
661
620
  }
662
621
  exports.Descriptor = Descriptor;
663
622
  exports.DescriptorExtensions = new extension_1.Extension(Descriptor);
623
+ function isObject(o) { return o && typeof o === 'object'; }
624
+ function isValidKey(o) { return ['string', 'symbol'].some(t => typeof o === t); }
625
+ function hasSome(object, ...keys) {
626
+ return isObject(object) && (keys.flat(Infinity)
627
+ .map(key => Reflect.has(object, key))
628
+ .some(has => has));
629
+ }
664
630
  //# sourceMappingURL=descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor.js","sourceRoot":"","sources":["../../../src/classes/descriptor.js"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,MAAa,UAAU;IACrB;;;;;OAKG;IACH,KAAK,GAAG,SAAS,CAAA;IAEjB;;;;;;OAMG;IACH,OAAO,GAAG,SAAS,CAAA;IAEnB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,MAAM,EAAE,GAAG;QACrB,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAA;QACnC,CAAC;aACI,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;YACnB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;QAChD,CAAC;aACI,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACvB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC;;uBAEG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;uBACxG,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;sBAChG,EAAE,IAAI,CAAC,KAAK,CAC3B,CAAA;YACD,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,UAAU;QACZ,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;OAKG;IACH,IAAI,MAAM;QACR,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACd,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY,CAAC,KAAK;QACpB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,KAAK,CAAA;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,KAAK,EAAE,UAAU,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,UAAU,CAAC,KAAK;QAClB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;IACvC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAA;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,QAAQ,CAAC,KAAK;QAChB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAA;IACrC,CAAC;IAED;;;;;OAKG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAA;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,IAAI,KAAK,CAAC,KAAK;QACb,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAA;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3E,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG,CAAC,KAAK;QACX,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,GAAG;QACL,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAA;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ;QACV,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3E,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG,CAAC,KAAK;QACX,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,SAAS,KAAK,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC;IAEjD;;;;;;;OAOG;IACH,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,CAAC,CAAC;IAEpC;;;;;;OAMG;IACH,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IAElD;;;;;;;;;;;;;;;;;OAiBG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,OAAO,aAAa,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,GAAG,OAAO,EAAE,KAAK,EAAC,CAAC,EAAE,CAAA;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK;QAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACvE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,CAAC,IAAI;YACV,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAC/C,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,KAAK;QAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAE,sDAAsD,CAAC,CAAA;QAC1E,CAAC;QAED,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,aAAa,GAAG,KAAK;QAC5B,IAAI,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;QAElC,IAAI,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,UAAU,GAAG;oBACX,GAAG,UAAU;oBACb,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,GAAG,EAAE,IAAI,CAAC,QAAQ;iBACnB,CAAA;YACH,CAAC;iBACI,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACjC,UAAU,GAAG;oBACX,GAAG,UAAU;oBACb,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;oBAClC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;iBACnC,CAAA;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC;IAED;;;;;;OAMG;IACH,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI;QACvB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ;gBACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;oBAChE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;oBAChE,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;oBAEpD,OAAO,aAAa,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,CAAA;gBAC1D,CAAC;qBACI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;oBACjE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;oBACvE,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;oBAEpD,OAAO,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,CAAA;gBACtD,CAAC;gBACD,MAAK;YAEP,KAAK,QAAQ;gBACX,OAAO,GAAG,CAAA;YAEZ;gBACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAA;IACzB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;IACtC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK;QAClD,OAAO;YACL,UAAU;YACV,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,QAAQ,CACb,MAAM,EACN,MAAM,EACN,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QAEhD,OAAO;YACL,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,UAAU;YACV,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,IAAI,CACT,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE;QAEhD,OAAO;YACL,KAAK;YACL,UAAU;YACV,QAAQ;YACR,YAAY;SACb,CAAA;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM;QACxB,MAAM,SAAS,GAAG;YAChB,GAAG,UAAU,CAAC,WAAW;YACzB,GAAG,UAAU,CAAC,aAAa;YAC3B,GAAG,UAAU,CAAC,SAAS;SACxB,CAAA;QAED,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ;QACnC,MAAM,eAAe,GAAG,CACtB,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ,CAAC,IAAI,aAAa,YAAY,MAAM,CAAC;YACxE,QAAQ,YAAY,MAAM,CAC3B,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,eAAe;YACjC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,CAAC,CAAC,aAAa,CAChB,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAC1B,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YACnC,SAAS,GAAG,IAAI,CAAA;QAClB,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ;QACvC,MAAM,eAAe,GAAG,CACtB,CAAC,aAAa,IAAI,QAAQ,CAAC;YAC3B,CAAC,CAAC,OAAO,aAAa,KAAK,QAAQ,CAAC,IAAI,aAAa,YAAY,MAAM,CAAC;YACxE,CAAC,QAAQ,YAAY,MAAM,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAC/D,CAAA;QAED,MAAM,UAAU,GAAG,CAAC,eAAe;YACjC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,CAAA;QAElB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;QAC9B,IAAI,aAAa,GAAG,KAAK,CAAA;QAEzB,IAAI,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;YACvC,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,QAAQ;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,WAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM,KAAK,WAAW;QACpB,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM,KAAK,aAAa;QACtB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,KAAK,SAAS;QAClB,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9B,CAAC;CACF;AAvrBD,gCAurBC;AAEY,QAAA,oBAAoB,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,CAAA;AAE7D,SAAS,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAA,CAAC,CAAC;AAC1D,SAAS,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC;AAC/E,SAAS,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI;IAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SACpC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAClB,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from "./asyncIterable.js";
2
+ export * from "./deferred.js";
3
+ export * from "./descriptor.js";
4
+ export * from "./introspector.js";
5
+ export * from "./iterable.js";
6
+ export * from "./param.parser.js";
7
+ export * from "./pluggable.proxy.js";
8
+ export * from "./refmap.js";
9
+ export * from "./refset.js";
10
+ export * from "./symkeys.js";
11
+ export * from "./type.js";
12
+ export const NewClassesExtension: Patch;
13
+ import { Patch } from '@nejs/extension';
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.NewClassesExtension = void 0;
18
+ const extension_1 = require("@nejs/extension");
19
+ const asyncIterable_js_1 = require("./asyncIterable.js");
20
+ __exportStar(require("./asyncIterable.js"), exports);
21
+ const deferred_js_1 = require("./deferred.js");
22
+ __exportStar(require("./deferred.js"), exports);
23
+ const descriptor_js_1 = require("./descriptor.js");
24
+ __exportStar(require("./descriptor.js"), exports);
25
+ const introspector_js_1 = require("./introspector.js");
26
+ __exportStar(require("./introspector.js"), exports);
27
+ const iterable_js_1 = require("./iterable.js");
28
+ __exportStar(require("./iterable.js"), exports);
29
+ const param_parser_js_1 = require("./param.parser.js");
30
+ __exportStar(require("./param.parser.js"), exports);
31
+ const pluggable_proxy_js_1 = require("./pluggable.proxy.js");
32
+ __exportStar(require("./pluggable.proxy.js"), exports);
33
+ const refmap_js_1 = require("./refmap.js");
34
+ __exportStar(require("./refmap.js"), exports);
35
+ const refset_js_1 = require("./refset.js");
36
+ __exportStar(require("./refset.js"), exports);
37
+ const symkeys_js_1 = require("./symkeys.js");
38
+ __exportStar(require("./symkeys.js"), exports);
39
+ const type_js_1 = require("./type.js");
40
+ __exportStar(require("./type.js"), exports);
41
+ exports.NewClassesExtension = new extension_1.Patch(globalThis, {
42
+ AsyncIterable: asyncIterable_js_1.AsyncIterable,
43
+ AsyncIterator: asyncIterable_js_1.AsyncIterator,
44
+ Deferred: deferred_js_1.Deferred,
45
+ Descriptor: descriptor_js_1.Descriptor,
46
+ Introspector: introspector_js_1.Introspector,
47
+ Iterable: iterable_js_1.Iterable,
48
+ Iterator: iterable_js_1.Iterator,
49
+ ParamParser: param_parser_js_1.ParamParser,
50
+ PluggableProxy: pluggable_proxy_js_1.PluggableProxy,
51
+ ProxyHandler: pluggable_proxy_js_1.ProxyHandler,
52
+ RefMap: refmap_js_1.RefMap,
53
+ RefSet: refset_js_1.RefSet,
54
+ Symkeys: symkeys_js_1.Symkeys,
55
+ Type: type_js_1.Type,
56
+ });
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,yDAAiE;AACjE,qDAAkC;AAElC,+CAAwC;AACxC,gDAA6B;AAE7B,mDAA4C;AAC5C,kDAA+B;AAE/B,uDAAgD;AAChD,oDAAiC;AAEjC,+CAAiD;AACjD,gDAA6B;AAE7B,uDAA+C;AAC/C,oDAAiC;AAEjC,6DAAmE;AACnE,uDAAoC;AAEpC,2CAAqC;AACrC,8CAA2B;AAE3B,2CAAoC;AACpC,8CAA2B;AAE3B,6CAAsC;AACtC,+CAA4B;AAE5B,uCAAgC;AAChC,4CAAyB;AAEZ,QAAA,mBAAmB,GAAG,IAAI,iBAAK,CAAC,UAAU,EAAE;IACvD,aAAa,EAAb,gCAAa;IACb,aAAa,EAAb,gCAAa;IACb,QAAQ,EAAR,sBAAQ;IACR,UAAU,EAAV,0BAAU;IACV,YAAY,EAAZ,8BAAY;IACZ,QAAQ,EAAR,sBAAQ;IACR,QAAQ,EAAR,sBAAQ;IACR,WAAW,EAAX,6BAAW;IACX,cAAc,EAAd,mCAAc;IACd,YAAY,EAAZ,iCAAY;IACZ,MAAM,EAAN,kBAAM;IACN,MAAM,EAAN,kBAAM;IACN,OAAO,EAAP,oBAAO;IACP,IAAI,EAAJ,cAAI;CACL,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ export class Introspector {
2
+ static addExpansion(array: any): any;
3
+ static accessors(owner?: typeof globalThis, keys?: any[]): Map<any, any>;
4
+ static classes(owner?: typeof globalThis): any;
5
+ static functions(owner?: typeof globalThis): any;
6
+ static objects(owner?: typeof globalThis): any;
7
+ static properties(owner?: typeof globalThis): any;
8
+ static symbols(owner?: typeof globalThis): any;
9
+ static metadata(owner: any, key: any): {
10
+ owner: any;
11
+ key: any;
12
+ descriptor: undefined;
13
+ value: undefined;
14
+ readonly type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
15
+ };
16
+ static fetcher(typeNameOrTyperFn: any, regExp?: undefined, searchClass?: ObjectConstructor, searchFunction?: string, owner?: typeof globalThis): any;
17
+ static makeReport(owner?: typeof globalThis): {};
18
+ }
19
+ export const IntrospectorExtensions: Extension;
20
+ import { Extension } from '@nejs/extension';
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntrospectorExtensions = exports.Introspector = void 0;
4
+ const extension_1 = require("@nejs/extension");
5
+ class Introspector {
6
+ static addExpansion(array) {
7
+ const toEntriesFrom = (owner = globalThis) => {
8
+ return (accumulator, key) => {
9
+ const count = accumulator.length;
10
+ try {
11
+ const value = owner[key];
12
+ accumulator.splice(count, 0, [key, value], [value, key]);
13
+ }
14
+ catch (error) {
15
+ accumulator.splice(count, 0, [key, error]);
16
+ }
17
+ return accumulator;
18
+ };
19
+ };
20
+ return Object.defineProperty(array, 'expand', {
21
+ get() {
22
+ return new Map(this.reduce(toEntriesFrom(globalThis), []));
23
+ },
24
+ configurable: true,
25
+ enumerable: true,
26
+ });
27
+ }
28
+ static accessors(owner = globalThis, keys = []) {
29
+ const entries = [];
30
+ for (const key of keys) {
31
+ try {
32
+ const metadata = this.metadata(owner, key);
33
+ if (metadata.get || metadata.set) {
34
+ entries.push([key, metadata]);
35
+ }
36
+ continue;
37
+ }
38
+ catch (error) {
39
+ entries.push([key, error]);
40
+ }
41
+ }
42
+ return new Map(entries);
43
+ }
44
+ static classes(owner = globalThis) {
45
+ return this.fetcher('function', /^[A-Z]/, Object, 'getOwnPropertyNames', owner);
46
+ }
47
+ static functions(owner = globalThis) {
48
+ return this.fetcher('function', /^[a-z]/, Object, 'getOwnPropertyNames', owner);
49
+ }
50
+ static objects(owner = globalThis) {
51
+ return this.fetcher('object', null, Object, 'getOwnPropertyNames', owner);
52
+ }
53
+ static properties(owner = globalThis) {
54
+ return this.fetcher((v, t, d) => t !== 'object' && t !== 'function', null, Object, 'getOwnPropertyNames', owner);
55
+ }
56
+ static symbols(owner = globalThis) {
57
+ return this.addExpansion(Object.getOwnPropertySymbols(owner));
58
+ }
59
+ static metadata(owner, key) {
60
+ const metadata = {
61
+ owner, key,
62
+ descriptor: undefined,
63
+ value: undefined,
64
+ get type() { return typeof this.value; },
65
+ };
66
+ try {
67
+ metadata.descriptor = Object.getOwnPropertyDescriptor(owner, key);
68
+ }
69
+ catch (error) {
70
+ metadata.descriptor = error;
71
+ }
72
+ try {
73
+ metadata.value = (metadata.descriptor?.value ??
74
+ metadata.descriptor?.get?.bind(owner)?.() ??
75
+ owner[key]);
76
+ }
77
+ catch (error) {
78
+ metadata.value = error;
79
+ }
80
+ return metadata;
81
+ }
82
+ static fetcher(typeNameOrTyperFn, regExp = undefined, searchClass = Object, searchFunction = 'getOwnPropertyNames', owner = globalThis) {
83
+ let typer = typeNameOrTyperFn;
84
+ if (typeof typeNameOrTyperFn !== 'function') {
85
+ const type = String(typeNameOrTyperFn);
86
+ typer = (function (value, typeName, descriptor) {
87
+ return typeName === type;
88
+ }).bind(this);
89
+ }
90
+ return this.addExpansion(searchClass[searchFunction](owner).filter(key => {
91
+ const metadata = this.metadata(owner, key);
92
+ return ((!regExp || regExp.exec(String(key))) &&
93
+ typer(metadata.value, metadata.type, metadata.descriptor));
94
+ }).toSorted());
95
+ }
96
+ static makeReport(owner = globalThis) {
97
+ let names = [
98
+ 'classes', 'functions', 'objects', 'properties', 'symbols', 'accessors'
99
+ ];
100
+ let bound = names.reduce((a, n) => { a[n] = this[n].bind(this); return a; }, {});
101
+ const { classes, functions, objects, properties, symbols, accessors } = bound;
102
+ const result = {};
103
+ Object.assign(result, {
104
+ accessors: {
105
+ classes: undefined,
106
+ functions: undefined,
107
+ objects: undefined,
108
+ properties: undefined,
109
+ symbols: undefined,
110
+ },
111
+ classes: this[classes.name](),
112
+ functions: this[functions.name](),
113
+ objects: this[objects.name](),
114
+ properties: this[properties.name](),
115
+ symbols: this[symbols.name](),
116
+ expandAll() {
117
+ names.forEach(reportName => {
118
+ result[reportName] = result?.[reportName]?.expand;
119
+ });
120
+ },
121
+ })(names.forEach(type => {
122
+ debugger;
123
+ result.accessors[type] = accessors(globalThis, result[type]);
124
+ }));
125
+ return result;
126
+ }
127
+ }
128
+ exports.Introspector = Introspector;
129
+ exports.IntrospectorExtensions = new extension_1.Extension(Introspector);
130
+ //# sourceMappingURL=introspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspector.js","sourceRoot":"","sources":["../../../src/classes/introspector.js"],"names":[],"mappings":"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"}