"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _stubFalse=_interopRequireDefault(require("lodash/stubFalse"));
var _isObjectLike=_interopRequireDefault(require("lodash/isObjectLike"));var _default=











(
obj,
stopIf=_stubFalse.default,
ignoreIf=_stubFalse.default)=>
{
const getPaths=(o)=>
Object.keys(o).
filter(k=>!ignoreIf(o[k],k)).
flatMap(k=>{
const v=o[k];
return!(0,_isObjectLike.default)(v)||stopIf(v,k)?
[[k]]:
getPaths(v).map(newKeys=>[k,...newKeys]);
});

return getPaths(obj);
};exports.default=_default;