si-funciona 2.3.2 → 2.3.4

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 (181) hide show
  1. package/README.md +1337 -1244
  2. package/browser/siFunciona.js +24205 -24282
  3. package/browser/siFunciona.min.js +1 -1
  4. package/dist/helpers/arrays/BasicQueue.d.ts +66 -61
  5. package/dist/helpers/arrays/BasicQueue.js +62 -60
  6. package/dist/helpers/arrays/BasicQueue.min.js +1 -1
  7. package/dist/helpers/arrays/addUniqueToArray.d.ts +1 -0
  8. package/dist/helpers/arrays/buildArray.d.ts +1 -0
  9. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +1 -0
  10. package/dist/helpers/arrays/compareArrays.d.ts +1 -0
  11. package/dist/helpers/arrays/compareArrays.js +24 -30
  12. package/dist/helpers/arrays/compareArrays.min.js +1 -1
  13. package/dist/helpers/arrays/mergeArrays.d.ts +1 -0
  14. package/dist/helpers/arrays/mergeArrays.js +2 -7
  15. package/dist/helpers/arrays/mergeArrays.min.js +1 -1
  16. package/dist/helpers/arrays/uniqueArray.d.ts +1 -0
  17. package/dist/helpers/arrays.d.ts +22 -20
  18. package/dist/helpers/arrays.js +33 -32
  19. package/dist/helpers/descriptors/assignDescriptor.d.ts +15 -11
  20. package/dist/helpers/descriptors/assignDescriptor.js +58 -60
  21. package/dist/helpers/descriptors/assignDescriptor.min.js +1 -1
  22. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +15 -11
  23. package/dist/helpers/descriptors/assignDescriptorDetail.js +37 -38
  24. package/dist/helpers/descriptors/assignDescriptorDetail.min.js +1 -1
  25. package/dist/helpers/descriptors/checkClearValues.d.ts +13 -11
  26. package/dist/helpers/descriptors/checkClearValues.js +21 -23
  27. package/dist/helpers/descriptors/checkClearValues.min.js +1 -1
  28. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +12 -10
  29. package/dist/helpers/descriptors/checkDescriptorComplete.js +20 -19
  30. package/dist/helpers/descriptors/cloneDescriptor.d.ts +11 -10
  31. package/dist/helpers/descriptors/cloneDescriptor.js +36 -37
  32. package/dist/helpers/descriptors/cloneDescriptor.min.js +1 -1
  33. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +11 -10
  34. package/dist/helpers/descriptors/cloneDescriptorDetail.js +27 -27
  35. package/dist/helpers/descriptors/compareDescriptor.d.ts +14 -11
  36. package/dist/helpers/descriptors/compareDescriptor.js +33 -32
  37. package/dist/helpers/descriptors/compareDescriptor.min.js +1 -1
  38. package/dist/helpers/descriptors/describeObject.d.ts +16 -13
  39. package/dist/helpers/descriptors/describeObject.js +53 -51
  40. package/dist/helpers/descriptors/describeObjectDetail.d.ts +15 -12
  41. package/dist/helpers/descriptors/describeObjectDetail.js +38 -38
  42. package/dist/helpers/descriptors/describeObjectDetail.min.js +1 -1
  43. package/dist/helpers/descriptors/describeObjectMap.d.ts +37 -20
  44. package/dist/helpers/descriptors/describeObjectMap.js +108 -97
  45. package/dist/helpers/descriptors/describeObjectMap.min.js +1 -1
  46. package/dist/helpers/descriptors/nextReference.d.ts +14 -11
  47. package/dist/helpers/descriptors/nextReference.js +31 -29
  48. package/dist/helpers/descriptors/sameDescriptor.d.ts +14 -11
  49. package/dist/helpers/descriptors/sameDescriptor.js +22 -20
  50. package/dist/helpers/descriptors/samples/descriptor.d.ts +35 -27
  51. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +43 -34
  52. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +17 -12
  53. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +11 -7
  54. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -284
  55. package/dist/helpers/descriptors.d.ts +45 -28
  56. package/dist/helpers/descriptors.js +58 -42
  57. package/dist/helpers/functions/callWithParams.d.ts +1 -0
  58. package/dist/helpers/functions/callWithParams.js +1 -6
  59. package/dist/helpers/functions/callWithParams.min.js +1 -1
  60. package/dist/helpers/functions/curry.d.ts +1 -0
  61. package/dist/helpers/functions/curry.js +1 -12
  62. package/dist/helpers/functions/curry.min.js +1 -1
  63. package/dist/helpers/functions/delay.d.ts +1 -0
  64. package/dist/helpers/functions/delay.js +4 -5
  65. package/dist/helpers/functions/delay.min.js +1 -1
  66. package/dist/helpers/functions/makeBasicQueue.d.ts +11 -10
  67. package/dist/helpers/functions/makeBasicQueue.js +19 -20
  68. package/dist/helpers/functions/makeBasicQueue.min.js +1 -1
  69. package/dist/helpers/functions/onBodyLoad.d.ts +1 -0
  70. package/dist/helpers/functions/onBodyLoad.js +1 -2
  71. package/dist/helpers/functions/onBodyLoad.min.js +1 -1
  72. package/dist/helpers/functions/pipe.d.ts +1 -0
  73. package/dist/helpers/functions/pipe.js +3 -6
  74. package/dist/helpers/functions/pipe.min.js +1 -1
  75. package/dist/helpers/functions/preloadParams.d.ts +1 -0
  76. package/dist/helpers/functions/preloadParams.js +3 -8
  77. package/dist/helpers/functions/preloadParams.min.js +1 -1
  78. package/dist/helpers/functions/queueManager.d.ts +50 -47
  79. package/dist/helpers/functions/queueManager.js +124 -132
  80. package/dist/helpers/functions/queueManager.min.js +1 -1
  81. package/dist/helpers/functions/queueTimeout.d.ts +1 -0
  82. package/dist/helpers/functions/queueTimeout.js +2 -10
  83. package/dist/helpers/functions/queueTimeout.min.js +1 -1
  84. package/dist/helpers/functions/relevancyFilter.d.ts +36 -35
  85. package/dist/helpers/functions/relevancyFilter.js +34 -36
  86. package/dist/helpers/functions/relevancyFilter.min.js +1 -1
  87. package/dist/helpers/functions/trace.d.ts +15 -12
  88. package/dist/helpers/functions/trace.js +25 -26
  89. package/dist/helpers/functions/trace.min.js +1 -1
  90. package/dist/helpers/functions.d.ts +1 -0
  91. package/dist/helpers/numbers/absoluteMax.d.ts +1 -0
  92. package/dist/helpers/numbers/absoluteMin.d.ts +1 -0
  93. package/dist/helpers/numbers/compare.d.ts +1 -0
  94. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +1 -0
  95. package/dist/helpers/numbers/leastCommonMultiple.d.ts +1 -0
  96. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +11 -10
  97. package/dist/helpers/numbers/lowestCommonDenominator.js +20 -23
  98. package/dist/helpers/numbers/lowestCommonDenominator.min.js +1 -1
  99. package/dist/helpers/numbers/randomInteger.d.ts +1 -0
  100. package/dist/helpers/numbers/randomInteger.js +1 -5
  101. package/dist/helpers/numbers/randomInteger.min.js +1 -1
  102. package/dist/helpers/numbers/randomNumber.d.ts +1 -0
  103. package/dist/helpers/numbers/randomNumber.js +1 -5
  104. package/dist/helpers/numbers/randomNumber.min.js +1 -1
  105. package/dist/helpers/numbers/simplestRatio.d.ts +1 -0
  106. package/dist/helpers/numbers/simplestRatio.js +4 -4
  107. package/dist/helpers/numbers/simplestRatio.min.js +1 -1
  108. package/dist/helpers/numbers.d.ts +1 -0
  109. package/dist/helpers/objects/cloneObject.d.ts +1 -0
  110. package/dist/helpers/objects/cloneObject.js +10 -15
  111. package/dist/helpers/objects/cloneObject.min.js +1 -1
  112. package/dist/helpers/objects/dotGet.d.ts +1 -0
  113. package/dist/helpers/objects/dotGet.js +1 -2
  114. package/dist/helpers/objects/dotGet.min.js +1 -1
  115. package/dist/helpers/objects/dotNotate.d.ts +1 -0
  116. package/dist/helpers/objects/dotNotate.js +6 -15
  117. package/dist/helpers/objects/dotNotate.min.js +1 -1
  118. package/dist/helpers/objects/dotSet.d.ts +1 -0
  119. package/dist/helpers/objects/dotSet.js +1 -2
  120. package/dist/helpers/objects/dotSet.min.js +1 -1
  121. package/dist/helpers/objects/dotUnset.d.ts +1 -0
  122. package/dist/helpers/objects/emptyObject.d.ts +1 -0
  123. package/dist/helpers/objects/filterObject.d.ts +1 -0
  124. package/dist/helpers/objects/filterObject.js +8 -11
  125. package/dist/helpers/objects/filterObject.min.js +1 -1
  126. package/dist/helpers/objects/isCloneable.d.ts +1 -0
  127. package/dist/helpers/objects/isInstanceObject.d.ts +1 -0
  128. package/dist/helpers/objects/isObject.d.ts +1 -0
  129. package/dist/helpers/objects/mapObject.d.ts +1 -0
  130. package/dist/helpers/objects/mapObject.js +1 -4
  131. package/dist/helpers/objects/mapObject.min.js +1 -1
  132. package/dist/helpers/objects/mergeObjects.d.ts +1 -0
  133. package/dist/helpers/objects/mergeObjectsBase.d.ts +1 -0
  134. package/dist/helpers/objects/mergeObjectsBase.js +58 -67
  135. package/dist/helpers/objects/mergeObjectsBase.min.js +1 -1
  136. package/dist/helpers/objects/mergeObjectsMutable.d.ts +1 -0
  137. package/dist/helpers/objects/objectKeys.d.ts +1 -0
  138. package/dist/helpers/objects/objectKeys.js +1 -2
  139. package/dist/helpers/objects/objectKeys.min.js +1 -1
  140. package/dist/helpers/objects/objectValues.d.ts +1 -0
  141. package/dist/helpers/objects/objectValues.js +1 -4
  142. package/dist/helpers/objects/objectValues.min.js +1 -1
  143. package/dist/helpers/objects/reduceObject.d.ts +1 -0
  144. package/dist/helpers/objects/reduceObject.js +1 -4
  145. package/dist/helpers/objects/reduceObject.min.js +1 -1
  146. package/dist/helpers/objects/setAndReturnValue.d.ts +1 -0
  147. package/dist/helpers/objects/setValue.d.ts +1 -0
  148. package/dist/helpers/objects.d.ts +5 -4
  149. package/dist/helpers/strings/camelCase.d.ts +10 -9
  150. package/dist/helpers/strings/camelCase.js +20 -20
  151. package/dist/helpers/strings/kabobCase.d.ts +10 -9
  152. package/dist/helpers/strings/kabobCase.js +19 -19
  153. package/dist/helpers/strings/makeFilepath.d.ts +10 -9
  154. package/dist/helpers/strings/makeFilepath.js +49 -50
  155. package/dist/helpers/strings/makeFilepath.min.js +1 -1
  156. package/dist/helpers/strings/makeRelativePath.d.ts +10 -9
  157. package/dist/helpers/strings/makeRelativePath.js +43 -43
  158. package/dist/helpers/strings/makeRelativePath.min.js +1 -1
  159. package/dist/helpers/strings/regexEscape.d.ts +9 -8
  160. package/dist/helpers/strings/regexEscape.js +15 -17
  161. package/dist/helpers/strings/regexEscape.min.js +1 -1
  162. package/dist/helpers/strings/snakeCase.d.ts +10 -9
  163. package/dist/helpers/strings/snakeCase.js +19 -19
  164. package/dist/helpers/strings/strAfter.d.ts +11 -10
  165. package/dist/helpers/strings/strAfter.js +19 -19
  166. package/dist/helpers/strings/strAfterLast.d.ts +11 -10
  167. package/dist/helpers/strings/strAfterLast.js +19 -19
  168. package/dist/helpers/strings/strBefore.d.ts +11 -10
  169. package/dist/helpers/strings/strBefore.js +19 -19
  170. package/dist/helpers/strings/strBeforeLast.d.ts +11 -10
  171. package/dist/helpers/strings/strBeforeLast.js +19 -19
  172. package/dist/helpers/strings/titleCase.d.ts +10 -9
  173. package/dist/helpers/strings/titleCase.js +20 -20
  174. package/dist/helpers/strings/ucFirst.d.ts +10 -9
  175. package/dist/helpers/strings/ucFirst.js +15 -15
  176. package/dist/helpers/strings/words.d.ts +11 -9
  177. package/dist/helpers/strings/words.js +16 -16
  178. package/dist/helpers/strings/words.min.js +1 -1
  179. package/dist/helpers/strings.d.ts +1 -0
  180. package/dist/main.d.ts +1 -0
  181. package/package.json +4 -4
@@ -1,32 +1,33 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/modules/es.array.includes.js')
8
- require('core-js/modules/esnext.iterator.constructor.js')
9
- require('core-js/modules/esnext.iterator.every.js')
10
- require('core-js/modules/esnext.iterator.find.js')
11
- require('core-js/modules/esnext.iterator.some.js')
12
- require('core-js/modules/web.dom-collections.iterator.js')
13
- require('core-js/stable')
14
- /**
15
- * Check if two descriptors are the same or similar in that they have similar keys and the associated types are the same.
16
- * @memberOf module:objectDescriptors
17
- * @param {module:objectDescriptors~descriptor} descriptor1
18
- * @param {module:objectDescriptors~descriptor} descriptor2
19
- * @returns {boolean}
20
- */
21
- const compareDescriptor = (descriptor1, descriptor2) => {
22
- if (descriptor1.isArray !== descriptor2.isArray) {
23
- return false
24
- }
25
- if (descriptor1.length === 0 || descriptor2.length === 0) {
26
- return descriptor1.length === descriptor2.length
27
- }
28
- const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
29
- const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
30
- return smallerDescriptor.keys.every(key => largerDescriptor.keys.includes(key)) ? smallerDescriptor.details.every(detail => detail.type.some(type => largerDescriptor.details.find(foundDetail => foundDetail.key === detail.key).type.includes(type))) : false
31
- }
32
- var _default = exports.default = compareDescriptor
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/modules/es.array.includes.js')
8
+ require('core-js/modules/esnext.iterator.constructor.js')
9
+ require('core-js/modules/esnext.iterator.every.js')
10
+ require('core-js/modules/esnext.iterator.find.js')
11
+ require('core-js/modules/esnext.iterator.some.js')
12
+ require('core-js/stable')
13
+ /**
14
+ * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
15
+ * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
16
+ * in the map, so it can be pointed at instead of creating a duplicate.
17
+ * @memberOf module:objectDescriptors
18
+ * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
19
+ * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
20
+ * @returns {boolean} True if the descriptors describe a compatible shape.
21
+ */
22
+ const compareDescriptor = (descriptor1, descriptor2) => {
23
+ if (descriptor1.isArray !== descriptor2.isArray) {
24
+ return false
25
+ }
26
+ if (descriptor1.length === 0 || descriptor2.length === 0) {
27
+ return descriptor1.length === descriptor2.length
28
+ }
29
+ const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
30
+ const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
31
+ return smallerDescriptor.keys.every(key => largerDescriptor.keys.includes(key)) ? smallerDescriptor.details.every(detail => detail.type.some(type => largerDescriptor.details.find(foundDetail => foundDetail.key === detail.key).type.includes(type))) : false
32
+ }
33
+ var _default = exports.default = compareDescriptor
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.every.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.some.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/stable");const compareDescriptor=(e,r)=>{if(e.isArray!==r.isArray)return!1;if(0===e.length||0===r.length)return e.length===r.length;const s=e.length<=r.length?e:r,t=r.length>=e.length?r:e;return!!s.keys.every((e=>t.keys.includes(e)))&&s.details.every((e=>e.type.some((r=>t.details.find((r=>r.key===e.key)).type.includes(r)))))};var _default=exports.default=compareDescriptor;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.every.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.some.js"),require("core-js/stable");const compareDescriptor=(e,r)=>{if(e.isArray!==r.isArray)return!1;if(0===e.length||0===r.length)return e.length===r.length;const s=e.length<=r.length?e:r,t=r.length>=e.length?r:e;return!!s.keys.every((e=>t.keys.includes(e)))&&s.details.every((e=>e.type.some((r=>t.details.find((r=>r.key===e.key)).type.includes(r)))))};var _default=exports.default=compareDescriptor;
@@ -1,13 +1,16 @@
1
- import 'core-js/stable';
2
- import { descriptor } from './samples/descriptor';
3
- export type describeableObject = Array<any> | {
4
- [k: number | string]: any;
5
- };
6
- /**
7
- * Trace an object and return the descriptor which defines the object's structure and attributes.
8
- * @memberOf module:objectDescriptors
9
- * @param {Object} object
10
- * @returns {module:objectDescriptors~descriptor}
11
- */
12
- declare const describeObject: (object: describeableObject) => descriptor;
13
- export default describeObject;
1
+ import 'core-js/stable';
2
+ import { descriptor } from './samples/descriptor';
3
+ export type describeableObject = Array<any> | {
4
+ [k: number | string]: any;
5
+ };
6
+ /**
7
+ * Trace a single object or array (not its nested objects/arrays - see
8
+ * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
9
+ * structure and attributes.
10
+ * @memberOf module:objectDescriptors
11
+ * @param {Object|Array} object - The object or array to describe.
12
+ * @returns {module:objectDescriptors~descriptor}
13
+ */
14
+ declare const describeObject: (object: describeableObject) => descriptor;
15
+ export default describeObject;
16
+ //# sourceMappingURL=describeObject.d.ts.map
@@ -1,51 +1,53 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/stable')
8
- var _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
9
- var _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
10
- var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Trace an object and return the descriptor which defines the object's structure and attributes.
14
- * @memberOf module:objectDescriptors
15
- * @param {Object} object
16
- * @returns {module:objectDescriptors~descriptor}
17
- */
18
- const describeObject = object => {
19
- const descriptor = {
20
- index: 0,
21
- details: [],
22
- length: 0,
23
- keys: [],
24
- references: [],
25
- isArray: false,
26
- complete: false
27
- }
28
- const keys = (0, _objectKeys.default)(object)
29
- for (let i = 0; i < keys.length; ++i) {
30
- const key = keys[i]
31
- // @ts-ignore
32
- const newDetail = (0, _describeObjectDetail.default)(object[key], key, descriptor.length++)
33
- if (typeof key === 'number' && descriptor.details.length) {
34
- descriptor.details[0] = (0, _assignDescriptorDetail.default)(descriptor.details[0], newDetail)
35
- descriptor.keys = [0]
36
- if (newDetail.isReference) {
37
- descriptor.references = [0]
38
- }
39
- continue
40
- }
41
- descriptor.details.push(newDetail)
42
- descriptor.keys.push(newDetail.key)
43
- if (newDetail.isReference) {
44
- descriptor.references.push(newDetail.index)
45
- }
46
- }
47
- descriptor.isArray = Array.isArray(object)
48
- descriptor.complete = !descriptor.references.length
49
- return descriptor
50
- }
51
- var _default = exports.default = describeObject
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/stable')
8
+ var _assignDescriptorDetail = _interopRequireDefault(require('./assignDescriptorDetail'))
9
+ var _describeObjectDetail = _interopRequireDefault(require('./describeObjectDetail'))
10
+ var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Trace a single object or array (not its nested objects/arrays - see
14
+ * {@link module:objectDescriptors.describeObjectMap} for that) and return the descriptor which defines its own
15
+ * structure and attributes.
16
+ * @memberOf module:objectDescriptors
17
+ * @param {Object|Array} object - The object or array to describe.
18
+ * @returns {module:objectDescriptors~descriptor}
19
+ */
20
+ const describeObject = object => {
21
+ const descriptor = {
22
+ index: 0,
23
+ details: [],
24
+ length: 0,
25
+ keys: [],
26
+ references: [],
27
+ isArray: false,
28
+ complete: false
29
+ }
30
+ const keys = (0, _objectKeys.default)(object)
31
+ for (let i = 0; i < keys.length; ++i) {
32
+ const key = keys[i]
33
+ // @ts-ignore
34
+ const newDetail = (0, _describeObjectDetail.default)(object[key], key, descriptor.length++)
35
+ if (typeof key === 'number' && descriptor.details.length) {
36
+ descriptor.details[0] = (0, _assignDescriptorDetail.default)(descriptor.details[0], newDetail)
37
+ descriptor.keys = [0]
38
+ if (newDetail.isReference) {
39
+ descriptor.references = [0]
40
+ }
41
+ continue
42
+ }
43
+ descriptor.details.push(newDetail)
44
+ descriptor.keys.push(newDetail.key)
45
+ if (newDetail.isReference) {
46
+ descriptor.references.push(newDetail.index)
47
+ }
48
+ }
49
+ descriptor.isArray = Array.isArray(object)
50
+ descriptor.complete = !descriptor.references.length
51
+ return descriptor
52
+ }
53
+ var _default = exports.default = describeObject
@@ -1,12 +1,15 @@
1
- import 'core-js/stable';
2
- import { descriptorDetail } from './samples/descriptorDetail';
3
- /**
4
- * Trace an object's attribute and provide details about it.
5
- * @memberOf module:objectDescriptors
6
- * @param {*} value
7
- * @param {string|number} [key=0]
8
- * @param {number} [index=0]
9
- * @returns {module:objectDescriptors~descriptorDetail}
10
- */
11
- declare const describeObjectDetail: (value: any, key?: number | string, index?: number) => descriptorDetail;
12
- export default describeObjectDetail;
1
+ import 'core-js/stable';
2
+ import { descriptorDetail } from './samples/descriptorDetail';
3
+ /**
4
+ * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
5
+ * references a nested object/array, etc.) - the per-property building block used by
6
+ * {@link module:objectDescriptors.describeObject}.
7
+ * @memberOf module:objectDescriptors
8
+ * @param {*} value - The property's value to describe.
9
+ * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
10
+ * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
11
+ * @returns {module:objectDescriptors~descriptorDetail}
12
+ */
13
+ declare const describeObjectDetail: (value: any, key?: number | string, index?: number) => descriptorDetail;
14
+ export default describeObjectDetail;
15
+ //# sourceMappingURL=describeObjectDetail.d.ts.map
@@ -1,38 +1,38 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/stable')
8
- var _emptyObject = _interopRequireDefault(require('../objects/emptyObject'))
9
- var _isCloneable = _interopRequireDefault(require('../objects/isCloneable'))
10
- var _isInstanceObject = _interopRequireDefault(require('../objects/isInstanceObject'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Trace an object's attribute and provide details about it.
14
- * @memberOf module:objectDescriptors
15
- * @param {*} value
16
- * @param {string|number} [key=0]
17
- * @param {number} [index=0]
18
- * @returns {module:objectDescriptors~descriptorDetail}
19
- */
20
- const describeObjectDetail = function (value) {
21
- const key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0
22
- const index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0
23
- const type = typeof value
24
- return {
25
- index: index,
26
- key: key,
27
- type: [type],
28
- value: [value],
29
- nullable: value === null,
30
- optional: false,
31
- circular: false,
32
- isReference: (0, _isCloneable.default)(value) && !(0, _emptyObject.default)(value),
33
- isInstance: (0, _isInstanceObject.default)(value),
34
- arrayReference: null,
35
- objectReference: null
36
- }
37
- }
38
- var _default = exports.default = describeObjectDetail
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/stable')
8
+ var _emptyObject = _interopRequireDefault(require('../objects/emptyObject'))
9
+ var _isCloneable = _interopRequireDefault(require('../objects/isCloneable'))
10
+ var _isInstanceObject = _interopRequireDefault(require('../objects/isInstanceObject'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Trace a single property's value and produce the descriptorDetail describing it (type, nullability, whether it
14
+ * references a nested object/array, etc.) - the per-property building block used by
15
+ * {@link module:objectDescriptors.describeObject}.
16
+ * @memberOf module:objectDescriptors
17
+ * @param {*} value - The property's value to describe.
18
+ * @param {string|number} [key=0] - The property name (or array index) this value belongs to.
19
+ * @param {number} [index=0] - This detail's intended position within its parent descriptor's `details` array.
20
+ * @returns {module:objectDescriptors~descriptorDetail}
21
+ */
22
+ const describeObjectDetail = (value, key = 0, index = 0) => {
23
+ const type = typeof value
24
+ return {
25
+ index: index,
26
+ key: key,
27
+ type: [type],
28
+ value: [value],
29
+ nullable: value === null,
30
+ optional: false,
31
+ circular: false,
32
+ isReference: (0, _isCloneable.default)(value) && !(0, _emptyObject.default)(value),
33
+ isInstance: (0, _isInstanceObject.default)(value),
34
+ arrayReference: null,
35
+ objectReference: null
36
+ }
37
+ }
38
+ var _default = exports.default = describeObjectDetail
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable");var _emptyObject=_interopRequireDefault(require("../objects/emptyObject")),_isCloneable=_interopRequireDefault(require("../objects/isCloneable")),_isInstanceObject=_interopRequireDefault(require("../objects/isInstanceObject"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const describeObjectDetail=function(e){return{index:arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,key:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,type:[typeof e],value:[e],nullable:null===e,optional:!1,circular:!1,isReference:(0,_isCloneable.default)(e)&&!(0,_emptyObject.default)(e),isInstance:(0,_isInstanceObject.default)(e),arrayReference:null,objectReference:null}};var _default=exports.default=describeObjectDetail;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/stable");var _emptyObject=_interopRequireDefault(require("../objects/emptyObject")),_isCloneable=_interopRequireDefault(require("../objects/isCloneable")),_isInstanceObject=_interopRequireDefault(require("../objects/isInstanceObject"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const describeObjectDetail=(e,t=0,r=0)=>({index:r,key:t,type:[typeof e],value:[e],nullable:null===e,optional:!1,circular:!1,isReference:(0,_isCloneable.default)(e)&&!(0,_emptyObject.default)(e),isInstance:(0,_isInstanceObject.default)(e),arrayReference:null,objectReference:null});var _default=exports.default=describeObjectDetail;
@@ -1,20 +1,37 @@
1
- import 'core-js/stable';
2
- import { describeableObject } from './describeObject';
3
- import { descriptorMap } from './samples/descriptorMap';
4
- type describeObjectMapOptions = {
5
- mapLimit?: number;
6
- depthLimit?: number;
7
- keepValues?: boolean;
8
- };
9
- /**
10
- * Trace out the entire object including nested objects.
11
- * @memberOf module:objectDescriptors
12
- * @param {Object|Array} object
13
- * @param {Object} [options={}]
14
- * @param {number} [options.mapLimit=1000000000]
15
- * @param {number} [options.depthLimit=-1]
16
- * @param {boolean} [options.keepValues=false]
17
- * @returns {module:objectDescriptors~descriptorMap}
18
- */
19
- declare const describeObjectMap: (object: describeableObject, { mapLimit, depthLimit, keepValues }?: describeObjectMapOptions) => descriptorMap;
20
- export default describeObjectMap;
1
+ import 'core-js/stable';
2
+ import { describeableObject } from './describeObject';
3
+ import { descriptorMap } from './samples/descriptorMap';
4
+ type describeObjectMapOptions = {
5
+ mapLimit?: number;
6
+ depthLimit?: number;
7
+ keepValues?: boolean;
8
+ };
9
+ /**
10
+ * Trace out the entire object including nested objects, producing a flat descriptorMap - see the
11
+ * {@link module:objectDescriptors} module description for what a descriptor represents and why it's flat. This is
12
+ * the main entry point into this module: start here to describe a real object/array before comparing, merging, or
13
+ * inspecting its structure with the other functions in this module.
14
+ * @example
15
+ * describeObjectMap({ name: 'example', tags: ['a', 'b'] })
16
+ * // [
17
+ * // { index: 0, details: [...], length: 2, keys: ['name', 'tags'], references: [1], isArray: false, complete: true },
18
+ * // { index: 1, details: [...], length: 2, keys: [0], references: [], isArray: true, complete: true }
19
+ * // ]
20
+ * // descriptorMap[0] describes the top-level object; its 'tags' property is a reference (references: [1]) to
21
+ * // descriptorMap[1], which separately describes that nested array. descriptorMap[1]'s own `length` (2) reflects
22
+ * // the array's actual length, but `keys` has only one entry (0) since both elements share the same type
23
+ * // ('string') and are described together by a single, representative descriptorDetail.
24
+ * @memberOf module:objectDescriptors
25
+ * @param {Object|Array} object - The real object or array to describe.
26
+ * @param {Object} [options={}]
27
+ * @param {number} [options.mapLimit=1000000000] - Stop describing further nested references once the map reaches
28
+ * this many descriptors - a safety limit for extremely large or deeply-referenced structures.
29
+ * @param {number} [options.depthLimit=-1] - How many levels of nested objects/arrays to describe; `-1` means no
30
+ * limit, `0` describes only the top level, etc.
31
+ * @param {boolean} [options.keepValues=false] - By default, each detail's actual values are cleared once its
32
+ * descriptor is complete (to save memory) - set true to keep them.
33
+ * @returns {module:objectDescriptors~descriptorMap}
34
+ */
35
+ declare const describeObjectMap: (object: describeableObject, { mapLimit, depthLimit, keepValues }?: describeObjectMapOptions) => descriptorMap;
36
+ export default describeObjectMap;
37
+ //# sourceMappingURL=describeObjectMap.d.ts.map
@@ -1,97 +1,108 @@
1
- 'use strict'
2
-
3
- Object.defineProperty(exports, '__esModule', {
4
- value: true
5
- })
6
- exports.default = void 0
7
- require('core-js/modules/esnext.iterator.constructor.js')
8
- require('core-js/modules/esnext.iterator.find.js')
9
- require('core-js/modules/esnext.iterator.for-each.js')
10
- require('core-js/stable')
11
- var _assignDescriptor = _interopRequireDefault(require('./assignDescriptor'))
12
- var _checkClearValues = _interopRequireDefault(require('./checkClearValues'))
13
- var _checkDescriptorComplete = _interopRequireDefault(require('./checkDescriptorComplete'))
14
- var _compareDescriptor = _interopRequireDefault(require('./compareDescriptor'))
15
- var _describeObject = _interopRequireDefault(require('./describeObject'))
16
- var _nextReference = _interopRequireDefault(require('./nextReference'))
17
- var _sameDescriptor = _interopRequireDefault(require('./sameDescriptor'))
18
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
19
- /**
20
- * Trace out the entire object including nested objects.
21
- * @memberOf module:objectDescriptors
22
- * @param {Object|Array} object
23
- * @param {Object} [options={}]
24
- * @param {number} [options.mapLimit=1000000000]
25
- * @param {number} [options.depthLimit=-1]
26
- * @param {boolean} [options.keepValues=false]
27
- * @returns {module:objectDescriptors~descriptorMap}
28
- */
29
- const describeObjectMap = function (object) {
30
- const _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}
31
- const _ref$mapLimit = _ref.mapLimit
32
- const mapLimit = _ref$mapLimit === void 0 ? 1000000000 : _ref$mapLimit
33
- const _ref$depthLimit = _ref.depthLimit
34
- const depthLimit = _ref$depthLimit === void 0 ? -1 : _ref$depthLimit
35
- const _ref$keepValues = _ref.keepValues
36
- const keepValues = _ref$keepValues === void 0 ? false : _ref$keepValues
37
- const descriptorMap = [(0, _describeObject.default)(object)]
38
- descriptorMap[0].index = 0
39
- const describeReferences = function (descriptor, currentDetail) {
40
- let limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1
41
- const returnCallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : returnMap => returnMap
42
- let index = descriptorMap.length
43
- const nextRef = currentDetail ? (0, _nextReference.default)(descriptor, currentDetail.index) : undefined
44
- const nextDetail = typeof nextRef !== 'undefined' ? descriptor.details[nextRef] : null
45
- if (currentDetail) {
46
- const vals = descriptor.isArray ? currentDetail.value : [currentDetail.value[currentDetail.value.length - 1]]
47
- vals.forEach(val => {
48
- var _a, _b
49
- const tempDescriptor = (0, _describeObject.default)(val)
50
- const existingDescriptorIndex = descriptorMap.findIndex(existingDescriptor => (0, _compareDescriptor.default)(tempDescriptor, existingDescriptor))
51
- if (existingDescriptorIndex >= 0) {
52
- index = existingDescriptorIndex
53
- if (tempDescriptor.length && (0, _sameDescriptor.default)(tempDescriptor, descriptorMap[existingDescriptorIndex])) {
54
- currentDetail.circular = true
55
- descriptor.details[currentDetail.index] = currentDetail
56
- }
57
- }
58
- if (index >= mapLimit) {
59
- return descriptorMap
60
- }
61
- if (limit === 0) {
62
- return descriptorMap
63
- }
64
- if (tempDescriptor.isArray) {
65
- index = (_a = currentDetail.arrayReference) !== null && _a !== void 0 ? _a : index
66
- descriptor.details[currentDetail.index].arrayReference = index
67
- } else {
68
- index = (_b = currentDetail.objectReference) !== null && _b !== void 0 ? _b : index
69
- descriptor.details[currentDetail.index].objectReference = index
70
- }
71
- tempDescriptor.index = index
72
- if (existingDescriptorIndex < 0) {
73
- descriptorMap[index] = descriptorMap[index] ? (0, _assignDescriptor.default)(descriptorMap[index], tempDescriptor) : tempDescriptor
74
- }
75
- descriptorMap[descriptor.index] = (0, _assignDescriptor.default)(descriptorMap[descriptor.index], descriptor)
76
- currentDetail = descriptorMap[descriptor.index].details.find(detail => detail.key === currentDetail.key)
77
- if (!currentDetail.circular) {
78
- const newReference = (0, _nextReference.default)(tempDescriptor, -1)
79
- const newDetail = typeof newReference !== 'undefined' ? tempDescriptor.details[newReference] : null
80
- return describeReferences(tempDescriptor, newDetail, --limit, returnMap => describeReferences(descriptor, nextDetail, --limit))
81
- }
82
- })
83
- }
84
- descriptorMap[descriptor.index] = (0, _assignDescriptor.default)(descriptorMap[descriptor.index], (0, _checkDescriptorComplete.default)(descriptor))
85
- descriptorMap[descriptor.index] = (0, _checkClearValues.default)(descriptorMap[descriptor.index], keepValues)
86
- return nextDetail ? describeReferences(descriptor, nextDetail, --limit) : returnCallback(descriptorMap)
87
- }
88
- const descriptor = descriptorMap[0]
89
- const currentReference = (0, _nextReference.default)(descriptor, -1)
90
- if (typeof currentReference === 'undefined') {
91
- descriptorMap[0] = (0, _assignDescriptor.default)(descriptorMap[0], (0, _checkDescriptorComplete.default)(descriptor))
92
- descriptorMap[0] = (0, _checkClearValues.default)(descriptorMap[0], keepValues)
93
- return descriptorMap
94
- }
95
- return describeReferences(descriptor, descriptor.details[currentReference], depthLimit)
96
- }
97
- var _default = exports.default = describeObjectMap
1
+ 'use strict'
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true
5
+ })
6
+ exports.default = void 0
7
+ require('core-js/modules/esnext.iterator.constructor.js')
8
+ require('core-js/modules/esnext.iterator.find.js')
9
+ require('core-js/modules/esnext.iterator.for-each.js')
10
+ require('core-js/stable')
11
+ var _assignDescriptor = _interopRequireDefault(require('./assignDescriptor'))
12
+ var _checkClearValues = _interopRequireDefault(require('./checkClearValues'))
13
+ var _checkDescriptorComplete = _interopRequireDefault(require('./checkDescriptorComplete'))
14
+ var _compareDescriptor = _interopRequireDefault(require('./compareDescriptor'))
15
+ var _describeObject = _interopRequireDefault(require('./describeObject'))
16
+ var _nextReference = _interopRequireDefault(require('./nextReference'))
17
+ var _sameDescriptor = _interopRequireDefault(require('./sameDescriptor'))
18
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
19
+ /**
20
+ * Trace out the entire object including nested objects, producing a flat descriptorMap - see the
21
+ * {@link module:objectDescriptors} module description for what a descriptor represents and why it's flat. This is
22
+ * the main entry point into this module: start here to describe a real object/array before comparing, merging, or
23
+ * inspecting its structure with the other functions in this module.
24
+ * @example
25
+ * describeObjectMap({ name: 'example', tags: ['a', 'b'] })
26
+ * // [
27
+ * // { index: 0, details: [...], length: 2, keys: ['name', 'tags'], references: [1], isArray: false, complete: true },
28
+ * // { index: 1, details: [...], length: 2, keys: [0], references: [], isArray: true, complete: true }
29
+ * // ]
30
+ * // descriptorMap[0] describes the top-level object; its 'tags' property is a reference (references: [1]) to
31
+ * // descriptorMap[1], which separately describes that nested array. descriptorMap[1]'s own `length` (2) reflects
32
+ * // the array's actual length, but `keys` has only one entry (0) since both elements share the same type
33
+ * // ('string') and are described together by a single, representative descriptorDetail.
34
+ * @memberOf module:objectDescriptors
35
+ * @param {Object|Array} object - The real object or array to describe.
36
+ * @param {Object} [options={}]
37
+ * @param {number} [options.mapLimit=1000000000] - Stop describing further nested references once the map reaches
38
+ * this many descriptors - a safety limit for extremely large or deeply-referenced structures.
39
+ * @param {number} [options.depthLimit=-1] - How many levels of nested objects/arrays to describe; `-1` means no
40
+ * limit, `0` describes only the top level, etc.
41
+ * @param {boolean} [options.keepValues=false] - By default, each detail's actual values are cleared once its
42
+ * descriptor is complete (to save memory) - set true to keep them.
43
+ * @returns {module:objectDescriptors~descriptorMap}
44
+ */
45
+ const describeObjectMap = (object, {
46
+ mapLimit = 1000000000,
47
+ depthLimit = -1,
48
+ keepValues = false
49
+ } = {}) => {
50
+ const descriptorMap = [(0, _describeObject.default)(object)]
51
+ descriptorMap[0].index = 0
52
+ const describeReferences = (descriptor, currentDetail, limit = -1, returnCallback = returnMap => returnMap) => {
53
+ let index = descriptorMap.length
54
+ const nextRef = currentDetail ? (0, _nextReference.default)(descriptor, currentDetail.index) : undefined
55
+ const nextDetail = typeof nextRef !== 'undefined' ? descriptor.details[nextRef] : null
56
+ if (currentDetail) {
57
+ const vals = descriptor.isArray ? currentDetail.value : [currentDetail.value[currentDetail.value.length - 1]]
58
+ vals.forEach(val => {
59
+ var _a, _b
60
+ const tempDescriptor = (0, _describeObject.default)(val)
61
+ const existingDescriptorIndex = descriptorMap.findIndex(existingDescriptor => (0, _compareDescriptor.default)(tempDescriptor, existingDescriptor))
62
+ if (existingDescriptorIndex >= 0) {
63
+ index = existingDescriptorIndex
64
+ if (tempDescriptor.length && (0, _sameDescriptor.default)(tempDescriptor, descriptorMap[existingDescriptorIndex])) {
65
+ currentDetail.circular = true
66
+ descriptor.details[currentDetail.index] = currentDetail
67
+ }
68
+ }
69
+ if (index >= mapLimit) {
70
+ return descriptorMap
71
+ }
72
+ if (limit === 0) {
73
+ return descriptorMap
74
+ }
75
+ if (tempDescriptor.isArray) {
76
+ index = (_a = currentDetail.arrayReference) !== null && _a !== void 0 ? _a : index
77
+ descriptor.details[currentDetail.index].arrayReference = index
78
+ } else {
79
+ index = (_b = currentDetail.objectReference) !== null && _b !== void 0 ? _b : index
80
+ descriptor.details[currentDetail.index].objectReference = index
81
+ }
82
+ tempDescriptor.index = index
83
+ if (existingDescriptorIndex < 0) {
84
+ descriptorMap[index] = descriptorMap[index] ? (0, _assignDescriptor.default)(descriptorMap[index], tempDescriptor) : tempDescriptor
85
+ }
86
+ descriptorMap[descriptor.index] = (0, _assignDescriptor.default)(descriptorMap[descriptor.index], descriptor)
87
+ currentDetail = descriptorMap[descriptor.index].details.find(detail => detail.key === currentDetail.key)
88
+ if (!currentDetail.circular) {
89
+ const newReference = (0, _nextReference.default)(tempDescriptor, -1)
90
+ const newDetail = typeof newReference !== 'undefined' ? tempDescriptor.details[newReference] : null
91
+ return describeReferences(tempDescriptor, newDetail, --limit, returnMap => describeReferences(descriptor, nextDetail, --limit))
92
+ }
93
+ })
94
+ }
95
+ descriptorMap[descriptor.index] = (0, _assignDescriptor.default)(descriptorMap[descriptor.index], (0, _checkDescriptorComplete.default)(descriptor))
96
+ descriptorMap[descriptor.index] = (0, _checkClearValues.default)(descriptorMap[descriptor.index], keepValues)
97
+ return nextDetail ? describeReferences(descriptor, nextDetail, --limit) : returnCallback(descriptorMap)
98
+ }
99
+ const descriptor = descriptorMap[0]
100
+ const currentReference = (0, _nextReference.default)(descriptor, -1)
101
+ if (typeof currentReference === 'undefined') {
102
+ descriptorMap[0] = (0, _assignDescriptor.default)(descriptorMap[0], (0, _checkDescriptorComplete.default)(descriptor))
103
+ descriptorMap[0] = (0, _checkClearValues.default)(descriptorMap[0], keepValues)
104
+ return descriptorMap
105
+ }
106
+ return describeReferences(descriptor, descriptor.details[currentReference], depthLimit)
107
+ }
108
+ var _default = exports.default = describeObjectMap
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/stable");var _assignDescriptor=_interopRequireDefault(require("./assignDescriptor")),_checkClearValues=_interopRequireDefault(require("./checkClearValues")),_checkDescriptorComplete=_interopRequireDefault(require("./checkDescriptorComplete")),_compareDescriptor=_interopRequireDefault(require("./compareDescriptor")),_describeObject=_interopRequireDefault(require("./describeObject")),_nextReference=_interopRequireDefault(require("./nextReference")),_sameDescriptor=_interopRequireDefault(require("./sameDescriptor"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const describeObjectMap=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.mapLimit,i=void 0===t?1e9:t,c=r.depthLimit,a=void 0===c?-1:c,s=r.keepValues,n=void 0!==s&&s;const u=[(0,_describeObject.default)(e)];u[0].index=0;const l=function(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e=>e,a=u.length;const s=r?(0,_nextReference.default)(e,r.index):void 0,o=void 0!==s?e.details[s]:null;if(r){(e.isArray?r.value:[r.value[r.value.length-1]]).forEach((c=>{var s,n;const d=(0,_describeObject.default)(c),f=u.findIndex((e=>(0,_compareDescriptor.default)(d,e)));if(f>=0&&(a=f,d.length&&(0,_sameDescriptor.default)(d,u[f])&&(r.circular=!0,e.details[r.index]=r)),a>=i)return u;if(0===t)return u;if(d.isArray?(a=null!==(s=r.arrayReference)&&void 0!==s?s:a,e.details[r.index].arrayReference=a):(a=null!==(n=r.objectReference)&&void 0!==n?n:a,e.details[r.index].objectReference=a),d.index=a,f<0&&(u[a]=u[a]?(0,_assignDescriptor.default)(u[a],d):d),u[e.index]=(0,_assignDescriptor.default)(u[e.index],e),!(r=u[e.index].details.find((e=>e.key===r.key))).circular){const r=(0,_nextReference.default)(d,-1),i=void 0!==r?d.details[r]:null;return l(d,i,--t,(r=>l(e,o,--t)))}}))}return u[e.index]=(0,_assignDescriptor.default)(u[e.index],(0,_checkDescriptorComplete.default)(e)),u[e.index]=(0,_checkClearValues.default)(u[e.index],n),o?l(e,o,--t):c(u)},o=u[0],d=(0,_nextReference.default)(o,-1);return void 0===d?(u[0]=(0,_assignDescriptor.default)(u[0],(0,_checkDescriptorComplete.default)(o)),u[0]=(0,_checkClearValues.default)(u[0],n),u):l(o,o.details[d],a)};var _default=exports.default=describeObjectMap;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/stable");var _assignDescriptor=_interopRequireDefault(require("./assignDescriptor")),_checkClearValues=_interopRequireDefault(require("./checkClearValues")),_checkDescriptorComplete=_interopRequireDefault(require("./checkDescriptorComplete")),_compareDescriptor=_interopRequireDefault(require("./compareDescriptor")),_describeObject=_interopRequireDefault(require("./describeObject")),_nextReference=_interopRequireDefault(require("./nextReference")),_sameDescriptor=_interopRequireDefault(require("./sameDescriptor"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const describeObjectMap=(e,{mapLimit:r=1e9,depthLimit:t=-1,keepValues:i=!1}={})=>{const a=[(0,_describeObject.default)(e)];a[0].index=0;const c=(e,t,s=-1,u=e=>e)=>{let l=a.length;const n=t?(0,_nextReference.default)(e,t.index):void 0,o=void 0!==n?e.details[n]:null;if(t){(e.isArray?t.value:[t.value[t.value.length-1]]).forEach((i=>{var u,n;const d=(0,_describeObject.default)(i),f=a.findIndex((e=>(0,_compareDescriptor.default)(d,e)));if(f>=0&&(l=f,d.length&&(0,_sameDescriptor.default)(d,a[f])&&(t.circular=!0,e.details[t.index]=t)),l>=r)return a;if(0===s)return a;if(d.isArray?(l=null!==(u=t.arrayReference)&&void 0!==u?u:l,e.details[t.index].arrayReference=l):(l=null!==(n=t.objectReference)&&void 0!==n?n:l,e.details[t.index].objectReference=l),d.index=l,f<0&&(a[l]=a[l]?(0,_assignDescriptor.default)(a[l],d):d),a[e.index]=(0,_assignDescriptor.default)(a[e.index],e),!(t=a[e.index].details.find((e=>e.key===t.key))).circular){const r=(0,_nextReference.default)(d,-1),t=void 0!==r?d.details[r]:null;return c(d,t,--s,(r=>c(e,o,--s)))}}))}return a[e.index]=(0,_assignDescriptor.default)(a[e.index],(0,_checkDescriptorComplete.default)(e)),a[e.index]=(0,_checkClearValues.default)(a[e.index],i),o?c(e,o,--s):u(a)},s=a[0],u=(0,_nextReference.default)(s,-1);return void 0===u?(a[0]=(0,_assignDescriptor.default)(a[0],(0,_checkDescriptorComplete.default)(s)),a[0]=(0,_checkClearValues.default)(a[0],i),a):c(s,s.details[u],t)};var _default=exports.default=describeObjectMap;