si-funciona 2.3.3 → 2.4.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 (167) hide show
  1. package/README.md +1337 -1244
  2. package/browser/siFunciona.js +24205 -24146
  3. package/dist/helpers/arrays/BasicQueue.d.ts +65 -61
  4. package/dist/helpers/arrays/BasicQueue.js +62 -59
  5. package/dist/helpers/arrays/addUniqueToArray.d.ts +10 -10
  6. package/dist/helpers/arrays/addUniqueToArray.js +17 -17
  7. package/dist/helpers/arrays/buildArray.d.ts +11 -11
  8. package/dist/helpers/arrays/buildArray.js +26 -26
  9. package/dist/helpers/arrays/buildArrayOfReferences.d.ts +11 -11
  10. package/dist/helpers/arrays/buildArrayOfReferences.js +23 -23
  11. package/dist/helpers/arrays/compareArrays.d.ts +97 -97
  12. package/dist/helpers/arrays/compareArrays.js +97 -97
  13. package/dist/helpers/arrays/mergeArrays.d.ts +9 -9
  14. package/dist/helpers/arrays/mergeArrays.js +22 -22
  15. package/dist/helpers/arrays/uniqueArray.d.ts +9 -9
  16. package/dist/helpers/arrays/uniqueArray.js +17 -17
  17. package/dist/helpers/arrays.d.ts +21 -20
  18. package/dist/helpers/arrays.js +33 -32
  19. package/dist/helpers/descriptors/assignDescriptor.d.ts +14 -11
  20. package/dist/helpers/descriptors/assignDescriptor.js +58 -55
  21. package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +14 -11
  22. package/dist/helpers/descriptors/assignDescriptorDetail.js +37 -34
  23. package/dist/helpers/descriptors/checkClearValues.d.ts +12 -11
  24. package/dist/helpers/descriptors/checkClearValues.js +21 -20
  25. package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +11 -10
  26. package/dist/helpers/descriptors/checkDescriptorComplete.js +20 -19
  27. package/dist/helpers/descriptors/cloneDescriptor.d.ts +10 -10
  28. package/dist/helpers/descriptors/cloneDescriptor.js +36 -36
  29. package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +10 -10
  30. package/dist/helpers/descriptors/cloneDescriptorDetail.js +27 -27
  31. package/dist/helpers/descriptors/compareDescriptor.d.ts +13 -11
  32. package/dist/helpers/descriptors/compareDescriptor.js +33 -31
  33. package/dist/helpers/descriptors/describeObject.d.ts +15 -13
  34. package/dist/helpers/descriptors/describeObject.js +53 -51
  35. package/dist/helpers/descriptors/describeObjectDetail.d.ts +14 -12
  36. package/dist/helpers/descriptors/describeObjectDetail.js +38 -36
  37. package/dist/helpers/descriptors/describeObjectMap.d.ts +36 -20
  38. package/dist/helpers/descriptors/describeObjectMap.js +108 -92
  39. package/dist/helpers/descriptors/nextReference.d.ts +13 -11
  40. package/dist/helpers/descriptors/nextReference.js +31 -29
  41. package/dist/helpers/descriptors/sameDescriptor.d.ts +13 -11
  42. package/dist/helpers/descriptors/sameDescriptor.js +22 -20
  43. package/dist/helpers/descriptors/samples/descriptor.d.ts +34 -27
  44. package/dist/helpers/descriptors/samples/descriptor.js +22 -22
  45. package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +42 -34
  46. package/dist/helpers/descriptors/samples/descriptorDetail.js +24 -24
  47. package/dist/helpers/descriptors/samples/descriptorMap.d.ts +16 -12
  48. package/dist/helpers/descriptors/samples/descriptorMap.js +14 -14
  49. package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +10 -7
  50. package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -284
  51. package/dist/helpers/descriptors.d.ts +44 -28
  52. package/dist/helpers/descriptors.js +58 -42
  53. package/dist/helpers/functions/callWithParams.d.ts +11 -11
  54. package/dist/helpers/functions/callWithParams.js +17 -17
  55. package/dist/helpers/functions/curry.d.ts +11 -11
  56. package/dist/helpers/functions/curry.js +17 -17
  57. package/dist/helpers/functions/delay.d.ts +21 -21
  58. package/dist/helpers/functions/delay.js +32 -32
  59. package/dist/helpers/functions/makeBasicQueue.d.ts +10 -10
  60. package/dist/helpers/functions/makeBasicQueue.js +19 -19
  61. package/dist/helpers/functions/onBodyLoad.d.ts +10 -10
  62. package/dist/helpers/functions/onBodyLoad.js +74 -74
  63. package/dist/helpers/functions/pipe.d.ts +10 -10
  64. package/dist/helpers/functions/pipe.js +18 -18
  65. package/dist/helpers/functions/preloadParams.d.ts +20 -20
  66. package/dist/helpers/functions/preloadParams.js +21 -21
  67. package/dist/helpers/functions/queueManager.d.ts +49 -47
  68. package/dist/helpers/functions/queueManager.js +124 -122
  69. package/dist/helpers/functions/queueTimeout.d.ts +21 -21
  70. package/dist/helpers/functions/queueTimeout.js +23 -23
  71. package/dist/helpers/functions/relevancyFilter.d.ts +35 -35
  72. package/dist/helpers/functions/relevancyFilter.js +34 -34
  73. package/dist/helpers/functions/trace.d.ts +14 -12
  74. package/dist/helpers/functions/trace.js +25 -23
  75. package/dist/helpers/functions.d.ts +29 -29
  76. package/dist/helpers/functions.js +40 -40
  77. package/dist/helpers/numbers/absoluteMax.d.ts +10 -10
  78. package/dist/helpers/numbers/absoluteMax.js +16 -16
  79. package/dist/helpers/numbers/absoluteMin.d.ts +10 -10
  80. package/dist/helpers/numbers/absoluteMin.js +16 -16
  81. package/dist/helpers/numbers/compare.d.ts +13 -13
  82. package/dist/helpers/numbers/compare.js +19 -19
  83. package/dist/helpers/numbers/greatestCommonDivisor.d.ts +10 -10
  84. package/dist/helpers/numbers/greatestCommonDivisor.js +16 -16
  85. package/dist/helpers/numbers/leastCommonMultiple.d.ts +10 -10
  86. package/dist/helpers/numbers/leastCommonMultiple.js +18 -18
  87. package/dist/helpers/numbers/lowestCommonDenominator.d.ts +10 -10
  88. package/dist/helpers/numbers/lowestCommonDenominator.js +20 -20
  89. package/dist/helpers/numbers/randomInteger.d.ts +13 -13
  90. package/dist/helpers/numbers/randomInteger.js +19 -19
  91. package/dist/helpers/numbers/randomNumber.d.ts +13 -13
  92. package/dist/helpers/numbers/randomNumber.js +19 -19
  93. package/dist/helpers/numbers/simplestRatio.d.ts +9 -9
  94. package/dist/helpers/numbers/simplestRatio.js +29 -29
  95. package/dist/helpers/numbers.d.ts +21 -21
  96. package/dist/helpers/numbers.js +36 -36
  97. package/dist/helpers/objects/cloneObject.d.ts +20 -20
  98. package/dist/helpers/objects/cloneObject.js +32 -32
  99. package/dist/helpers/objects/dotGet.d.ts +12 -12
  100. package/dist/helpers/objects/dotGet.js +60 -60
  101. package/dist/helpers/objects/dotNotate.d.ts +28 -28
  102. package/dist/helpers/objects/dotNotate.js +80 -80
  103. package/dist/helpers/objects/dotSet.d.ts +12 -12
  104. package/dist/helpers/objects/dotSet.js +54 -54
  105. package/dist/helpers/objects/dotUnset.d.ts +11 -11
  106. package/dist/helpers/objects/dotUnset.js +53 -53
  107. package/dist/helpers/objects/emptyObject.d.ts +9 -9
  108. package/dist/helpers/objects/emptyObject.js +18 -18
  109. package/dist/helpers/objects/filterObject.d.ts +27 -27
  110. package/dist/helpers/objects/filterObject.js +32 -32
  111. package/dist/helpers/objects/isCloneable.d.ts +9 -9
  112. package/dist/helpers/objects/isCloneable.js +17 -17
  113. package/dist/helpers/objects/isInstanceObject.d.ts +9 -9
  114. package/dist/helpers/objects/isInstanceObject.js +27 -27
  115. package/dist/helpers/objects/isObject.d.ts +9 -9
  116. package/dist/helpers/objects/isObject.js +15 -15
  117. package/dist/helpers/objects/mapObject.d.ts +26 -26
  118. package/dist/helpers/objects/mapObject.js +26 -26
  119. package/dist/helpers/objects/mergeObjects.d.ts +13 -13
  120. package/dist/helpers/objects/mergeObjects.js +20 -20
  121. package/dist/helpers/objects/mergeObjectsBase.d.ts +36 -36
  122. package/dist/helpers/objects/mergeObjectsBase.js +92 -92
  123. package/dist/helpers/objects/mergeObjectsMutable.d.ts +13 -13
  124. package/dist/helpers/objects/mergeObjectsMutable.js +18 -18
  125. package/dist/helpers/objects/objectKeys.d.ts +14 -14
  126. package/dist/helpers/objects/objectKeys.js +40 -40
  127. package/dist/helpers/objects/objectValues.d.ts +14 -14
  128. package/dist/helpers/objects/objectValues.js +21 -21
  129. package/dist/helpers/objects/reduceObject.d.ts +31 -31
  130. package/dist/helpers/objects/reduceObject.js +26 -26
  131. package/dist/helpers/objects/setAndReturnValue.d.ts +14 -14
  132. package/dist/helpers/objects/setAndReturnValue.js +20 -20
  133. package/dist/helpers/objects/setValue.d.ts +15 -15
  134. package/dist/helpers/objects/setValue.js +22 -22
  135. package/dist/helpers/objects.d.ts +100 -100
  136. package/dist/helpers/objects.js +56 -56
  137. package/dist/helpers/strings/camelCase.d.ts +9 -9
  138. package/dist/helpers/strings/camelCase.js +20 -20
  139. package/dist/helpers/strings/kabobCase.d.ts +9 -9
  140. package/dist/helpers/strings/kabobCase.js +19 -19
  141. package/dist/helpers/strings/makeFilepath.d.ts +9 -9
  142. package/dist/helpers/strings/makeFilepath.js +49 -49
  143. package/dist/helpers/strings/makeRelativePath.d.ts +9 -9
  144. package/dist/helpers/strings/makeRelativePath.js +43 -43
  145. package/dist/helpers/strings/regexEscape.d.ts +8 -8
  146. package/dist/helpers/strings/regexEscape.js +15 -15
  147. package/dist/helpers/strings/snakeCase.d.ts +9 -9
  148. package/dist/helpers/strings/snakeCase.js +19 -19
  149. package/dist/helpers/strings/strAfter.d.ts +10 -10
  150. package/dist/helpers/strings/strAfter.js +19 -19
  151. package/dist/helpers/strings/strAfterLast.d.ts +10 -10
  152. package/dist/helpers/strings/strAfterLast.js +19 -19
  153. package/dist/helpers/strings/strBefore.d.ts +10 -10
  154. package/dist/helpers/strings/strBefore.js +19 -19
  155. package/dist/helpers/strings/strBeforeLast.d.ts +10 -10
  156. package/dist/helpers/strings/strBeforeLast.js +19 -19
  157. package/dist/helpers/strings/titleCase.d.ts +9 -9
  158. package/dist/helpers/strings/titleCase.js +20 -20
  159. package/dist/helpers/strings/ucFirst.d.ts +9 -9
  160. package/dist/helpers/strings/ucFirst.js +15 -15
  161. package/dist/helpers/strings/words.d.ts +10 -9
  162. package/dist/helpers/strings/words.js +16 -15
  163. package/dist/helpers/strings.d.ts +25 -25
  164. package/dist/helpers/strings.js +44 -44
  165. package/dist/main.d.ts +9 -9
  166. package/dist/main.js +30 -30
  167. package/package.json +2 -5
@@ -1,34 +1,37 @@
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.reduce.js')
9
- require('core-js/stable')
10
- var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
11
- var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
12
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
13
- /**
14
- * Assign properties from other details onto an existing detail.
15
- * @memberOf module:objectDescriptors
16
- * @param {module:objectDescriptors~descriptorDetail} originalDetail
17
- * @param {...module:objectDescriptors~descriptorDetail} details
18
- * @returns {module:objectDescriptors~descriptorDetail}
19
- */
20
- const assignDescriptorDetail = (originalDetail, ...details) => details.reduce((existingDetail, newDetail) => {
21
- existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
22
- existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
23
- existingDetail.nullable = existingDetail.nullable || newDetail.nullable
24
- existingDetail.optional = existingDetail.optional || newDetail.optional
25
- existingDetail.circular = existingDetail.circular || newDetail.circular
26
- existingDetail.isReference = existingDetail.isReference || newDetail.isReference
27
- existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
28
- existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
29
- existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
30
- existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
31
- existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
32
- return existingDetail
33
- }, (0, _cloneDescriptorDetail.default)(originalDetail))
34
- var _default = exports.default = assignDescriptorDetail
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.reduce.js')
9
+ require('core-js/stable')
10
+ var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
11
+ var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
12
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
13
+ /**
14
+ * Assign properties from other details onto an existing detail, widening it (e.g. combining `type`/`value` arrays,
15
+ * OR-ing boolean flags like `nullable`/`optional`) rather than overwriting it - the per-property counterpart to
16
+ * {@link module:objectDescriptors.assignDescriptor}.
17
+ * @memberOf module:objectDescriptors
18
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The base detail to merge onto (not mutated -
19
+ * a clone is merged and returned).
20
+ * @param {...module:objectDescriptors~descriptorDetail} details - One or more further details to merge in.
21
+ * @returns {module:objectDescriptors~descriptorDetail} A new detail representing the merge of all of the above.
22
+ */
23
+ const assignDescriptorDetail = (originalDetail, ...details) => details.reduce((existingDetail, newDetail) => {
24
+ existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
25
+ existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
26
+ existingDetail.nullable = existingDetail.nullable || newDetail.nullable
27
+ existingDetail.optional = existingDetail.optional || newDetail.optional
28
+ existingDetail.circular = existingDetail.circular || newDetail.circular
29
+ existingDetail.isReference = existingDetail.isReference || newDetail.isReference
30
+ existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
31
+ existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
32
+ existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
33
+ existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
34
+ existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
35
+ return existingDetail
36
+ }, (0, _cloneDescriptorDetail.default)(originalDetail))
37
+ var _default = exports.default = assignDescriptorDetail
@@ -1,12 +1,13 @@
1
- import 'core-js/stable';
2
- import { descriptor } from './samples/descriptor';
3
- /**
4
- * Check if we should clear the values on this descriptor
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} descriptor
7
- * @param {boolean} [keepValues=false]
8
- * @returns {module:objectDescriptors~descriptor}
9
- */
10
- declare const checkClearValues: (descriptor: descriptor, keepValues?: boolean) => descriptor;
11
- export default checkClearValues;
1
+ import 'core-js/stable';
2
+ import { descriptor } from './samples/descriptor';
3
+ /**
4
+ * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
5
+ * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
8
+ * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
9
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
10
+ */
11
+ declare const checkClearValues: (descriptor: descriptor, keepValues?: boolean) => descriptor;
12
+ export default checkClearValues;
12
13
  //# sourceMappingURL=checkClearValues.d.ts.map
@@ -1,20 +1,21 @@
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.map.js')
9
- require('core-js/stable')
10
- var _setValue = _interopRequireDefault(require('../objects/setValue'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Check if we should clear the values on this descriptor
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptor} descriptor
16
- * @param {boolean} [keepValues=false]
17
- * @returns {module:objectDescriptors~descriptor}
18
- */
19
- const checkClearValues = (descriptor, keepValues = false) => (0, _setValue.default)('details', descriptor.complete && !keepValues ? descriptor.details.map(detail => (0, _setValue.default)('value', [], detail)) : descriptor.details, descriptor)
20
- var _default = exports.default = checkClearValues
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.map.js')
9
+ require('core-js/stable')
10
+ var _setValue = _interopRequireDefault(require('../objects/setValue'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Once a descriptor is complete (all its references have been resolved), its details' actual `value` arrays are no
14
+ * longer needed to build the descriptor further - clear them to save memory, unless `keepValues` says otherwise.
15
+ * @memberOf module:objectDescriptors
16
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
17
+ * @param {boolean} [keepValues=false] - Set true to keep the values even once the descriptor is complete.
18
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `details[].value` cleared if applicable.
19
+ */
20
+ const checkClearValues = (descriptor, keepValues = false) => (0, _setValue.default)('details', descriptor.complete && !keepValues ? descriptor.details.map(detail => (0, _setValue.default)('value', [], detail)) : descriptor.details, descriptor)
21
+ var _default = exports.default = checkClearValues
@@ -1,11 +1,12 @@
1
- import 'core-js/stable';
2
- import { descriptor } from './samples/descriptor';
3
- /**
4
- * Check if the descriptors references have all been built and set complete to true if they have.
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} descriptor
7
- * @returns {module:objectDescriptors~descriptor}
8
- */
9
- declare const checkDescriptorComplete: (descriptor: descriptor) => descriptor;
10
- export default checkDescriptorComplete;
1
+ import 'core-js/stable';
2
+ import { descriptor } from './samples/descriptor';
3
+ /**
4
+ * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
5
+ * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
6
+ * @memberOf module:objectDescriptors
7
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
8
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
9
+ */
10
+ declare const checkDescriptorComplete: (descriptor: descriptor) => descriptor;
11
+ export default checkDescriptorComplete;
11
12
  //# sourceMappingURL=checkDescriptorComplete.d.ts.map
@@ -1,19 +1,20 @@
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.every.js')
9
- require('core-js/stable')
10
- var _setValue = _interopRequireDefault(require('../objects/setValue'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Check if the descriptors references have all been built and set complete to true if they have.
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptor} descriptor
16
- * @returns {module:objectDescriptors~descriptor}
17
- */
18
- const checkDescriptorComplete = descriptor => (0, _setValue.default)('complete', descriptor.references.every(refId => [descriptor.details[refId].arrayReference, descriptor.details[refId].objectReference].some(ref => typeof ref === 'number')), descriptor)
19
- var _default = exports.default = checkDescriptorComplete
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.every.js')
9
+ require('core-js/stable')
10
+ var _setValue = _interopRequireDefault(require('../objects/setValue'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Check if every property this descriptor references (i.e. every nested object/array it points to) has actually
14
+ * had its own descriptor built yet, and set the descriptor's `complete` flag to true if so.
15
+ * @memberOf module:objectDescriptors
16
+ * @param {module:objectDescriptors~descriptor} descriptor - The descriptor to check.
17
+ * @returns {module:objectDescriptors~descriptor} The same descriptor, with `complete` updated.
18
+ */
19
+ const checkDescriptorComplete = descriptor => (0, _setValue.default)('complete', descriptor.references.every(refId => [descriptor.details[refId].arrayReference, descriptor.details[refId].objectReference].some(ref => typeof ref === 'number')), descriptor)
20
+ var _default = exports.default = checkDescriptorComplete
@@ -1,11 +1,11 @@
1
- import 'core-js/stable';
2
- import { descriptor } from './samples/descriptor';
3
- /**
4
- * Make a copy of an object descriptor so that the original will not be mutated.
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} originalMap
7
- * @returns {module:objectDescriptors~descriptor}
8
- */
9
- declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
10
- export default cloneDescriptor;
1
+ import 'core-js/stable';
2
+ import { descriptor } from './samples/descriptor';
3
+ /**
4
+ * Make a copy of an object descriptor so that the original will not be mutated.
5
+ * @memberOf module:objectDescriptors
6
+ * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
7
+ * @returns {module:objectDescriptors~descriptor} A new, independent copy.
8
+ */
9
+ declare const cloneDescriptor: (originalMap: descriptor) => descriptor;
10
+ export default cloneDescriptor;
11
11
  //# sourceMappingURL=cloneDescriptor.d.ts.map
@@ -1,36 +1,36 @@
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.map.js')
9
- require('core-js/stable')
10
- var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
11
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
- /**
13
- * Make a copy of an object descriptor so that the original will not be mutated.
14
- * @memberOf module:objectDescriptors
15
- * @param {module:objectDescriptors~descriptor} originalMap
16
- * @returns {module:objectDescriptors~descriptor}
17
- */
18
- const cloneDescriptor = originalMap => {
19
- const copyMap = {}
20
- // @ts-ignore
21
- copyMap.index = originalMap.index || 0
22
- // @ts-ignore
23
- copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
24
- // @ts-ignore
25
- copyMap.length = originalMap.length
26
- // @ts-ignore
27
- copyMap.keys = originalMap.keys.map(key => key)
28
- // @ts-ignore
29
- copyMap.references = originalMap.references.map(reference => reference)
30
- // @ts-ignore
31
- copyMap.isArray = originalMap.isArray
32
- // @ts-ignore
33
- copyMap.complete = originalMap.complete
34
- return copyMap
35
- }
36
- var _default = exports.default = cloneDescriptor
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.map.js')
9
+ require('core-js/stable')
10
+ var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
11
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
12
+ /**
13
+ * Make a copy of an object descriptor so that the original will not be mutated.
14
+ * @memberOf module:objectDescriptors
15
+ * @param {module:objectDescriptors~descriptor} originalMap - The descriptor to copy.
16
+ * @returns {module:objectDescriptors~descriptor} A new, independent copy.
17
+ */
18
+ const cloneDescriptor = originalMap => {
19
+ const copyMap = {}
20
+ // @ts-ignore
21
+ copyMap.index = originalMap.index || 0
22
+ // @ts-ignore
23
+ copyMap.details = originalMap.details.map(_cloneDescriptorDetail.default)
24
+ // @ts-ignore
25
+ copyMap.length = originalMap.length
26
+ // @ts-ignore
27
+ copyMap.keys = originalMap.keys.map(key => key)
28
+ // @ts-ignore
29
+ copyMap.references = originalMap.references.map(reference => reference)
30
+ // @ts-ignore
31
+ copyMap.isArray = originalMap.isArray
32
+ // @ts-ignore
33
+ copyMap.complete = originalMap.complete
34
+ return copyMap
35
+ }
36
+ var _default = exports.default = cloneDescriptor
@@ -1,11 +1,11 @@
1
- import 'core-js/stable';
2
- import { descriptorDetail } from './samples/descriptorDetail';
3
- /**
4
- * Get a new copy of an existing Descriptor Detail
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptorDetail} originalDetail
7
- * @returns {module:objectDescriptors~descriptorDetail}
8
- */
9
- declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
10
- export default cloneDescriptorDetail;
1
+ import 'core-js/stable';
2
+ import { descriptorDetail } from './samples/descriptorDetail';
3
+ /**
4
+ * Get a new copy of an existing descriptor detail so that the original will not be mutated.
5
+ * @memberOf module:objectDescriptors
6
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
7
+ * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
8
+ */
9
+ declare const cloneDescriptorDetail: (originalDetail: descriptorDetail) => descriptorDetail;
10
+ export default cloneDescriptorDetail;
11
11
  //# sourceMappingURL=cloneDescriptorDetail.d.ts.map
@@ -1,27 +1,27 @@
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.for-each.js')
9
- require('core-js/modules/esnext.iterator.map.js')
10
- require('core-js/stable')
11
- var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
12
- function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
13
- /**
14
- * Get a new copy of an existing Descriptor Detail
15
- * @memberOf module:objectDescriptors
16
- * @param {module:objectDescriptors~descriptorDetail} originalDetail
17
- * @returns {module:objectDescriptors~descriptorDetail}
18
- */
19
- const cloneDescriptorDetail = originalDetail => {
20
- const copyDetail = {};
21
- (0, _objectKeys.default)(originalDetail).forEach(key => {
22
- // @ts-ignore
23
- copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
24
- })
25
- return copyDetail
26
- }
27
- var _default = exports.default = cloneDescriptorDetail
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.for-each.js')
9
+ require('core-js/modules/esnext.iterator.map.js')
10
+ require('core-js/stable')
11
+ var _objectKeys = _interopRequireDefault(require('../objects/objectKeys'))
12
+ function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
13
+ /**
14
+ * Get a new copy of an existing descriptor detail so that the original will not be mutated.
15
+ * @memberOf module:objectDescriptors
16
+ * @param {module:objectDescriptors~descriptorDetail} originalDetail - The detail to copy.
17
+ * @returns {module:objectDescriptors~descriptorDetail} A new, independent copy.
18
+ */
19
+ const cloneDescriptorDetail = originalDetail => {
20
+ const copyDetail = {};
21
+ (0, _objectKeys.default)(originalDetail).forEach(key => {
22
+ // @ts-ignore
23
+ copyDetail[key] = Array.isArray(originalDetail[key]) ? originalDetail[key].map(value => value) : originalDetail[key]
24
+ })
25
+ return copyDetail
26
+ }
27
+ var _default = exports.default = cloneDescriptorDetail
@@ -1,12 +1,14 @@
1
- import 'core-js/stable';
2
- import { descriptor } from './samples/descriptor';
3
- /**
4
- * Check if two descriptors are the same or similar in that they have similar keys and the associated types are the same.
5
- * @memberOf module:objectDescriptors
6
- * @param {module:objectDescriptors~descriptor} descriptor1
7
- * @param {module:objectDescriptors~descriptor} descriptor2
8
- * @returns {boolean}
9
- */
10
- declare const compareDescriptor: (descriptor1: descriptor, descriptor2: descriptor) => boolean;
11
- export default compareDescriptor;
1
+ import 'core-js/stable';
2
+ import { descriptor } from './samples/descriptor';
3
+ /**
4
+ * Check if two descriptors are the same or similar, in that the smaller one's keys are all present in the larger
5
+ * one and their types line up - used to detect when a newly-described value actually matches a descriptor already
6
+ * in the map, so it can be pointed at instead of creating a duplicate.
7
+ * @memberOf module:objectDescriptors
8
+ * @param {module:objectDescriptors~descriptor} descriptor1 - The first descriptor to compare.
9
+ * @param {module:objectDescriptors~descriptor} descriptor2 - The second descriptor to compare.
10
+ * @returns {boolean} True if the descriptors describe a compatible shape.
11
+ */
12
+ declare const compareDescriptor: (descriptor1: descriptor, descriptor2: descriptor) => boolean;
13
+ export default compareDescriptor;
12
14
  //# sourceMappingURL=compareDescriptor.d.ts.map
@@ -1,31 +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/stable')
13
- /**
14
- * Check if two descriptors are the same or similar in that they have similar keys and the associated types are the same.
15
- * @memberOf module:objectDescriptors
16
- * @param {module:objectDescriptors~descriptor} descriptor1
17
- * @param {module:objectDescriptors~descriptor} descriptor2
18
- * @returns {boolean}
19
- */
20
- const compareDescriptor = (descriptor1, descriptor2) => {
21
- if (descriptor1.isArray !== descriptor2.isArray) {
22
- return false
23
- }
24
- if (descriptor1.length === 0 || descriptor2.length === 0) {
25
- return descriptor1.length === descriptor2.length
26
- }
27
- const smallerDescriptor = descriptor1.length <= descriptor2.length ? descriptor1 : descriptor2
28
- const largerDescriptor = descriptor2.length >= descriptor1.length ? descriptor2 : descriptor1
29
- 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
30
- }
31
- 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,14 +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;
14
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