@nejs/basic-extensions 2.21.0 → 2.22.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/.idea/markdown.xml +8 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/ne-basic-extensions.iml +8 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/CODE_STYLE.md +393 -0
  6. package/CODING_PHILOSOPHY.md +36 -0
  7. package/DOCUMENTATION_GUIDELINES.md +221 -0
  8. package/README.md +78 -4
  9. package/dist/@nejs/basic-extensions.bundle.2.22.6.js +25 -0
  10. package/dist/@nejs/basic-extensions.bundle.2.22.6.js.map +7 -0
  11. package/dist/cjs/classes/index.cjs +11129 -0
  12. package/dist/cjs/classes/index.cjs.map +7 -0
  13. package/dist/cjs/index.cjs +15191 -0
  14. package/dist/cjs/index.cjs.map +7 -0
  15. package/dist/cjs/utils/index.cjs +3954 -0
  16. package/dist/cjs/utils/index.cjs.map +7 -0
  17. package/dist/esm/basic-extensions.mjs +25 -0
  18. package/dist/esm/basic-extensions.mjs.map +7 -0
  19. package/package.json +16 -22
  20. package/repl.bootstrap.js +4 -7
  21. package/repl.history +30 -30
  22. package/src/big.int.extension.js +171 -45
  23. package/src/classes/enumeration.js +466 -0
  24. package/src/classes/index.js +5 -1
  25. package/src/index.js +5 -1
  26. package/src/math.extension.js +73 -0
  27. package/src/number.extension.js +18 -0
  28. package/src/regular.expression.extensions.js +0 -35
  29. package/src/utils/toolkit.js +699 -516
  30. package/tests/arrayextensions.test.js +3 -3
  31. package/tests/index.test.js +3 -1
  32. package/tests/newClasses/asyncIterable.test.js +3 -3
  33. package/tests/newClasses/deferred.test.js +3 -3
  34. package/tests/newClasses/descriptor.test.js +3 -3
  35. package/tests/newClasses/iterable.test.js +3 -3
  36. package/tests/newClasses/refmap.test.js +3 -3
  37. package/tests/newClasses/refset.test.js +3 -3
  38. package/tests/objectextensions.test.js +3 -3
  39. package/tests/setextensions.test.js +3 -3
  40. package/tests/stringextensions.test.js +3 -2
  41. package/tests/utils/descriptor.utils.test.js +1 -1
  42. package/tests/utils/toolkit.test.js +429 -163
  43. package/.esdoc.json +0 -9
  44. package/.vscode/settings.json +0 -5
  45. package/bin/build +0 -27
  46. package/bin/clean +0 -14
  47. package/bin/esbuild +0 -91
  48. package/bin/fixup +0 -13
  49. package/bin/repl.basics.js +0 -584
  50. package/bin/repl.signature.js +0 -63
  51. package/bin/version +0 -100
  52. package/dist/@nejs/basic-extensions.bundle.2.21.0.js +0 -25
  53. package/dist/@nejs/basic-extensions.bundle.2.21.0.js.map +0 -7
  54. package/dist/cjs/array.extensions.d.ts +0 -39
  55. package/dist/cjs/array.extensions.js +0 -477
  56. package/dist/cjs/array.extensions.js.map +0 -1
  57. package/dist/cjs/big.int.extension.d.ts +0 -31
  58. package/dist/cjs/big.int.extension.js +0 -165
  59. package/dist/cjs/big.int.extension.js.map +0 -1
  60. package/dist/cjs/classes/asyncIterable.d.ts +0 -126
  61. package/dist/cjs/classes/asyncIterable.js +0 -209
  62. package/dist/cjs/classes/asyncIterable.js.map +0 -1
  63. package/dist/cjs/classes/deferred.d.ts +0 -146
  64. package/dist/cjs/classes/deferred.js +0 -291
  65. package/dist/cjs/classes/deferred.js.map +0 -1
  66. package/dist/cjs/classes/descriptor.d.ts +0 -334
  67. package/dist/cjs/classes/descriptor.js +0 -537
  68. package/dist/cjs/classes/descriptor.js.map +0 -1
  69. package/dist/cjs/classes/enum.d.ts +0 -50
  70. package/dist/cjs/classes/enum.js +0 -405
  71. package/dist/cjs/classes/enum.js.map +0 -1
  72. package/dist/cjs/classes/index.d.ts +0 -15
  73. package/dist/cjs/classes/index.js +0 -63
  74. package/dist/cjs/classes/index.js.map +0 -1
  75. package/dist/cjs/classes/introspector.d.ts +0 -20
  76. package/dist/cjs/classes/introspector.js +0 -130
  77. package/dist/cjs/classes/introspector.js.map +0 -1
  78. package/dist/cjs/classes/iterable.d.ts +0 -169
  79. package/dist/cjs/classes/iterable.js +0 -268
  80. package/dist/cjs/classes/iterable.js.map +0 -1
  81. package/dist/cjs/classes/param.parser.d.ts +0 -221
  82. package/dist/cjs/classes/param.parser.js +0 -242
  83. package/dist/cjs/classes/param.parser.js.map +0 -1
  84. package/dist/cjs/classes/pluggable.proxy.d.ts +0 -153
  85. package/dist/cjs/classes/pluggable.proxy.js +0 -444
  86. package/dist/cjs/classes/pluggable.proxy.js.map +0 -1
  87. package/dist/cjs/classes/property.d.ts +0 -79
  88. package/dist/cjs/classes/property.js +0 -284
  89. package/dist/cjs/classes/property.js.map +0 -1
  90. package/dist/cjs/classes/refmap.d.ts +0 -238
  91. package/dist/cjs/classes/refmap.js +0 -421
  92. package/dist/cjs/classes/refmap.js.map +0 -1
  93. package/dist/cjs/classes/refset.d.ts +0 -186
  94. package/dist/cjs/classes/refset.js +0 -370
  95. package/dist/cjs/classes/refset.js.map +0 -1
  96. package/dist/cjs/classes/symkeys.d.ts +0 -349
  97. package/dist/cjs/classes/symkeys.js +0 -510
  98. package/dist/cjs/classes/symkeys.js.map +0 -1
  99. package/dist/cjs/classes/type.d.ts +0 -56
  100. package/dist/cjs/classes/type.js +0 -405
  101. package/dist/cjs/classes/type.js.map +0 -1
  102. package/dist/cjs/function.extensions.d.ts +0 -12
  103. package/dist/cjs/function.extensions.js +0 -758
  104. package/dist/cjs/function.extensions.js.map +0 -1
  105. package/dist/cjs/global.this.d.ts +0 -2
  106. package/dist/cjs/global.this.js +0 -300
  107. package/dist/cjs/global.this.js.map +0 -1
  108. package/dist/cjs/index.d.ts +0 -31
  109. package/dist/cjs/index.js +0 -226
  110. package/dist/cjs/index.js.map +0 -1
  111. package/dist/cjs/json.extensions.d.ts +0 -2
  112. package/dist/cjs/json.extensions.js +0 -109
  113. package/dist/cjs/json.extensions.js.map +0 -1
  114. package/dist/cjs/map.extensions.d.ts +0 -3
  115. package/dist/cjs/map.extensions.js +0 -143
  116. package/dist/cjs/map.extensions.js.map +0 -1
  117. package/dist/cjs/number.extension.d.ts +0 -44
  118. package/dist/cjs/number.extension.js +0 -261
  119. package/dist/cjs/number.extension.js.map +0 -1
  120. package/dist/cjs/object.extensions.d.ts +0 -33
  121. package/dist/cjs/object.extensions.js +0 -1091
  122. package/dist/cjs/object.extensions.js.map +0 -1
  123. package/dist/cjs/package.json +0 -3
  124. package/dist/cjs/proxy.extensions.d.ts +0 -2
  125. package/dist/cjs/proxy.extensions.js +0 -207
  126. package/dist/cjs/proxy.extensions.js.map +0 -1
  127. package/dist/cjs/reflect.extensions.d.ts +0 -14
  128. package/dist/cjs/reflect.extensions.js +0 -316
  129. package/dist/cjs/reflect.extensions.js.map +0 -1
  130. package/dist/cjs/regular.expression.extensions.d.ts +0 -2
  131. package/dist/cjs/regular.expression.extensions.js +0 -423
  132. package/dist/cjs/regular.expression.extensions.js.map +0 -1
  133. package/dist/cjs/set.extensions.d.ts +0 -40
  134. package/dist/cjs/set.extensions.js +0 -355
  135. package/dist/cjs/set.extensions.js.map +0 -1
  136. package/dist/cjs/string.extensions.d.ts +0 -23
  137. package/dist/cjs/string.extensions.js +0 -704
  138. package/dist/cjs/string.extensions.js.map +0 -1
  139. package/dist/cjs/symbol.extensions.d.ts +0 -11
  140. package/dist/cjs/symbol.extensions.js +0 -735
  141. package/dist/cjs/symbol.extensions.js.map +0 -1
  142. package/dist/cjs/utils/copy.object.d.ts +0 -408
  143. package/dist/cjs/utils/copy.object.js +0 -720
  144. package/dist/cjs/utils/copy.object.js.map +0 -1
  145. package/dist/cjs/utils/descriptor.utils.d.ts +0 -298
  146. package/dist/cjs/utils/descriptor.utils.js +0 -889
  147. package/dist/cjs/utils/descriptor.utils.js.map +0 -1
  148. package/dist/cjs/utils/index.d.ts +0 -75
  149. package/dist/cjs/utils/index.js +0 -61
  150. package/dist/cjs/utils/index.js.map +0 -1
  151. package/dist/cjs/utils/stdout.d.ts +0 -742
  152. package/dist/cjs/utils/stdout.js +0 -1042
  153. package/dist/cjs/utils/stdout.js.map +0 -1
  154. package/dist/cjs/utils/toolkit.d.ts +0 -1898
  155. package/dist/cjs/utils/toolkit.js +0 -1378
  156. package/dist/cjs/utils/toolkit.js.map +0 -1
  157. package/dist/cjs/weakref.extensions.d.ts +0 -2
  158. package/dist/cjs/weakref.extensions.js +0 -19
  159. package/dist/cjs/weakref.extensions.js.map +0 -1
  160. package/dist/mjs/array.extensions.d.ts +0 -39
  161. package/dist/mjs/array.extensions.js +0 -474
  162. package/dist/mjs/array.extensions.js.map +0 -1
  163. package/dist/mjs/big.int.extension.d.ts +0 -31
  164. package/dist/mjs/big.int.extension.js +0 -162
  165. package/dist/mjs/big.int.extension.js.map +0 -1
  166. package/dist/mjs/classes/asyncIterable.d.ts +0 -126
  167. package/dist/mjs/classes/asyncIterable.js +0 -204
  168. package/dist/mjs/classes/asyncIterable.js.map +0 -1
  169. package/dist/mjs/classes/deferred.d.ts +0 -146
  170. package/dist/mjs/classes/deferred.js +0 -287
  171. package/dist/mjs/classes/deferred.js.map +0 -1
  172. package/dist/mjs/classes/descriptor.d.ts +0 -334
  173. package/dist/mjs/classes/descriptor.js +0 -533
  174. package/dist/mjs/classes/descriptor.js.map +0 -1
  175. package/dist/mjs/classes/enum.d.ts +0 -50
  176. package/dist/mjs/classes/enum.js +0 -400
  177. package/dist/mjs/classes/enum.js.map +0 -1
  178. package/dist/mjs/classes/index.d.ts +0 -15
  179. package/dist/mjs/classes/index.js +0 -46
  180. package/dist/mjs/classes/index.js.map +0 -1
  181. package/dist/mjs/classes/introspector.d.ts +0 -20
  182. package/dist/mjs/classes/introspector.js +0 -126
  183. package/dist/mjs/classes/introspector.js.map +0 -1
  184. package/dist/mjs/classes/iterable.d.ts +0 -169
  185. package/dist/mjs/classes/iterable.js +0 -263
  186. package/dist/mjs/classes/iterable.js.map +0 -1
  187. package/dist/mjs/classes/param.parser.d.ts +0 -221
  188. package/dist/mjs/classes/param.parser.js +0 -238
  189. package/dist/mjs/classes/param.parser.js.map +0 -1
  190. package/dist/mjs/classes/pluggable.proxy.d.ts +0 -153
  191. package/dist/mjs/classes/pluggable.proxy.js +0 -438
  192. package/dist/mjs/classes/pluggable.proxy.js.map +0 -1
  193. package/dist/mjs/classes/property.d.ts +0 -79
  194. package/dist/mjs/classes/property.js +0 -280
  195. package/dist/mjs/classes/property.js.map +0 -1
  196. package/dist/mjs/classes/refmap.d.ts +0 -238
  197. package/dist/mjs/classes/refmap.js +0 -417
  198. package/dist/mjs/classes/refmap.js.map +0 -1
  199. package/dist/mjs/classes/refset.d.ts +0 -186
  200. package/dist/mjs/classes/refset.js +0 -366
  201. package/dist/mjs/classes/refset.js.map +0 -1
  202. package/dist/mjs/classes/symkeys.d.ts +0 -349
  203. package/dist/mjs/classes/symkeys.js +0 -506
  204. package/dist/mjs/classes/symkeys.js.map +0 -1
  205. package/dist/mjs/classes/type.d.ts +0 -56
  206. package/dist/mjs/classes/type.js +0 -401
  207. package/dist/mjs/classes/type.js.map +0 -1
  208. package/dist/mjs/function.extensions.d.ts +0 -12
  209. package/dist/mjs/function.extensions.js +0 -755
  210. package/dist/mjs/function.extensions.js.map +0 -1
  211. package/dist/mjs/global.this.d.ts +0 -2
  212. package/dist/mjs/global.this.js +0 -264
  213. package/dist/mjs/global.this.js.map +0 -1
  214. package/dist/mjs/index.d.ts +0 -31
  215. package/dist/mjs/index.js +0 -204
  216. package/dist/mjs/index.js.map +0 -1
  217. package/dist/mjs/json.extensions.d.ts +0 -2
  218. package/dist/mjs/json.extensions.js +0 -106
  219. package/dist/mjs/json.extensions.js.map +0 -1
  220. package/dist/mjs/map.extensions.d.ts +0 -3
  221. package/dist/mjs/map.extensions.js +0 -140
  222. package/dist/mjs/map.extensions.js.map +0 -1
  223. package/dist/mjs/number.extension.d.ts +0 -44
  224. package/dist/mjs/number.extension.js +0 -258
  225. package/dist/mjs/number.extension.js.map +0 -1
  226. package/dist/mjs/object.extensions.d.ts +0 -33
  227. package/dist/mjs/object.extensions.js +0 -1088
  228. package/dist/mjs/object.extensions.js.map +0 -1
  229. package/dist/mjs/package.json +0 -3
  230. package/dist/mjs/proxy.extensions.d.ts +0 -2
  231. package/dist/mjs/proxy.extensions.js +0 -204
  232. package/dist/mjs/proxy.extensions.js.map +0 -1
  233. package/dist/mjs/reflect.extensions.d.ts +0 -14
  234. package/dist/mjs/reflect.extensions.js +0 -313
  235. package/dist/mjs/reflect.extensions.js.map +0 -1
  236. package/dist/mjs/regular.expression.extensions.d.ts +0 -2
  237. package/dist/mjs/regular.expression.extensions.js +0 -420
  238. package/dist/mjs/regular.expression.extensions.js.map +0 -1
  239. package/dist/mjs/set.extensions.d.ts +0 -40
  240. package/dist/mjs/set.extensions.js +0 -352
  241. package/dist/mjs/set.extensions.js.map +0 -1
  242. package/dist/mjs/string.extensions.d.ts +0 -23
  243. package/dist/mjs/string.extensions.js +0 -701
  244. package/dist/mjs/string.extensions.js.map +0 -1
  245. package/dist/mjs/symbol.extensions.d.ts +0 -11
  246. package/dist/mjs/symbol.extensions.js +0 -732
  247. package/dist/mjs/symbol.extensions.js.map +0 -1
  248. package/dist/mjs/utils/copy.object.d.ts +0 -408
  249. package/dist/mjs/utils/copy.object.js +0 -702
  250. package/dist/mjs/utils/copy.object.js.map +0 -1
  251. package/dist/mjs/utils/descriptor.utils.d.ts +0 -298
  252. package/dist/mjs/utils/descriptor.utils.js +0 -875
  253. package/dist/mjs/utils/descriptor.utils.js.map +0 -1
  254. package/dist/mjs/utils/index.d.ts +0 -75
  255. package/dist/mjs/utils/index.js +0 -45
  256. package/dist/mjs/utils/index.js.map +0 -1
  257. package/dist/mjs/utils/stdout.d.ts +0 -742
  258. package/dist/mjs/utils/stdout.js +0 -1037
  259. package/dist/mjs/utils/stdout.js.map +0 -1
  260. package/dist/mjs/utils/toolkit.d.ts +0 -1898
  261. package/dist/mjs/utils/toolkit.js +0 -1373
  262. package/dist/mjs/utils/toolkit.js.map +0 -1
  263. package/dist/mjs/weakref.extensions.d.ts +0 -2
  264. package/dist/mjs/weakref.extensions.js +0 -16
  265. package/dist/mjs/weakref.extensions.js.map +0 -1
  266. package/jsdoc-config.json +0 -31
  267. package/tsconfig.base.json +0 -28
  268. package/tsconfig.cjs.json +0 -8
  269. package/tsconfig.esm.json +0 -8
  270. package/vitest.config.js +0 -7
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.extensions.js","sourceRoot":"","sources":["../../src/object.extensions.js"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
@@ -1,2 +0,0 @@
1
- export const ProxyExtensions: Patch;
2
- import { Patch } from '@nejs/extension';
@@ -1,204 +0,0 @@
1
- import { Patch } from '@nejs/extension';
2
- import { ObjectExtensions } from './object.extensions.js';
3
- import { StringExtensions } from './string.extensions.js';
4
- import { Symkeys } from './classes/symkeys.js';
5
- const { isObject } = ObjectExtensions.patches;
6
- const { isString } = StringExtensions.patches;
7
- const keys = new Symkeys('nejs.proxy');
8
- export const ProxyExtensions = new Patch(Proxy, {
9
- [Patch.kImmutablyHidden]: {
10
- /**
11
- * Getter method for the 'keys' property.
12
- *
13
- * This method returns the 'keys' object which is an instance of the
14
- * Symkeys class. The Symkeys class provides a way to easily generate
15
- * Symbol.for elements that follow a particular pattern and also allows
16
- * associated data storage with each generated key.
17
- *
18
- * @returns {Symkeys} The 'keys' object.
19
- *
20
- * @example
21
- * const proxyExtensions = new ProxyExtensions();
22
- * const kCustomKeyForMyProxy = Proxy.keys.add('mything', { thing: ... })
23
- *
24
- * new Proxy(object, {
25
- * get(target, property, receiver) {
26
- * if (property === kCustomKeyForMyProxy) {
27
- * // use associated data
28
- * return kCustomKeyForMyProxy.data.thing
29
- * }
30
- * return Reflect.get(target, property, receiver)
31
- * }
32
- * })
33
- */
34
- get keys() {
35
- return keys;
36
- },
37
- },
38
- [Patch.kMutablyHidden]: {
39
- /**
40
- * This method generates an object based on the trap type and values
41
- * provided. The trap type is a string that corresponds to a Proxy handler
42
- * method, and the values are either an array or an object that maps to
43
- * the parameters of the handler method.
44
- *
45
- * If the trap type is not a valid Proxy handler method, the function
46
- * returns undefined. If the values are an array, they are mapped to the
47
- * parameters of the handler method in order. If the values are an object,
48
- * only the entries that correspond to the parameters of the handler
49
- * method are used.
50
- *
51
- * @param {array | string} trapType - Either a key into the Proxy.types
52
- * object or the value that such a key might point to (i.e. an array of
53
- * string names, in order, that the trap of the same name expects)
54
- * @param {array | object} values - The values to be used for the trap
55
- * parameters.
56
- * @returns {object} An object that maps the trap parameters to the
57
- * provided values.
58
- *
59
- * @example
60
- * // note that when values is an array, the order needs to match the
61
- * // order of expected parameters for the trap function or the behavior
62
- * // is undefined.
63
- * trapParams('get', [
64
- * 'target',
65
- * 'property',
66
- * 'receiver'
67
- * ])
68
- * // Returns: {
69
- * // target: 'target', property: 'property', receiver: 'receiver'
70
- * // }
71
- *
72
- * trapParams(Proxy.types.get, {
73
- * target: 'target',
74
- * property: 'property',
75
- * receiver: 'receiver'
76
- * })
77
- * // Returns: {
78
- * // target: 'target', property: 'property', receiver: 'receiver'
79
- * // }
80
- */
81
- trapParams(trapType, values) {
82
- if ((isString(trapType) && !(~Proxy.types.indexOf(trapType))) ||
83
- !Array.isArray(trapType)) {
84
- return undefined;
85
- }
86
- let argumentNames = isString(trapType)
87
- ? Proxy.types[trapType]
88
- : trapType.map(element => String(element));
89
- let object = Object.create(Object.prototype);
90
- if (!Array.isArray(values) && !Object.isObject(values)) {
91
- values = [values];
92
- for (let i = 1; i < argumentNames.length; i++) {
93
- values.push(undefined);
94
- }
95
- }
96
- if (Array.isArray(values)) {
97
- argumentNames.reduce((acc, argName, index) => {
98
- acc[argName] = values?.[index];
99
- }, object);
100
- }
101
- else if (isObject(values)) {
102
- for (let [key, value] of Object.entries(values)) {
103
- if (key in argumentNames) {
104
- object[key] = value;
105
- }
106
- }
107
- }
108
- return object;
109
- },
110
- types: {
111
- /**
112
- * The handler.apply() method is a trap for the [[Call]] object internal
113
- * method, which is used by operations such as function calls.
114
- * MDN link: https://t.ly/orBsG
115
- */
116
- get apply() { return ['target', 'thisArg', 'argumentsList']; },
117
- /**
118
- * The handler.construct() method is a trap for the [[Construct]] object
119
- * internal method, which is used by operations such as the new operator.
120
- * In order for the new operation to be valid on the resulting Proxy
121
- * object, the target used to initialize the proxy must itself be a
122
- * valid constructor.
123
- * MDN link: https://t.ly/1LukS
124
- */
125
- get construct() { return ['target', 'args']; },
126
- /**
127
- * The handler.defineProperty() method is a trap for the
128
- * [[DefineOwnProperty]] object internal method, which is used by
129
- * operations such as Object.defineProperty().
130
- * MDN link: https://t.ly/3Ml9y
131
- */
132
- get defineProperty() { return ['target', 'key', 'descriptor']; },
133
- /**
134
- * The handler.deleteProperty() method is a trap for the [[Delete]]
135
- * object internal method, which is used by operations such as the
136
- * delete operator.
137
- * MDN link: https://t.ly/neu2H
138
- */
139
- get deleteProperty() { return ['target', 'property']; },
140
- /**
141
- * The handler.get() method is a trap for the [[Get]] object internal
142
- * method, which is used by operations such as property accessors.
143
- * MDN link: https://t.ly/E419x
144
- */
145
- get get() { return ['target', 'property', 'receiver']; },
146
- /**
147
- * The handler.getOwnPropertyDescriptor() method is a trap for the
148
- * [[GetOwnProperty]] object internal method, which is used by operations
149
- * such as Object.getOwnPropertyDescriptor().
150
- * MDN link: https://t.ly/wzPTX
151
- */
152
- get getOwnPropertyDescriptor() { return ['target', 'property']; },
153
- /**
154
- * The handler.getPrototypeOf() method is a trap for the
155
- * [[GetPrototypeOf]] object internal method, which is used by operations
156
- * such as Object.getPrototypeOf().
157
- * MDN link: https://t.ly/Ww4S1
158
- */
159
- get getPrototypeOf() { return ['target']; },
160
- /**
161
- * The handler.has() method is a trap for the [[HasProperty]] object
162
- * internal method, which is used by operations such as the in operator.
163
- * MDN link: https://t.ly/UcJL-
164
- */
165
- get has() { return ['target', 'prototype']; },
166
- /**
167
- * The handler.isExtensible() method is a trap for the [[IsExtensible]]
168
- * object internal method, which is used by operations such as
169
- * Object.isExtensible().
170
- * MDN link: https://t.ly/MkdIK
171
- */
172
- get isExtensible() { return ['target']; },
173
- /**
174
- * The handler.ownKeys() method is a trap for the [[OwnPropertyKeys]]
175
- * object internal method, which is used by operations such as
176
- * Object.keys(), Reflect.ownKeys(), etc.
177
- * MDN link: https://t.ly/QkiTI
178
- */
179
- get ownKeys() { return ['target']; },
180
- /**
181
- * The handler.preventExtensions() method is a trap for the
182
- * [[PreventExtensions]] object internal method, which is used by
183
- * operations such as Object.preventExtensions().
184
- * MDN link: https://t.ly/nvfjJ
185
- */
186
- get preventExtensions() { return ['target']; },
187
- /**
188
- * The handler.set() method is a trap for the [[Set]] object internal
189
- * method, which is used by operations such as using property accessors
190
- * to set a property's value.
191
- * MDN link: https://t.ly/FDWcl
192
- */
193
- get set() { return ['target', 'property', 'value', 'receiver']; },
194
- /**
195
- * The handler.setPrototypeOf() method is a trap for the
196
- * [[SetPrototypeOf]] object internal method, which is used by operations
197
- * such as Object.setPrototypeOf().
198
- * MDN link: https://t.ly/pS8ej
199
- */
200
- get setPrototypeOf() { return ['target', 'prototype']; },
201
- },
202
- }
203
- });
204
- //# sourceMappingURL=proxy.extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy.extensions.js","sourceRoot":"","sources":["../../src/proxy.extensions.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAA;AAC7C,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAA;AAE7C,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;IAC9C,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;QACxB;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH,IAAI,IAAI;YACN,OAAO,IAAI,CAAA;QACb,CAAC;KACF;IAED,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyCE;QACF,UAAU,CAAC,QAAQ,EAAE,MAAM;YACzB,IACE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACzD,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxB,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,IAAI,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;YAE5C,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAE5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC3C,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;gBAChC,CAAC,EAAE,MAAM,CAAC,CAAA;YACZ,CAAC;iBACI,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChD,IAAI,GAAG,IAAI,aAAa,EAAE,CAAC;wBACzB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,EAAE;YACL;;;;eAIG;YACH,IAAI,KAAK,KAAK,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA,CAAC,CAAC;YAE7D;;;;;;;eAOG;YACH,IAAI,SAAS,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC;YAE7C;;;;;eAKG;YACH,IAAI,cAAc,KAAK,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA,CAAC,CAAC;YAE/D;;;;;eAKG;YACH,IAAI,cAAc,KAAK,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA,CAAC,CAAC;YAEtD;;;;eAIG;YACH,IAAI,GAAG,KAAK,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA,CAAC,CAAC;YAEvD;;;;;eAKG;YACH,IAAI,wBAAwB,KAAK,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA,CAAC,CAAC;YAEhE;;;;;eAKG;YACH,IAAI,cAAc,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;YAE1C;;;;eAIG;YACH,IAAI,GAAG,KAAK,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA,CAAC,CAAC;YAE5C;;;;;eAKG;YACH,IAAI,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;YAExC;;;;;eAKG;YACH,IAAI,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;YAEnC;;;;;eAKG;YACH,IAAI,iBAAiB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;YAE7C;;;;;eAKG;YACH,IAAI,GAAG,KAAK,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA,CAAC,CAAC;YAEhE;;;;;eAKG;YACH,IAAI,cAAc,KAAK,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA,CAAC,CAAC;SACxD;KACF;CACF,CAAC,CAAA"}
@@ -1,14 +0,0 @@
1
- /**
2
- * The `ReflectExtensions` class is a patch applied to the built-in JavaScript
3
- * `Reflect` object. It extends `Reflect` with additional utility methods that
4
- * enhance its capabilities. These methods provide more advanced ways of
5
- * interacting with object properties, such as checking for the presence of
6
- * multiple keys at once (`hasAll`) or verifying if at least one specified key
7
- * exists in an object (`hasSome`). This class is part of the `@nejs/extension`
8
- * library and is designed to offer these extended functionalities in a way
9
- * that is consistent with the existing `Reflect` API, making it intuitive for
10
- * developers who are already familiar with standard reflection methods in
11
- * JavaScript.
12
- */
13
- export const ReflectExtensions: Patch;
14
- import { Patch } from '@nejs/extension';
@@ -1,313 +0,0 @@
1
- import { Patch } from '@nejs/extension';
2
- /**
3
- * The `ReflectExtensions` class is a patch applied to the built-in JavaScript
4
- * `Reflect` object. It extends `Reflect` with additional utility methods that
5
- * enhance its capabilities. These methods provide more advanced ways of
6
- * interacting with object properties, such as checking for the presence of
7
- * multiple keys at once (`hasAll`) or verifying if at least one specified key
8
- * exists in an object (`hasSome`). This class is part of the `@nejs/extension`
9
- * library and is designed to offer these extended functionalities in a way
10
- * that is consistent with the existing `Reflect` API, making it intuitive for
11
- * developers who are already familiar with standard reflection methods in
12
- * JavaScript.
13
- */
14
- export const ReflectExtensions = new Patch(Reflect, {
15
- /**
16
- * The function checks if an object has all the specified keys.
17
- *
18
- * @param object - The `object` parameter is the object that we want to
19
- * check if it has all the specified keys.
20
- * @param keys - The `keys` parameter is a rest parameter, which means
21
- * it can accept any number of arguments. In this case, it is expected
22
- * to receive multiple keys as arguments.
23
- * @returns a boolean value.
24
- */
25
- hasAll(object, ...keys) {
26
- return Object.isObject(object) && (keys.flat(Infinity)
27
- .map(key => Reflect.has(object, key))
28
- .every(has => has));
29
- },
30
- /**
31
- * The function checks if an object has at least one of the specified keys.
32
- *
33
- * @param object - The `object` parameter is the object that we want to check
34
- * for the presence of certain keys.
35
- * @param keys - The `keys` parameter is a rest parameter, which means it can
36
- * accept any number of arguments. These arguments are the keys that we want
37
- * to check if they exist in the `object`.
38
- * @returns The function `hasSome` returns a boolean value indicating whether
39
- * at least one of the keys provided as arguments exists in the given object.
40
- */
41
- hasSome(object, ...keys) {
42
- return isObject(object) && (keys.flat(Infinity)
43
- .map(key => Reflect.has(object, key))
44
- .some(has => has));
45
- },
46
- /**
47
- * The `metadata` method retrieves metadata about a property of an object.
48
- * It returns an object containing information about the property, such as
49
- * its value, descriptor, and whether it is read-only, assignable, an
50
- * accessor, or a data descriptor.
51
- *
52
- * @param {string} key - The name of the property.
53
- * @param {object} [owner=globalThis] - The object that owns the property.
54
- * If not provided, it defaults to the global object.
55
- * @returns {object|undefined} An object containing metadata about the
56
- * property, or `undefined` if the property does not exist or the owner is
57
- * not an object.
58
- *
59
- * @example
60
- * const obj = { foo: 'bar' }
61
- * const meta = ReflectExtensions.metadata('foo', obj)
62
- * console.log(meta.value) // Outputs: 'bar'
63
- * console.log(meta.isReadOnly) // Outputs: false
64
- */
65
- metadata(key, owner = globalThis) {
66
- const args = [{ key }, { owner }];
67
- const variants = applyVariants(args)();
68
- if (variants.check(0)) {
69
- key = variants.object.key;
70
- owner = variants.object.owner;
71
- }
72
- const descriptor = isObject(owner) && isValidKey(key)
73
- ? Object.getOwnPropertyDescriptor(owner, key)
74
- : undefined;
75
- const value = () => descriptor?.get?.bind(owner)?.() ?? owner[key];
76
- if (!descriptor) {
77
- return undefined;
78
- }
79
- const meta = {
80
- /**
81
- * A getter method that returns the owner of the property.
82
- * The owner is the object that owns the property.
83
- *
84
- * @returns {object} The owner of the property.
85
- *
86
- * @example
87
- * const obj = { foo: 'bar' }
88
- * const meta = Reflect.metadata('foo', obj)
89
- * console.log(meta.owner) // Outputs: obj
90
- */
91
- get owner() { return owner; },
92
- /**
93
- * A getter method that returns the key of the property.
94
- * The key is the name of the property.
95
- *
96
- * @returns {string} The key of the property.
97
- *
98
- * @example
99
- * const obj = { foo: 'bar' }
100
- * const meta = Reflect.metadata('foo', obj)
101
- * console.log(meta.key) // Outputs: 'foo'
102
- */
103
- get key() { return key; },
104
- /**
105
- * A getter method that returns the value of the property.
106
- * The value is obtained by invoking the `value` function.
107
- *
108
- * @returns {*} The value of the property.
109
- *
110
- * @example
111
- * const obj = { foo: 'bar' }
112
- * const meta = Reflect.metadata('foo', obj)
113
- * console.log(meta.value) // Outputs: 'bar'
114
- */
115
- get value() { return value(); },
116
- /**
117
- * A getter method that returns the descriptor of the property.
118
- * The descriptor is an object that describes a property's configuration.
119
- * It includes properties like value, writable, enumerable, configurable,
120
- * get, and set.
121
- *
122
- * @returns {object} The descriptor of the property.
123
- *
124
- * @example
125
- * const obj = { foo: 'bar' }
126
- * const meta = Reflect.metadata('foo', obj)
127
- * console.log(meta.descriptor)
128
- *
129
- * // Outputs: {
130
- * // value: 'bar',
131
- * // writable: true,
132
- * // enumerable: true,
133
- * // configurable: true
134
- * // }
135
- */
136
- get descriptor() { return descriptor; },
137
- /**
138
- * A getter method that checks if the property is read-only.
139
- * A property is considered read-only if it is an accessor property
140
- * (i.e., it has a getter or a setter) and it does not have a setter.
141
- * This means that the property can be read, but not written to.
142
- *
143
- * @returns {boolean} `true` if the property is read-only,
144
- * `false` otherwise.
145
- *
146
- * @example
147
- * const obj = {
148
- * get foo() { return 'bar' }
149
- * }
150
- * const meta = Reflect.metadata('foo', obj)
151
- * console.log(meta.isReadOnly) // Outputs: true
152
- */
153
- get isReadOnly() {
154
- return this.isAccessor && !descriptor?.set;
155
- },
156
- /**
157
- * A getter method that checks if the property is assignable.
158
- * A property is considered assignable if it is either configurable
159
- * or writable. Configurable properties can be modified and deleted,
160
- * while writable properties can have their values changed.
161
- *
162
- * @returns {boolean} `true` if the property is assignable,
163
- * `false` otherwise.
164
- *
165
- * @example
166
- * const obj = { foo: 'bar' }
167
- * const meta = Reflect.metadata('foo', obj)
168
- * console.log(meta.isAssignable) // Outputs: true
169
- */
170
- get isAssignable() {
171
- return descriptor?.configurable ?? descriptor?.writable;
172
- },
173
- /**
174
- * A getter method that checks if the property is an accessor.
175
- * An accessor property is a property that has a getter method, a setter
176
- * method, or both. This method returns `true` if the property has either
177
- * a getter or a setter, and `false` otherwise.
178
- *
179
- * @returns {boolean} `true` if the property is an accessor,
180
- * `false` otherwise.
181
- *
182
- * @example
183
- * const obj = {
184
- * get foo() { return 'bar' },
185
- * set foo(value) { console.log('Setting foo to', value) }
186
- * }
187
- * const meta = Reflect.metadata('foo', obj)
188
- * console.log(meta.isAccessor) // Outputs: true
189
- */
190
- get isAccessor() {
191
- return !!(this?.descriptor?.get || this?.descriptor?.set);
192
- },
193
- /**
194
- * A getter method that checks if the property is a data property.
195
- * A data property is a property that has a value and can be written to.
196
- * This method returns `true` if the property has a value or is writable,
197
- * and `false` otherwise.
198
- *
199
- * @returns {boolean} `true` if the property is a data property,
200
- * `false` otherwise.
201
- *
202
- * @example
203
- * const obj = { foo: 'bar' }
204
- * const meta = Reflect.metadata('foo', obj)
205
- * console.log(meta.isData) // Outputs: true
206
- */
207
- get isData() {
208
- return !!(this?.descriptor?.value || this?.descriptor?.writable);
209
- },
210
- };
211
- return meta;
212
- },
213
- /**
214
- * Fetches all descriptors of an object, including those mapped to a
215
- * symbol descriptor value.
216
- *
217
- * @param {object} object the object from whose descriptors need to be
218
- * retrieved.
219
- * @returns {object} with keys mapped to object descriptors
220
- * @throws {TypeError} if the supplied `object` is null or not an object
221
- * a TypeError exception will be thrown
222
- */
223
- ownDescriptors(object) {
224
- if (!isObject(object)) {
225
- throw new TypeError('The supplied object must be non-null and an object');
226
- }
227
- const result = {};
228
- const keys = Reflect.ownKeys(object);
229
- for (const key of keys) {
230
- result[key] = Object.getOwnPropertyDescriptor(key);
231
- }
232
- return result;
233
- },
234
- /**
235
- * Retrieves an array of [key, descriptor] pairs for each property of the
236
- * provided object. This method is akin to `Object.entries` but includes
237
- * property descriptors instead of the property values. It's useful for cases
238
- * where you need detailed information about properties, including their
239
- * configurability, enumerability, and accessors.
240
- *
241
- * @param {object} object - The object whose property entries are to be
242
- * retrieved.
243
- * @returns {Array} An array of [key, descriptor] pairs, where each pair
244
- * consists of the property name (key) and its descriptor. Returns an empty
245
- * array if the input is not a valid object.
246
- */
247
- entries(object) {
248
- if (!object || typeof object !== 'object') {
249
- return [];
250
- }
251
- return Reflect.ownKeys(object).map(key => [
252
- key, Object.getOwnPropertyDescriptor(object, key)
253
- ]);
254
- },
255
- /**
256
- * Retrieves an array of values from the property descriptors of the given
257
- * object. This method works similarly to `Object.values` but operates on
258
- * property descriptors instead. It's useful when you need the values of
259
- * properties including getters, setters, and other descriptor-specific
260
- * attributes.
261
- *
262
- * @param {object} object - The object whose property values are to be
263
- * retrieved.
264
- * @returns {Array} An array of values extracted from the object's property
265
- * descriptors. The values correspond to the `value` attribute in each
266
- * property's descriptor. Returns an empty array if the input is not a valid
267
- * object.
268
- */
269
- values(object) {
270
- return Reflect.entries.map(([, value]) => value);
271
- },
272
- });
273
- function isObject(value) {
274
- return value && typeof value === 'object';
275
- }
276
- function isValidKey(value) {
277
- return ['string', 'symbol'].some(type => typeof value === type);
278
- }
279
- function applyVariants(thisArg) {
280
- return ((function variants() {
281
- const keys = this.map(o => Object.keys(o)?.[0]);
282
- const entries = this.map(o => Object.entries(o)?.[0]);
283
- const object = entries.reduce((acc, [key, value]) => {
284
- acc[key] = value;
285
- return acc;
286
- }, {});
287
- const result = {
288
- order: keys,
289
- entries: entries,
290
- object: object,
291
- };
292
- Object.defineProperty(result, 'check', {
293
- value(position) {
294
- if (typeof position !== 'number' &&
295
- position >= 0 &&
296
- position < this.order.length) {
297
- return false;
298
- }
299
- const value = this.entries[position][1];
300
- if (typeof value === 'object' && value) {
301
- if (Object.keys(value).every(key => ~this.order.indexOf(key))) {
302
- return true;
303
- }
304
- }
305
- return false;
306
- },
307
- enumerable: false,
308
- configurable: true
309
- });
310
- return result;
311
- }).bind(thisArg));
312
- }
313
- //# sourceMappingURL=reflect.extensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflect.extensions.js","sourceRoot":"","sources":["../../src/reflect.extensions.js"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export const RegExpExtensions: Patch;
2
- import { Patch } from '@nejs/extension';