Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 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 | 1x 6x 5x 5x 11x 11x 24x 24x 23x 23x 23x 23x 51x 51x 51x 23x 7x 7x 13x 13x 25x 25x 24x 24x 24x 41x 41x 41x 28x 24x 36x 41x 41x 41x 41x 41x 41x 32x 40x 40x 40x 40x 4x 4x 36x 36x 36x 36x 36x 32x 49x 49x 49x 49x 87x 49x | 'use strict' module.exports = { groupRedact, groupRestore, nestedRedact, nestedRestore } function groupRestore ({keys, values, target}) { if (target == null) return const length = keys.length for (var i = 0; i < length; i++) { const k = keys[i] target[k] = values[i] } } function groupRedact (o, path, censor) { const target = get(o, path) if (target == null) return {keys: null, values: null, target: null, flat: true} const keys = Object.keys(target) const length = keys.length const values = new Array(length) for (var i = 0; i < length; i++) { const k = keys[i] values[i] = target[k] target[k] = censor } return {keys, values, target, flat: true} } function nestedRestore (arr) { const length = arr.length for (var i = 0; i < length; i++) { const { key, target, value } = arr[i] target[key] = value } } function nestedRedact (store, o, path, ns, censor) { const target = get(o, path) if (target == null) return const keys = Object.keys(target) const length = keys.length for (var i = 0; i < length; i++) { const key = keys[i] const { value, parent, exists } = specialSet(target, key, ns, censor) if (exists === true && parent !== null) { store.push({key: ns[ns.length - 1], target: parent, value}) } } return store } function has (obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop) } function specialSet (o, k, p, v) { var i = -1 var l = p.length var li = l - 1 var n var nv var ov var oov var exists = true ov = n = o[k] if (typeof n !== 'object') return {value: null, parent: null, exists} while (n != null && ++i < l) { k = p[i] nv = v oov = ov if (!(k in n)) { exists = false break } ov = n[k] nv = (i !== li) ? ov : nv n[k] = (has(n, k) && nv === ov) || typeof nv === 'undefined' ? n[k] : nv n = n[k] if (typeof n !== 'object') break } return {value: ov, parent: oov, exists} } function get (o, p) { var i = -1 var l = p.length var n = o while (n != null && ++i < l) { n = n[p[i]] } return n } |