function t(t,...n){const[r,e,o]=n,c={},u=t.rulesFor(r,e);for(let t=0;t!t.inverted&&t.conditions).reduce((t,n)=>{const r=n.conditions;return Object.keys(r).reduce((t,n)=>{const e=r[n];return e&&e.constructor===Object||function(t,n,r){let e=t,o=n;if(-1!==n.indexOf(".")){const r=n.split(".");o=r.pop(),e=r.reduce((t,n)=>(t[n]=t[n]||{},t[n]),t)}e[o]=r}(t,n,e),t},t)},{})}const r=t=>t.fields;function e(t){delete this[t]}function o(t){this[t]=!0}function c(t,n,c,u={}){const f=u.fieldsFrom||r,i=t.possibleRulesFor(n,c).filter(t=>t.matchesConditions(c)).reverse().reduce((t,n)=>{const r=f(n);if(r){const c=n.inverted?e:o;r.forEach(c,t)}return t},{});return Object.keys(i)}const u=t=>Array.isArray(t)?t.join(","):t;function f(t,n){return t.map(t=>{const r=[u(t.action||t.actions),"function"==typeof n?(e=t.subject,Array.isArray(e)?e:[e]).map(n).join(","):u(t.subject),t.conditions||0,t.inverted?1:0,t.fields?u(t.fields):0,t.reason||""];for(var e;!r[r.length-1];)r.pop();return r})}function i(t,n){return t.map(([t,r,e,o,c,u])=>{const f=r.split(","),i={inverted:!!o,action:t.split(","),subject:"function"==typeof n?f.map(n):f};return e&&(i.conditions=e),c&&(i.fields=c.split(",")),u&&(i.reason=u),i})}export{f as packRules,c as permittedFieldsOf,n as rulesToFields,t as rulesToQuery,i as unpackRules}; //# sourceMappingURL=extra.js.map