@nejs/basic-extensions 2.9.0 → 2.11.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 (176) hide show
  1. package/dist/@nejs/basic-extensions.bundle.2.11.0.js +19 -0
  2. package/dist/@nejs/basic-extensions.bundle.2.11.0.js.map +7 -0
  3. package/dist/cjs/array.extensions.js +174 -0
  4. package/dist/cjs/array.extensions.js.map +1 -1
  5. package/dist/cjs/big.int.extension.js +1 -0
  6. package/dist/cjs/big.int.extension.js.map +1 -1
  7. package/dist/cjs/classes/descriptor.d.ts +67 -155
  8. package/dist/cjs/classes/descriptor.js +185 -278
  9. package/dist/cjs/classes/descriptor.js.map +1 -1
  10. package/dist/cjs/classes/index.d.ts +1 -0
  11. package/dist/cjs/classes/index.js +3 -0
  12. package/dist/cjs/classes/index.js.map +1 -1
  13. package/dist/cjs/classes/iterable.d.ts +44 -0
  14. package/dist/cjs/classes/iterable.js +64 -0
  15. package/dist/cjs/classes/iterable.js.map +1 -1
  16. package/dist/cjs/classes/param.parser.d.ts +10 -10
  17. package/dist/cjs/classes/property.d.ts +86 -0
  18. package/dist/cjs/classes/property.js +284 -0
  19. package/dist/cjs/classes/property.js.map +1 -0
  20. package/dist/cjs/classes/symkeys.d.ts +68 -11
  21. package/dist/cjs/classes/symkeys.js +103 -17
  22. package/dist/cjs/classes/symkeys.js.map +1 -1
  23. package/dist/cjs/classes/type.d.ts +4 -4
  24. package/dist/cjs/function.extensions.js +1 -0
  25. package/dist/cjs/function.extensions.js.map +1 -1
  26. package/dist/cjs/global.this.js +29 -0
  27. package/dist/cjs/global.this.js.map +1 -1
  28. package/dist/cjs/index.d.ts +3 -0
  29. package/dist/cjs/index.js +19 -0
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/json.extensions.js +19 -18
  32. package/dist/cjs/json.extensions.js.map +1 -1
  33. package/dist/cjs/map.extensions.js +1 -0
  34. package/dist/cjs/map.extensions.js.map +1 -1
  35. package/dist/cjs/number.extension.js +1 -0
  36. package/dist/cjs/number.extension.js.map +1 -1
  37. package/dist/cjs/object.extensions.d.ts +0 -29
  38. package/dist/cjs/object.extensions.js +218 -255
  39. package/dist/cjs/object.extensions.js.map +1 -1
  40. package/dist/cjs/set.extensions.js +1 -0
  41. package/dist/cjs/set.extensions.js.map +1 -1
  42. package/dist/cjs/string.extensions.js +474 -469
  43. package/dist/cjs/string.extensions.js.map +1 -1
  44. package/dist/cjs/symbol.extensions.js +387 -32
  45. package/dist/cjs/symbol.extensions.js.map +1 -1
  46. package/dist/cjs/utils/copy.object.d.ts +408 -0
  47. package/dist/cjs/utils/copy.object.js +720 -0
  48. package/dist/cjs/utils/copy.object.js.map +1 -0
  49. package/dist/cjs/utils/descriptor.utils.d.ts +146 -0
  50. package/dist/cjs/utils/descriptor.utils.js +614 -0
  51. package/dist/cjs/utils/descriptor.utils.js.map +1 -0
  52. package/dist/cjs/utils/index.d.ts +60 -0
  53. package/dist/cjs/utils/index.js +52 -0
  54. package/dist/cjs/utils/index.js.map +1 -0
  55. package/dist/cjs/utils/toolkit.d.ts +1898 -0
  56. package/dist/cjs/utils/toolkit.js +1378 -0
  57. package/dist/cjs/utils/toolkit.js.map +1 -0
  58. package/dist/mjs/array.extensions.js +174 -0
  59. package/dist/mjs/array.extensions.js.map +1 -1
  60. package/dist/mjs/big.int.extension.js +1 -0
  61. package/dist/mjs/big.int.extension.js.map +1 -1
  62. package/dist/mjs/classes/descriptor.d.ts +67 -155
  63. package/dist/mjs/classes/descriptor.js +185 -278
  64. package/dist/mjs/classes/descriptor.js.map +1 -1
  65. package/dist/mjs/classes/index.d.ts +1 -0
  66. package/dist/mjs/classes/index.js +3 -0
  67. package/dist/mjs/classes/index.js.map +1 -1
  68. package/dist/mjs/classes/iterable.d.ts +44 -0
  69. package/dist/mjs/classes/iterable.js +64 -0
  70. package/dist/mjs/classes/iterable.js.map +1 -1
  71. package/dist/mjs/classes/param.parser.d.ts +10 -10
  72. package/dist/mjs/classes/property.d.ts +86 -0
  73. package/dist/mjs/classes/property.js +280 -0
  74. package/dist/mjs/classes/property.js.map +1 -0
  75. package/dist/mjs/classes/symkeys.d.ts +68 -11
  76. package/dist/mjs/classes/symkeys.js +103 -17
  77. package/dist/mjs/classes/symkeys.js.map +1 -1
  78. package/dist/mjs/classes/type.d.ts +4 -4
  79. package/dist/mjs/function.extensions.js +1 -0
  80. package/dist/mjs/function.extensions.js.map +1 -1
  81. package/dist/mjs/global.this.js +6 -0
  82. package/dist/mjs/global.this.js.map +1 -1
  83. package/dist/mjs/index.d.ts +3 -0
  84. package/dist/mjs/index.js +5 -0
  85. package/dist/mjs/index.js.map +1 -1
  86. package/dist/mjs/json.extensions.js +19 -18
  87. package/dist/mjs/json.extensions.js.map +1 -1
  88. package/dist/mjs/map.extensions.js +1 -0
  89. package/dist/mjs/map.extensions.js.map +1 -1
  90. package/dist/mjs/number.extension.js +1 -0
  91. package/dist/mjs/number.extension.js.map +1 -1
  92. package/dist/mjs/object.extensions.d.ts +0 -29
  93. package/dist/mjs/object.extensions.js +215 -251
  94. package/dist/mjs/object.extensions.js.map +1 -1
  95. package/dist/mjs/set.extensions.js +1 -0
  96. package/dist/mjs/set.extensions.js.map +1 -1
  97. package/dist/mjs/string.extensions.js +474 -469
  98. package/dist/mjs/string.extensions.js.map +1 -1
  99. package/dist/mjs/symbol.extensions.js +387 -32
  100. package/dist/mjs/symbol.extensions.js.map +1 -1
  101. package/dist/mjs/utils/copy.object.d.ts +408 -0
  102. package/dist/mjs/utils/copy.object.js +702 -0
  103. package/dist/mjs/utils/copy.object.js.map +1 -0
  104. package/dist/mjs/utils/descriptor.utils.d.ts +146 -0
  105. package/dist/mjs/utils/descriptor.utils.js +606 -0
  106. package/dist/mjs/utils/descriptor.utils.js.map +1 -0
  107. package/dist/mjs/utils/index.d.ts +60 -0
  108. package/dist/mjs/utils/index.js +36 -0
  109. package/dist/mjs/utils/index.js.map +1 -0
  110. package/dist/mjs/utils/toolkit.d.ts +1898 -0
  111. package/dist/mjs/utils/toolkit.js +1373 -0
  112. package/dist/mjs/utils/toolkit.js.map +1 -0
  113. package/package.json +29 -37
  114. package/repl.bootstrap.js +12 -1
  115. package/src/array.extensions.js +191 -1
  116. package/src/big.int.extension.js +3 -1
  117. package/src/classes/descriptor.js +206 -305
  118. package/src/classes/index.js +4 -0
  119. package/src/classes/iterable.js +74 -0
  120. package/src/classes/property.js +333 -0
  121. package/src/classes/symkeys.js +120 -19
  122. package/src/function.extensions.js +2 -0
  123. package/src/global.this.js +8 -0
  124. package/src/index.js +6 -0
  125. package/src/json.extensions.js +18 -19
  126. package/src/map.extensions.js +3 -1
  127. package/src/number.extension.js +3 -1
  128. package/src/object.extensions.js +240 -277
  129. package/src/set.extensions.js +3 -1
  130. package/src/string.extensions.js +512 -506
  131. package/src/symbol.extensions.js +413 -30
  132. package/src/utils/copy.object.js +780 -0
  133. package/src/utils/descriptor.utils.js +707 -0
  134. package/src/utils/index.js +74 -0
  135. package/src/utils/toolkit.js +1473 -0
  136. package/tests/arrayextensions.test.js +2 -0
  137. package/tests/index.test.js +1 -0
  138. package/tests/newClasses/asyncIterable.test.js +2 -0
  139. package/tests/newClasses/deferred.test.js +5 -3
  140. package/tests/newClasses/descriptor.test.js +6 -8
  141. package/tests/newClasses/iterable.test.js +2 -0
  142. package/tests/newClasses/refmap.test.js +2 -1
  143. package/tests/newClasses/refset.test.js +2 -0
  144. package/tests/objectextensions.test.js +2 -0
  145. package/tests/setextensions.test.js +2 -0
  146. package/tests/stringextensions.test.js +1 -0
  147. package/tests/utils/toolkit.test.js +223 -0
  148. package/tsconfig.base.json +1 -1
  149. package/vitest.config.js +7 -0
  150. package/dist/@nejs/basic-extensions.bundle.2.8.0.js +0 -19
  151. package/dist/@nejs/basic-extensions.bundle.2.8.0.js.map +0 -7
  152. package/docs/assets/anchor.js +0 -350
  153. package/docs/assets/bass-addons.css +0 -12
  154. package/docs/assets/bass.css +0 -544
  155. package/docs/assets/fonts/EOT/SourceCodePro-Bold.eot +0 -0
  156. package/docs/assets/fonts/EOT/SourceCodePro-Regular.eot +0 -0
  157. package/docs/assets/fonts/LICENSE.txt +0 -93
  158. package/docs/assets/fonts/OTF/SourceCodePro-Bold.otf +0 -0
  159. package/docs/assets/fonts/OTF/SourceCodePro-Regular.otf +0 -0
  160. package/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf +0 -0
  161. package/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf +0 -0
  162. package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff +0 -0
  163. package/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff +0 -0
  164. package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff +0 -0
  165. package/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff +0 -0
  166. package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 +0 -0
  167. package/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 +0 -0
  168. package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 +0 -0
  169. package/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 +0 -0
  170. package/docs/assets/fonts/source-code-pro.css +0 -23
  171. package/docs/assets/github.css +0 -123
  172. package/docs/assets/site.js +0 -168
  173. package/docs/assets/split.css +0 -15
  174. package/docs/assets/split.js +0 -782
  175. package/docs/assets/style.css +0 -147
  176. package/docs/index.html +0 -35485
@@ -52,6 +52,9 @@ exports.ArrayExtensions = new extension_1.Patch(Array, {
52
52
  },
53
53
  });
54
54
  const { ifArray: pIfArray } = exports.ArrayExtensions.patches;
55
+ // todo: everyOfType(type), someOfType(type)
56
+ // todo: everyWithTag(stringTag), someWithTag(stringTag),
57
+ // todo: everyOfInstance(Class), someOfInstance(Class)
55
58
  /**
56
59
  * `ArrayPrototypeExtensions` is a constant that applies a patch to the
57
60
  * Array prototype. This patch extends the Array prototype with additional
@@ -247,6 +250,26 @@ exports.ArrayPrototypeExtensions = new extension_1.Patch(Array.prototype, {
247
250
  get last() {
248
251
  return this[this.length - 1];
249
252
  },
253
+ /**
254
+ * A getter that returns a new array containing only truthy elements.
255
+ * Filters out falsy values like null, undefined, 0, false, NaN, and ''.
256
+ * Useful for quickly removing falsy values from an array.
257
+ *
258
+ * @returns {Array} A new array with only truthy elements.
259
+ */
260
+ get onlyTruthy() {
261
+ return this.filter(truthy => !!truthy);
262
+ },
263
+ /**
264
+ * A getter that returns a new array containing only falsy elements.
265
+ * Keeps falsy values like null, undefined, 0, false, NaN, and ''.
266
+ * Useful for isolating falsy values in an array for further processing.
267
+ *
268
+ * @returns {Array} A new array with only falsy elements.
269
+ */
270
+ get onlyFalsy() {
271
+ return this.filter(falsy => !!!falsy);
272
+ },
250
273
  // expected usage:
251
274
  // function example(name, age) {
252
275
  // const variants = [{name}, {age}].variants()
@@ -284,12 +307,163 @@ exports.ArrayPrototypeExtensions = new extension_1.Patch(Array.prototype, {
284
307
  });
285
308
  return result;
286
309
  },
310
+ /**
311
+ * Weaves together an array of keys and an array of values into an
312
+ * object, using the provided default value for missing values and
313
+ * the specified base descriptor for defining properties. This can
314
+ * be used to quickly generate empty models if a list of keys from
315
+ * a preset or other object.
316
+ *
317
+ * @param {Array} arrayOfKeys - An array of keys to be used as
318
+ * property names in the resulting object.
319
+ * @param {Array} [arrayOfValues] - An optional array of values to
320
+ * be assigned to the corresponding keys. If not provided or not an
321
+ * array, the `defaultValue` will be used for all properties.
322
+ * @param {*} [defaultValue] - The default value to be used for
323
+ * missing values or when `arrayOfValues` is not an array or when
324
+ * there are not enough values for the number of keys.
325
+ * @param {Object|string} [baseDescriptor] - The base property
326
+ * descriptor to be used for defining properties. If not provided,
327
+ * default descriptor values will be used. Special string values
328
+ * `'hidden'` and `'immutable'` can be used for predefined
329
+ * descriptors.
330
+ * @returns {Object} - The resulting object with the woven
331
+ * properties.
332
+ *
333
+ * @example
334
+ * const employee134 = { name: 'Jane Doe', yearsOfService: 3 }
335
+ * const employee135 = Array.weave(Object.keys(employee134))
336
+ * // employee135 = { name: undefined, yearsOfService: undefined }
337
+ *
338
+ * @example
339
+ * const keys = ['a', 'b', 'c']
340
+ * const values = [1, 2, 3]
341
+ * const obj = Array.weave(keys, values)
342
+ * console.log(obj) // { a: 1, b: 2, c: 3 }
343
+ *
344
+ * @example
345
+ * const keys = ['x', 'y', 'z']
346
+ * const obj = Array.weave(keys, 42, 0, 'immutable')
347
+ * console.log(obj) // { x: 42, y: 42, z: 42 } (immutable)
348
+ */
349
+ weave(arrayOfKeys, arrayOfValues, defaultValue, baseDescriptor) {
350
+ if (!Array.isArray(arrayOfKeys)) {
351
+ return {};
352
+ }
353
+ if (arrayOfValues && !Array.isArray(arrayOfValues)) {
354
+ const repeatedValue = arrayOfValues;
355
+ arrayOfValues = [];
356
+ for (const _ of arrayOfKeys) {
357
+ arrayOfValues.push(repeatedValue);
358
+ }
359
+ }
360
+ const descKeys = ['configurable', 'enumerable', 'writable'];
361
+ let object = {};
362
+ let descriptor;
363
+ let keys = arrayOfKeys;
364
+ let values = arrayOfValues;
365
+ let useGetter = false;
366
+ // Ensure we have a descriptor
367
+ if (!baseDescriptor) {
368
+ descriptor = descKeys.reduce((acc, key) => { acc[key] = true; return acc; }, {});
369
+ }
370
+ else if (baseDescriptor === 'hidden') {
371
+ baseDescriptor = { configurable: true, enumerable: false };
372
+ }
373
+ else if (baseDescriptor === 'immutable') {
374
+ useGetter = true;
375
+ baseDescriptor = { configurable: false, enumerable: false };
376
+ }
377
+ else if (baseDescriptor && typeof baseDescriptor === 'object') {
378
+ descriptor = descKeys.reduce((acc, key) => {
379
+ acc[key] = baseDescriptor?.[key] ?? true;
380
+ return acc;
381
+ }, {});
382
+ }
383
+ for (const [index, key] of Object.entries(keys)) {
384
+ if (useGetter) {
385
+ Object.defineProperty(object, key, {
386
+ ...descriptor,
387
+ get() { return values?.[index] ?? defaultValue; },
388
+ });
389
+ }
390
+ else {
391
+ Object.defineProperty(object, key, {
392
+ ...descriptor,
393
+ value: values?.[index] ?? defaultValue,
394
+ });
395
+ }
396
+ }
397
+ return object;
398
+ },
399
+ /**
400
+ * @property {object} kTypeDefaults
401
+ * @description
402
+ * An object that maps JavaScript types to their default values.
403
+ * This is useful for initializing variables or properties with
404
+ * a default value based on their expected type.
405
+ *
406
+ * Note that `symbol` types are initialized with `undefined`
407
+ * due to the fact that their usage is by definition, unique;
408
+ * or at the very least deliberately reused.
409
+ *
410
+ * The default values for each type are:
411
+ * - `undefined`: `undefined`
412
+ * - `symbol`: `undefined`
413
+ * - `string`: `""`
414
+ * - `object`: `{}`
415
+ * - `number`: `0`
416
+ * - `boolean`: `true`
417
+ * - `bigint`: `0n`
418
+ * - `function`: an empty function
419
+ *
420
+ * @example
421
+ * const defaultString = Array.kTypeDefaults.string
422
+ * console.log(defaultString) // Output: ""
423
+ *
424
+ * const defaultNumber = Array.kTypeDefaults.number
425
+ * console.log(defaultNumber) // Output: 0
426
+ */
427
+ get [Symbol.for('@nejs.defaults.by.type')]() {
428
+ return {
429
+ undefined: undefined,
430
+ symbol: undefined,
431
+ string: "",
432
+ object: {},
433
+ number: 0,
434
+ boolean: true,
435
+ bigint: 0n,
436
+ function() { },
437
+ };
438
+ },
439
+ /**
440
+ * @property {symbol} kDefaultsByType
441
+ * @description
442
+ * A unique symbol that represents the key for accessing
443
+ * the default values for different types.
444
+ *
445
+ * This symbol is created using `Symbol.for()` with the key
446
+ * `'@nejs.defaults.by.type'`. It can be used to retrieve
447
+ * the default values object from other parts of the code.
448
+ *
449
+ * @example
450
+ * const defaultsByType = Array[Array.kDefaultsByType]
451
+ * console.log(defaultsByType.string) // Output: ""
452
+ * console.log(defaultsByType.number) // Output: 0
453
+ *
454
+ * @returns {symbol} The unique symbol for accessing the
455
+ * default values by type.
456
+ */
457
+ get kDefaultsByType() {
458
+ return Symbol.for('@nejs.defaults.by.type');
459
+ },
287
460
  },
288
461
  });
289
462
  // NOTE to self; this is repeated here otherwise a circular reference from
290
463
  // Object<->Function<->Global occurs. See original source in global.this.js
291
464
  // {@see globalThis.isThenElse}
292
465
  function isThenElse(bv, tv, ev) {
466
+ function isFunction(value) { typeof value === 'function'; }
293
467
  if (arguments.length > 1) {
294
468
  var _then = isFunction(tv) ? tv(bv) : tv;
295
469
  if (arguments.length > 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"array.extensions.js","sourceRoot":"","sources":["../../src/array.extensions.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array.extensions.js","sourceRoot":"","sources":["../../src/array.extensions.js"],"names":[],"mappings":"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"}
@@ -151,6 +151,7 @@ exports.BigIntPrototypeExtensions = new extension_1.Patch(BigInt.prototype, {
151
151
  // Object<->Function<->Global occurs. See original source in global.this.js
152
152
  // {@see globalThis.isThenElse}
153
153
  function isThenElse(bv, tv, ev) {
154
+ function isFunction(value) { typeof value === 'function'; }
154
155
  if (arguments.length > 1) {
155
156
  var _then = isFunction(tv) ? tv(bv) : tv;
156
157
  if (arguments.length > 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"big.int.extension.js","sourceRoot":"","sources":["../../src/big.int.extension.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC;;;;;;;;;;;;;GAaG;AACU,QAAA,gBAAgB,GAAG,IAAI,iBAAK,CAAC,MAAM,EAAE;IAChD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK;QACZ,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS;QAClC,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,wBAAgB,CAAC,OAAO,CAAA;AAE7E;;;;;;;;;;;;;GAaG;AACU,QAAA,yBAAyB,GAAG,IAAI,iBAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACnE;;;;;;;;;;;;;;;OAeG;IACH,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,QAAQ;QACV,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF,CAAC,CAAA;AAEF,0EAA0E;AAC1E,2EAA2E;AAC3E,+BAA+B;AAC/B,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACrE,CAAC;QAAC,OAAO,EAAE,IAAI,KAAK,CAAC;IACvB,CAAC;IAAC,OAAO,EAAE,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"big.int.extension.js","sourceRoot":"","sources":["../../src/big.int.extension.js"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC;;;;;;;;;;;;;GAaG;AACU,QAAA,gBAAgB,GAAG,IAAI,iBAAK,CAAC,MAAM,EAAE;IAChD;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK;QACZ,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,CAAA;IAC7D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS;QAClC,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC/D,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,wBAAgB,CAAC,OAAO,CAAA;AAE7E;;;;;;;;;;;;;GAaG;AACU,QAAA,yBAAyB,GAAG,IAAI,iBAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACnE;;;;;;;;;;;;;;;OAeG;IACH,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,QAAQ;QACV,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS;QAC3B,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF,CAAC,CAAA;AAEF,0EAA0E;AAC1E,2EAA2E;AAC3E,+BAA+B;AAC/B,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;IAC5B,SAAS,UAAU,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,CAAA,CAAC,CAAC;IAE1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QACrE,CAAC;QAAC,OAAO,EAAE,IAAI,KAAK,CAAC;IACvB,CAAC;IAAC,OAAO,EAAE,CAAA;AACb,CAAC"}
@@ -1,13 +1,4 @@
1
1
  export class Descriptor {
2
- /**
3
- * Shorthand for Object.getOwnPropertyDescriptor()
4
- *
5
- * @param {object} object a non-null object instance
6
- * @param {string|symbol} key a symbol or string referencing which key on the
7
- * object to return a descriptor for.
8
- * @returns an object descriptor for the requested field or null
9
- */
10
- static for(object: object, key: string | symbol, wrap?: boolean): PropertyDescriptor | Descriptor | null | undefined;
11
2
  /**
12
3
  * The function `getData` retrieves the value of a property from an object
13
4
  * if it exists and is a data property.
@@ -71,15 +62,7 @@ export class Descriptor {
71
62
  * @returns an object with properties "get", "set", "enumerable", and
72
63
  * "configurable".
73
64
  */
74
- static accessor(getter: any, setter: any, { enumerable, configurable }?: {
75
- enumerable: boolean;
76
- configurable: boolean;
77
- } | undefined): {
78
- get: any;
79
- set: any;
80
- enumerable: boolean;
81
- configurable: boolean;
82
- };
65
+ static accessor(...args: any[]): any;
83
66
  /**
84
67
  * The function "newData" creates a new data object with customizable
85
68
  * properties.
@@ -95,14 +78,18 @@ export class Descriptor {
95
78
  * `configurable`.
96
79
  */
97
80
  static data(value: any, writable?: boolean | undefined, { enumerable, configurable }?: {
98
- enumerable: boolean;
99
81
  configurable: boolean;
100
- } | undefined): {
101
- value: any;
102
82
  enumerable: boolean;
103
- writable: boolean;
104
- configurable: boolean;
105
- };
83
+ } | undefined): any;
84
+ /**
85
+ * Shorthand for Object.getOwnPropertyDescriptor()
86
+ *
87
+ * @param {object} object a non-null object instance
88
+ * @param {string|symbol} key a symbol or string referencing which key on the
89
+ * object to return a descriptor for.
90
+ * @returns an object descriptor for the requested field or null
91
+ */
92
+ static for(object: object, key: string | symbol, wrap?: boolean): PropertyDescriptor | Descriptor | null | undefined;
106
93
  /**
107
94
  * The function checks if an object is a likely an object descriptor in
108
95
  * JavaScript. This is determined as an object with some of the known
@@ -110,43 +97,51 @@ export class Descriptor {
110
97
  * or set). Technically, any object could serve as a descriptor but this
111
98
  * function only returns true if known descriptor keys are found.
112
99
  *
113
- * @param object - The `object` parameter is the object that we want to
114
- * check if it is a descriptor.
115
- * @returns a boolean value.
116
- */
117
- static isDescriptor(object: any): any;
118
- /**
119
- * The function checks if a given property or descriptor is a data property.
120
- *
121
- * brie
100
+ * @param {any} object - Any value we want to check for being a descriptor.
101
+ * @param {boolean} returnStatsInstead defaults to false, but if the value
102
+ * is `true` then an object with reasoning behind the decision of whether
103
+ * or not the
104
+ * @returns {IsDescriptorResponse} either a {@link boolean} value or
105
+ * an object conforming to {@link IsDescriptorStats} if `returnStatsInstead`
106
+ * is `true`
122
107
  *
123
- * @param descriptor_orProp - The `descriptor_orProp` parameter can be
124
- * either a descriptor or a property name.
125
- * @param object - The `object` parameter is the object that you want to
126
- * check for data properties.
127
- * @returns a boolean value. It returns `true` if the `descriptor` object
128
- * has any keys that match the `DATA_KEYS` array, otherwise it returns
129
- * `false`.
108
+ * @see {@link DescriptorUtils.isDescriptor}
130
109
  */
131
- static isData(object_orProp: any, property: any): boolean;
110
+ static isDescriptor(object: any, returnStatsInstead?: boolean): IsDescriptorResponse;
132
111
  /**
133
112
  * The function checks if a given property descriptor or property of an
134
113
  * object is an accessor.
135
114
  *
136
- * @param object_orProp - The `descriptor_orProp` parameter can be either a
137
- * descriptor object or a property name.
138
- * @param property - The `object` parameter is the object that you want to
139
- * check for accessor properties.
140
- * @returns a boolean value. It returns true if the descriptor or property
141
- * passed as an argument is an accessor descriptor, and false otherwise.
115
+ * @param {object} objectOrDescriptor - The `objectOrDescriptor` parameter
116
+ * can be either a descriptor object or a property name.
117
+ * @param {(string|number|symbol)?} property the property name you wish to
118
+ * check the validity as an accessor descriptor. Only expected if the
119
+ * `objectOrDescriptor` parameter is the object that would contain this
120
+ * property.
121
+ * @returns {@link Boolean} returning `true` if the `descriptor` object
122
+ * has any keys that match the {@link Descriptor.ACCESSOR_KEYS} array,
123
+ * otherwise it returns `false`.
124
+ */
125
+ static isAccessor(objectOrDescriptor: object, property: (string | number | symbol) | null): any;
126
+ /**
127
+ * The function checks if a given property or descriptor is a data property.
128
+ *
129
+ * @param {object} objectOrDescriptor - The `objectOrDescriptor` parameter
130
+ * can be either a descriptor object or a property name.
131
+ * @param {(string|number|symbol)?} property the property name you wish to
132
+ * check the validity as an accessor descriptor. Only expected if the
133
+ * `objectOrDescriptor` parameter is the object that would contain this
134
+ * property.
135
+ * @returns {@link Boolean} returning `true` if the `descriptor` object
136
+ * has any keys that match the {@link Descriptor.DATA_KEYS} array, otherwise
137
+ * it returns `false`.
142
138
  */
143
- static isAccessor(object_orProp: any, property: any): boolean;
139
+ static isData(objectOrDescriptor: object, property: (string | number | symbol) | null): any;
144
140
  /**
145
141
  * A base descriptor (new for each read) that is both enumerable and
146
142
  * configurable
147
143
  *
148
- * @returns The method `flexible` is returning the result of calling the
149
- * `base` method with the arguments `true` and `true`.
144
+ * @returns `{ enumerable: true, configurable: true }`
150
145
  */
151
146
  static get flexible(): {
152
147
  enumerable: boolean;
@@ -156,8 +151,7 @@ export class Descriptor {
156
151
  * A base descriptor (new for each read) that is not enumerable but is
157
152
  * configurable
158
153
  *
159
- * @returns The method `enigmatic` is returning the result of calling
160
- * the `base` method with the arguments `false` and `true`.
154
+ * @returns `{ enumerable: false, configurable: true }`
161
155
  */
162
156
  static get enigmatic(): {
163
157
  enumerable: boolean;
@@ -165,20 +159,19 @@ export class Descriptor {
165
159
  };
166
160
  /**
167
161
  * A base descriptor (new for each read) that is neither enumerable
168
- * nor configurable
162
+ * nor configurable.
169
163
  *
170
- * @returns The code is returning the result of calling the `base` method with
171
- * the arguments `false` and `false`.
164
+ * @returns `{ enumerable: false, configurable: false }`
172
165
  */
173
166
  static get intrinsic(): {
174
167
  enumerable: boolean;
175
168
  configurable: boolean;
176
169
  };
177
170
  /**
178
- * A base descriptor (new for each read) that enumerable but not configurable
171
+ * A base descriptor (new for each read) that is enumerable but
172
+ * not configurable
179
173
  *
180
- * @returns The method is returning the result of calling the `base`
181
- * method with the arguments `true` and `false`.
174
+ * @returns `{ enumerable: true, configurable: false }`
182
175
  */
183
176
  static get transparent(): {
184
177
  enumerable: boolean;
@@ -219,7 +212,22 @@ export class Descriptor {
219
212
  * @throws {Error} Throws an error if the constructed descriptor is not
220
213
  * valid.
221
214
  */
222
- constructor(object: object | Descriptor, key?: string | symbol | undefined);
215
+ constructor(object: object | Descriptor, key?: string | symbol | undefined, ...args: any[]);
216
+ /**
217
+ * The default private descriptor value is that of `enigmatic`
218
+ *
219
+ * @private
220
+ * @type {object}
221
+ */
222
+ private _desc;
223
+ /**
224
+ * An optionally associated object, usually the parent from which
225
+ * the descriptor was taken, or undefined if none was able to be
226
+ * derived.
227
+ *
228
+ * @type {object}
229
+ */
230
+ _object: object;
223
231
  /**
224
232
  * Detects whether or not this instance is an accessor object descriptor
225
233
  *
@@ -240,85 +248,6 @@ export class Descriptor {
240
248
  * @returns {boolean} true if this descriptor store is a valid descriptor
241
249
  */
242
250
  get isDescriptor(): boolean;
243
- /**
244
- * Sets the `configurable` value of this object. If the internal descriptor
245
- * store store is invalid, the value is thrown away
246
- *
247
- * @param {boolean} value the value to set for the `configurable` descriptor
248
- * property. If this value is not a `boolean` it will be converted to one
249
- */
250
- set configurable(value: boolean);
251
- /**
252
- * Getter around the `configurable` object descriptor property of
253
- * this instance of Descriptor.
254
- *
255
- * @returns {boolean} a boolean value or undefined if the internal
256
- * descriptor store is invalid.
257
- */
258
- get configurable(): boolean;
259
- /**
260
- * Sets the `enumerable` value of this object. If the internal descriptor
261
- * store is invalid, the value is thrown away
262
- *
263
- * @param {boolean} value the value to set for the `enumerable` descriptor
264
- * property. If this value is not a `boolean` it will be converted to one
265
- */
266
- set enumerable(value: boolean);
267
- /**
268
- * Getter around the `enumerable` object descriptor property of
269
- * this instance of Descriptor.
270
- *
271
- * @returns {boolean} a boolean value or undefined if the internal
272
- * descriptor store is invalid.
273
- */
274
- get enumerable(): boolean;
275
- /**
276
- * Sets the `writable` value of this object. If the internal descriptor
277
- * store is invalid, the value is thrown away
278
- *
279
- * @param {boolean} value the value to set for the `writable` descriptor
280
- * property. If this value is not a `boolean` it will be converted to one
281
- */
282
- set writable(value: boolean);
283
- /**
284
- * Getter around the `writable` object descriptor property of
285
- * this instance of Descriptor.
286
- *
287
- * @returns {boolean} a boolean value or undefined if the internal
288
- * descriptor store is invalid.
289
- */
290
- get writable(): boolean;
291
- /**
292
- * Sets the `value` value of this object. If the internal descriptor
293
- * store is invalid, the value is thrown away
294
- *
295
- * @param {any} value the value to set for the `value` descriptor
296
- * property.
297
- */
298
- set value(value: any);
299
- /**
300
- * Getter around the `value` object descriptor property of
301
- * this instance of Descriptor.
302
- *
303
- * @returns {any} any value stored in this descriptor
304
- */
305
- get value(): any;
306
- /**
307
- * Sets the `get` value of this object. If the internal descriptor
308
- * store is invalid, the value is thrown away
309
- *
310
- * @param {function} value the getter function for this descriptor
311
- */
312
- set get(value: Function);
313
- /**
314
- * Getter around the `get` object descriptor property of
315
- * this instance of Descriptor.
316
- *
317
- * @returns {function} a function if the getter for this descriptor is
318
- * defined or `undefined` if the internal descriptor object or the getter
319
- * is undefined.
320
- */
321
- get get(): Function;
322
251
  /**
323
252
  * Retrieves the {@link get} function for this accessor and binds it to
324
253
  * the object from which the descriptor was derived, if that value is set.
@@ -328,22 +257,6 @@ export class Descriptor {
328
257
  * getter will be bound the associated and previously set `object`.
329
258
  */
330
259
  get boundGet(): Function;
331
- /**
332
- * Sets the `set` value of this object. If the internal descriptor
333
- * store is invalid, the value is thrown away
334
- *
335
- * @param {function} value the setter function for this descriptor
336
- */
337
- set set(value: Function);
338
- /**
339
- * Getter around the `set` object descriptor property of
340
- * this instance of Descriptor.
341
- *
342
- * @returns {function} a function if the setter for this descriptor is
343
- * defined or `undefined` if the internal descriptor object or the setter
344
- * is undefined.
345
- */
346
- get set(): Function;
347
260
  /**
348
261
  * Retrieves the {@link set} function for this accessor and binds it to
349
262
  * the object from which the descriptor was derived, if that value is set.
@@ -416,7 +329,6 @@ export class Descriptor {
416
329
  * @returns {string} the name of the class
417
330
  */
418
331
  get [Symbol.toStringTag](): string;
419
- #private;
420
332
  }
421
333
  export const DescriptorExtensions: Extension;
422
334
  import { Extension } from '@nejs/extension';