@flag-engine/core 0.0.10 → 0.0.11
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/dist/getEligibleStrategy.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEligibleStrategy.d.ts","sourceRoot":"","sources":["../src/getEligibleStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAY/E;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,IAAI,EAAE,EACb,mBAAmB,iBAAiB,EACpC,QAAO,MAAU,KAChB,
|
|
1
|
+
{"version":3,"file":"getEligibleStrategy.d.ts","sourceRoot":"","sources":["../src/getEligibleStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAY/E;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,IAAI,EAAE,EACb,mBAAmB,iBAAiB,EACpC,QAAO,MAAU,KAChB,OA6EF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,iBAAiB,EAC7B,mBAAmB,iBAAiB,KACnC,QAAQ,GAAG,SAIb,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("murmurhash-js");const r=e=>"string"==typeof e,t=e=>null==e,n=(e,a,s=0)=>!(s>10)&&(0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a,s+1);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const r=a[e.field];return!t(r)&&!t(e.value)&&r>e.value}case"less_than":{const r=a[e.field];return!t(r)&&!t(e.value)&&r<e.value}case"contains":{const t=a[e.field];return r(t)&&r(e.value)&&t.includes(e.value)}case"not_contains":{const t=a[e.field];return
|
|
1
|
+
"use strict";var e=require("murmurhash-js");const r=e=>"string"==typeof e,t=e=>null==e,n=(e,a,s=0)=>!(s>10)&&(0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a,s+1);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const r=a[e.field];return!t(r)&&!t(e.value)&&r>e.value}case"less_than":{const r=a[e.field];return!t(r)&&!t(e.value)&&r<e.value}case"contains":{const t=a[e.field];return r(t)&&r(e.value)&&t.includes(e.value)}case"not_contains":{const t=a[e.field];return!!r(e.value)&&(!r(t)||!t.includes(e.value))}case"in":{const r=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(r)}case"not_in":{const r=a[e.field];return!!Array.isArray(e.value)&&-1===e.value.indexOf(r)}default:return!1}}))),a=2**32,s=(r,t)=>{if(0===r.strategies.length)return!0;const s=((e,r)=>e.strategies.find((e=>n(e.rules,r))))(r,t);if(!s)return!1;if(0===s.variants.length)return!0;const u=((r,t)=>{const n=[...r.variants].sort(((e,r)=>e.percent-r.percent)),s=`${r.name}-${t}`,u=e.murmur3(s)/a*100;let l=0;for(const e of n)if(l+=e.percent,u<l)return e;return!1})(s,t.__id);return!1!==u&&u.name};exports.createFlagEngine=e=>({createUserContext:r=>((e,r)=>{let t=r;return{evaluateAll:()=>{const r={};for(const n of e)r[n.key]="enabled"===n.status&&s(n,t);return r},evaluate:r=>{const n=e.find((e=>e.key===r));return!!n&&"enabled"===n.status&&s(n,t)},setUserConfiguration:e=>{t=e}}})(e,r)});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{murmur3 as e}from"murmurhash-js";const t=e=>"string"==typeof e,r=e=>null==e,n=(e,a,s=0)=>!(s>10)&&(0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a,s+1);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t<e.value}case"contains":{const r=a[e.field];return t(r)&&t(e.value)&&r.includes(e.value)}case"not_contains":{const r=a[e.field];return
|
|
1
|
+
import{murmur3 as e}from"murmurhash-js";const t=e=>"string"==typeof e,r=e=>null==e,n=(e,a,s=0)=>!(s>10)&&(0===e.length||e.every((e=>{if("inSegment"in e)return n(e.inSegment.rules,a,s+1);switch(e.operator){case"equals":return a[e.field]===e.value;case"not_equals":return a[e.field]!==e.value;case"greater_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t>e.value}case"less_than":{const t=a[e.field];return!r(t)&&!r(e.value)&&t<e.value}case"contains":{const r=a[e.field];return t(r)&&t(e.value)&&r.includes(e.value)}case"not_contains":{const r=a[e.field];return!!t(e.value)&&(!t(r)||!r.includes(e.value))}case"in":{const t=a[e.field];return Array.isArray(e.value)&&-1!==e.value.indexOf(t)}case"not_in":{const t=a[e.field];return!!Array.isArray(e.value)&&-1===e.value.indexOf(t)}default:return!1}}))),a=2**32,s=(t,r)=>{if(0===t.strategies.length)return!0;const s=((e,t)=>e.strategies.find((e=>n(e.rules,t))))(t,r);if(!s)return!1;if(0===s.variants.length)return!0;const u=((t,r)=>{const n=[...t.variants].sort(((e,t)=>e.percent-t.percent)),s=`${t.name}-${r}`,u=e(s)/a*100;let l=0;for(const e of n)if(l+=e.percent,u<l)return e;return!1})(s,r.__id);return!1!==u&&u.name},u=e=>({createUserContext:t=>((e,t)=>{let r=t;return{evaluateAll:()=>{const t={};for(const n of e)t[n.key]="enabled"===n.status&&s(n,r);return t},evaluate:t=>{const n=e.find((e=>e.key===t));return!!n&&"enabled"===n.status&&s(n,r)},setUserConfiguration:e=>{r=e}}})(e,t)});export{u as createFlagEngine};
|