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.
- package/README.md +1337 -1244
- package/browser/siFunciona.js +24205 -24282
- package/browser/siFunciona.min.js +1 -1
- package/dist/helpers/arrays/BasicQueue.d.ts +66 -61
- package/dist/helpers/arrays/BasicQueue.js +62 -60
- package/dist/helpers/arrays/BasicQueue.min.js +1 -1
- package/dist/helpers/arrays/addUniqueToArray.d.ts +1 -0
- package/dist/helpers/arrays/buildArray.d.ts +1 -0
- package/dist/helpers/arrays/buildArrayOfReferences.d.ts +1 -0
- package/dist/helpers/arrays/compareArrays.d.ts +1 -0
- package/dist/helpers/arrays/compareArrays.js +24 -30
- package/dist/helpers/arrays/compareArrays.min.js +1 -1
- package/dist/helpers/arrays/mergeArrays.d.ts +1 -0
- package/dist/helpers/arrays/mergeArrays.js +2 -7
- package/dist/helpers/arrays/mergeArrays.min.js +1 -1
- package/dist/helpers/arrays/uniqueArray.d.ts +1 -0
- package/dist/helpers/arrays.d.ts +22 -20
- package/dist/helpers/arrays.js +33 -32
- package/dist/helpers/descriptors/assignDescriptor.d.ts +15 -11
- package/dist/helpers/descriptors/assignDescriptor.js +58 -60
- package/dist/helpers/descriptors/assignDescriptor.min.js +1 -1
- package/dist/helpers/descriptors/assignDescriptorDetail.d.ts +15 -11
- package/dist/helpers/descriptors/assignDescriptorDetail.js +37 -38
- package/dist/helpers/descriptors/assignDescriptorDetail.min.js +1 -1
- package/dist/helpers/descriptors/checkClearValues.d.ts +13 -11
- package/dist/helpers/descriptors/checkClearValues.js +21 -23
- package/dist/helpers/descriptors/checkClearValues.min.js +1 -1
- package/dist/helpers/descriptors/checkDescriptorComplete.d.ts +12 -10
- package/dist/helpers/descriptors/checkDescriptorComplete.js +20 -19
- package/dist/helpers/descriptors/cloneDescriptor.d.ts +11 -10
- package/dist/helpers/descriptors/cloneDescriptor.js +36 -37
- package/dist/helpers/descriptors/cloneDescriptor.min.js +1 -1
- package/dist/helpers/descriptors/cloneDescriptorDetail.d.ts +11 -10
- package/dist/helpers/descriptors/cloneDescriptorDetail.js +27 -27
- package/dist/helpers/descriptors/compareDescriptor.d.ts +14 -11
- package/dist/helpers/descriptors/compareDescriptor.js +33 -32
- package/dist/helpers/descriptors/compareDescriptor.min.js +1 -1
- package/dist/helpers/descriptors/describeObject.d.ts +16 -13
- package/dist/helpers/descriptors/describeObject.js +53 -51
- package/dist/helpers/descriptors/describeObjectDetail.d.ts +15 -12
- package/dist/helpers/descriptors/describeObjectDetail.js +38 -38
- package/dist/helpers/descriptors/describeObjectDetail.min.js +1 -1
- package/dist/helpers/descriptors/describeObjectMap.d.ts +37 -20
- package/dist/helpers/descriptors/describeObjectMap.js +108 -97
- package/dist/helpers/descriptors/describeObjectMap.min.js +1 -1
- package/dist/helpers/descriptors/nextReference.d.ts +14 -11
- package/dist/helpers/descriptors/nextReference.js +31 -29
- package/dist/helpers/descriptors/sameDescriptor.d.ts +14 -11
- package/dist/helpers/descriptors/sameDescriptor.js +22 -20
- package/dist/helpers/descriptors/samples/descriptor.d.ts +35 -27
- package/dist/helpers/descriptors/samples/descriptorDetail.d.ts +43 -34
- package/dist/helpers/descriptors/samples/descriptorMap.d.ts +17 -12
- package/dist/helpers/descriptors/samples/mappedDescriptorMap.d.ts +11 -7
- package/dist/helpers/descriptors/samples/mappedDescriptorMap.js +287 -284
- package/dist/helpers/descriptors.d.ts +45 -28
- package/dist/helpers/descriptors.js +58 -42
- package/dist/helpers/functions/callWithParams.d.ts +1 -0
- package/dist/helpers/functions/callWithParams.js +1 -6
- package/dist/helpers/functions/callWithParams.min.js +1 -1
- package/dist/helpers/functions/curry.d.ts +1 -0
- package/dist/helpers/functions/curry.js +1 -12
- package/dist/helpers/functions/curry.min.js +1 -1
- package/dist/helpers/functions/delay.d.ts +1 -0
- package/dist/helpers/functions/delay.js +4 -5
- package/dist/helpers/functions/delay.min.js +1 -1
- package/dist/helpers/functions/makeBasicQueue.d.ts +11 -10
- package/dist/helpers/functions/makeBasicQueue.js +19 -20
- package/dist/helpers/functions/makeBasicQueue.min.js +1 -1
- package/dist/helpers/functions/onBodyLoad.d.ts +1 -0
- package/dist/helpers/functions/onBodyLoad.js +1 -2
- package/dist/helpers/functions/onBodyLoad.min.js +1 -1
- package/dist/helpers/functions/pipe.d.ts +1 -0
- package/dist/helpers/functions/pipe.js +3 -6
- package/dist/helpers/functions/pipe.min.js +1 -1
- package/dist/helpers/functions/preloadParams.d.ts +1 -0
- package/dist/helpers/functions/preloadParams.js +3 -8
- package/dist/helpers/functions/preloadParams.min.js +1 -1
- package/dist/helpers/functions/queueManager.d.ts +50 -47
- package/dist/helpers/functions/queueManager.js +124 -132
- package/dist/helpers/functions/queueManager.min.js +1 -1
- package/dist/helpers/functions/queueTimeout.d.ts +1 -0
- package/dist/helpers/functions/queueTimeout.js +2 -10
- package/dist/helpers/functions/queueTimeout.min.js +1 -1
- package/dist/helpers/functions/relevancyFilter.d.ts +36 -35
- package/dist/helpers/functions/relevancyFilter.js +34 -36
- package/dist/helpers/functions/relevancyFilter.min.js +1 -1
- package/dist/helpers/functions/trace.d.ts +15 -12
- package/dist/helpers/functions/trace.js +25 -26
- package/dist/helpers/functions/trace.min.js +1 -1
- package/dist/helpers/functions.d.ts +1 -0
- package/dist/helpers/numbers/absoluteMax.d.ts +1 -0
- package/dist/helpers/numbers/absoluteMin.d.ts +1 -0
- package/dist/helpers/numbers/compare.d.ts +1 -0
- package/dist/helpers/numbers/greatestCommonDivisor.d.ts +1 -0
- package/dist/helpers/numbers/leastCommonMultiple.d.ts +1 -0
- package/dist/helpers/numbers/lowestCommonDenominator.d.ts +11 -10
- package/dist/helpers/numbers/lowestCommonDenominator.js +20 -23
- package/dist/helpers/numbers/lowestCommonDenominator.min.js +1 -1
- package/dist/helpers/numbers/randomInteger.d.ts +1 -0
- package/dist/helpers/numbers/randomInteger.js +1 -5
- package/dist/helpers/numbers/randomInteger.min.js +1 -1
- package/dist/helpers/numbers/randomNumber.d.ts +1 -0
- package/dist/helpers/numbers/randomNumber.js +1 -5
- package/dist/helpers/numbers/randomNumber.min.js +1 -1
- package/dist/helpers/numbers/simplestRatio.d.ts +1 -0
- package/dist/helpers/numbers/simplestRatio.js +4 -4
- package/dist/helpers/numbers/simplestRatio.min.js +1 -1
- package/dist/helpers/numbers.d.ts +1 -0
- package/dist/helpers/objects/cloneObject.d.ts +1 -0
- package/dist/helpers/objects/cloneObject.js +10 -15
- package/dist/helpers/objects/cloneObject.min.js +1 -1
- package/dist/helpers/objects/dotGet.d.ts +1 -0
- package/dist/helpers/objects/dotGet.js +1 -2
- package/dist/helpers/objects/dotGet.min.js +1 -1
- package/dist/helpers/objects/dotNotate.d.ts +1 -0
- package/dist/helpers/objects/dotNotate.js +6 -15
- package/dist/helpers/objects/dotNotate.min.js +1 -1
- package/dist/helpers/objects/dotSet.d.ts +1 -0
- package/dist/helpers/objects/dotSet.js +1 -2
- package/dist/helpers/objects/dotSet.min.js +1 -1
- package/dist/helpers/objects/dotUnset.d.ts +1 -0
- package/dist/helpers/objects/emptyObject.d.ts +1 -0
- package/dist/helpers/objects/filterObject.d.ts +1 -0
- package/dist/helpers/objects/filterObject.js +8 -11
- package/dist/helpers/objects/filterObject.min.js +1 -1
- package/dist/helpers/objects/isCloneable.d.ts +1 -0
- package/dist/helpers/objects/isInstanceObject.d.ts +1 -0
- package/dist/helpers/objects/isObject.d.ts +1 -0
- package/dist/helpers/objects/mapObject.d.ts +1 -0
- package/dist/helpers/objects/mapObject.js +1 -4
- package/dist/helpers/objects/mapObject.min.js +1 -1
- package/dist/helpers/objects/mergeObjects.d.ts +1 -0
- package/dist/helpers/objects/mergeObjectsBase.d.ts +1 -0
- package/dist/helpers/objects/mergeObjectsBase.js +58 -67
- package/dist/helpers/objects/mergeObjectsBase.min.js +1 -1
- package/dist/helpers/objects/mergeObjectsMutable.d.ts +1 -0
- package/dist/helpers/objects/objectKeys.d.ts +1 -0
- package/dist/helpers/objects/objectKeys.js +1 -2
- package/dist/helpers/objects/objectKeys.min.js +1 -1
- package/dist/helpers/objects/objectValues.d.ts +1 -0
- package/dist/helpers/objects/objectValues.js +1 -4
- package/dist/helpers/objects/objectValues.min.js +1 -1
- package/dist/helpers/objects/reduceObject.d.ts +1 -0
- package/dist/helpers/objects/reduceObject.js +1 -4
- package/dist/helpers/objects/reduceObject.min.js +1 -1
- package/dist/helpers/objects/setAndReturnValue.d.ts +1 -0
- package/dist/helpers/objects/setValue.d.ts +1 -0
- package/dist/helpers/objects.d.ts +5 -4
- package/dist/helpers/strings/camelCase.d.ts +10 -9
- package/dist/helpers/strings/camelCase.js +20 -20
- package/dist/helpers/strings/kabobCase.d.ts +10 -9
- package/dist/helpers/strings/kabobCase.js +19 -19
- package/dist/helpers/strings/makeFilepath.d.ts +10 -9
- package/dist/helpers/strings/makeFilepath.js +49 -50
- package/dist/helpers/strings/makeFilepath.min.js +1 -1
- package/dist/helpers/strings/makeRelativePath.d.ts +10 -9
- package/dist/helpers/strings/makeRelativePath.js +43 -43
- package/dist/helpers/strings/makeRelativePath.min.js +1 -1
- package/dist/helpers/strings/regexEscape.d.ts +9 -8
- package/dist/helpers/strings/regexEscape.js +15 -17
- package/dist/helpers/strings/regexEscape.min.js +1 -1
- package/dist/helpers/strings/snakeCase.d.ts +10 -9
- package/dist/helpers/strings/snakeCase.js +19 -19
- package/dist/helpers/strings/strAfter.d.ts +11 -10
- package/dist/helpers/strings/strAfter.js +19 -19
- package/dist/helpers/strings/strAfterLast.d.ts +11 -10
- package/dist/helpers/strings/strAfterLast.js +19 -19
- package/dist/helpers/strings/strBefore.d.ts +11 -10
- package/dist/helpers/strings/strBefore.js +19 -19
- package/dist/helpers/strings/strBeforeLast.d.ts +11 -10
- package/dist/helpers/strings/strBeforeLast.js +19 -19
- package/dist/helpers/strings/titleCase.d.ts +10 -9
- package/dist/helpers/strings/titleCase.js +20 -20
- package/dist/helpers/strings/ucFirst.d.ts +10 -9
- package/dist/helpers/strings/ucFirst.js +15 -15
- package/dist/helpers/strings/words.d.ts +11 -9
- package/dist/helpers/strings/words.js +16 -16
- package/dist/helpers/strings/words.min.js +1 -1
- package/dist/helpers/strings.d.ts +1 -0
- package/dist/main.d.ts +1 -0
- 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/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
18
|
-
* @param {module:objectDescriptors~descriptor}
|
|
19
|
-
* @
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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/
|
|
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
|
|
8
|
-
* @
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
14
|
-
* @
|
|
15
|
-
*
|
|
16
|
-
* @
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
|
5
|
-
*
|
|
6
|
-
* @
|
|
7
|
-
* @
|
|
8
|
-
* @param {
|
|
9
|
-
* @
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
16
|
-
* @
|
|
17
|
-
* @param {
|
|
18
|
-
* @
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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=
|
|
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
|
-
* @
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
* @
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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=
|
|
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;
|