test-mixer 4.3.1 → 4.4.0
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/CHANGELOG.md +18 -0
- package/dist/test-mixer.esm.js +5 -2
- package/dist/test-mixer.umd.js +10 -10
- package/package.json +2 -3
- package/types/index.d.ts +67 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 4.4.0 (2026-09-01)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- preserve proto data keys ([6747b19](https://github.com/codsen/codsen/commit/6747b198c8af2444b75856734422e495d28c11e1))
|
|
11
|
+
- **test-mixer:** isolate generated option values ([07111a6](https://github.com/codsen/codsen/commit/07111a6c852bac5cfad6b1dc4a5f11b48cb738de))
|
|
12
|
+
- **test-mixer:** type generated option rows ([8a4775c](https://github.com/codsen/codsen/commit/8a4775c56d2f2cee0e12655607e25fdb4e87e47a))
|
|
13
|
+
- **test-mixer:** validate input objects ([40a8cce](https://github.com/codsen/codsen/commit/40a8cceac1d76e0a823e301893ec3ea9efd33a2c))
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- **test-mixer:** bound eager combinations ([d3a9824](https://github.com/codsen/codsen/commit/d3a9824af4ae972f7e7a2b36991b0b412adb07bf))
|
|
18
|
+
|
|
19
|
+
### Performance Improvements
|
|
20
|
+
|
|
21
|
+
- **test-mixer:** benchmark realistic combinations ([488293b](https://github.com/codsen/codsen/commit/488293b5a9efb90db51fe2bdde23d86222043e6d))
|
|
22
|
+
- **test-mixer:** stream boolean combinations ([21fb192](https://github.com/codsen/codsen/commit/21fb1924c978371023ba6386a7053059132d61f4))
|
|
23
|
+
|
|
6
24
|
## 4.3.1 (2026-08-22)
|
|
7
25
|
|
|
8
26
|
### Performance Improvements
|
package/dist/test-mixer.esm.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name test-mixer
|
|
3
3
|
* @fileoverview Test helper to generate function opts object variations
|
|
4
|
-
* @version 4.
|
|
4
|
+
* @version 4.4.0
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/test-mixer/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import{deepClone as c
|
|
10
|
+
import{deepClone as c,formatDiagnosticValue as u,isPlainObject as p}from"codsen-utils";var m="4.4.0";var $=m;function y(t,e,r){Object.defineProperty(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0})}var d=16384,b=Object.freeze({maxCombinations:d});function g(t,e,r){if(!p(t))throw new Error(`test-mixer/${r}(): [THROW_ID_01] the first input argument must be a plain object or undefined. It was given as:
|
|
11
|
+
${u(t,4)} (type ${typeof t}).`);if(!p(e))throw new Error(`test-mixer/${r}(): [THROW_ID_02] the second input argument must be a plain object or undefined. It was given as:
|
|
12
|
+
${u(e,4)} (type ${typeof e}).`);let n;if(Object.keys(t).filter(o=>typeof t[o]=="boolean").some(o=>x.call(e,o)?!1:(n=o,!0)))throw new Error(`test-mixer/${r}(): [THROW_ID_03] the second input arg object should be defaults; it should be a superset of 1st input arg object. However, 1st input arg object contains key "${n}" which 2nd input arg object doesn't have.`);let s=Object.keys(e);return{defaultsKeys:s,freeBooleanKeys:s.filter(o=>typeof e[o]=="boolean"&&!x.call(t,o))}}function O(t){if(typeof t=="boolean")return{...b};if(!p(t))throw new Error(`test-mixer/mixer(): [THROW_ID_04] the third input argument must be a plain options object or undefined. It was given as:
|
|
13
|
+
${u(t,4)} (type ${typeof t}).`);let e={...b,...t};if(!Number.isSafeInteger(e.maxCombinations)||e.maxCombinations<1||e.maxCombinations>d)throw new Error(`test-mixer/mixer(): [THROW_ID_05] opts.maxCombinations must be a positive integer no greater than ${d}. It was given as ${u(e.maxCombinations)}.`);return e}function h(t,e){let r=2**t;if(r>e){let n=Number.isSafeInteger(r)?`${r} rows (2^${t})`:`2^${t} rows`;throw new Error(`test-mixer/mixer(): [THROW_ID_06] ${t} unpinned boolean options would create ${n}, above the configured maxCombinations of ${e}. Pin more boolean keys, raise maxCombinations up to ${d}, or use mixerLazy().`)}}function v(t,e){let r=2**e.length,n=new Array(r),s=c(t);for(let o=0;o<r;o++){let i=o===0?s:c(s);for(let a=0;a<e.length;a++){let l=e[a],f=(o&1<<a)!==0;l==="__proto__"?y(i,l,f):i[l]=f}n[o]=i}return n}function*w(t,e,r){if(!r)return;let n=new Array(e.length).fill(!1),s=!0;for(;s;){let o=c(t);for(let a=0;a<e.length;a++){let l=e[a];l==="__proto__"?y(o,l,n[a]):o[l]=n[a]}yield o;let i=0;for(;i<n.length&&n[i];)n[i]=!1,i++;i===n.length?s=!1:n[i]=!0}}function k(t={},e={},r={}){let n=g(t,e,"mixer"),s=O(r);return n.defaultsKeys.length?(h(n.freeBooleanKeys.length,s.maxCombinations),v({...e,...t},n.freeBooleanKeys)):[]}function _(t={},e={}){let r=g(t,e,"mixerLazy"),n=c({...e,...t});return w(n,r.freeBooleanKeys,r.defaultsKeys.length>0)}var x=Object.prototype.hasOwnProperty;export{b as defaults,k as mixer,_ as mixerLazy,$ as version};
|
package/dist/test-mixer.umd.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @name test-mixer
|
|
3
3
|
* @fileoverview Test helper to generate function opts object variations
|
|
4
|
-
* @version 4.
|
|
4
|
+
* @version 4.4.0
|
|
5
5
|
* @author Roy Revelt
|
|
6
6
|
* @license MIT
|
|
7
7
|
* {@link https://codsen.com/os/test-mixer/}
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
"use strict";var testMixer=(()=>{var g=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames,A=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var y=(e,t,r)=>t in e?g(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,b=(e,t)=>{for(var r in t||(t={}))j.call(t,r)&&y(e,r,t[r]);if(A)for(var r of A(t))W.call(t,r)&&y(e,r,t[r]);return e};var R=(e,t)=>{for(var r in t)g(e,r,{get:t[r],enumerable:!0})},E=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of $(t))!j.call(e,i)&&i!==r&&g(e,i,{get:()=>t[i],enumerable:!(s=D(t,i))||s.enumerable});return e};var B=e=>E(g({},"__esModule",{value:!0}),e);var h=(e,t,r)=>y(e,typeof t!="symbol"?t+"":t,r);var U={};R(U,{mixer:()=>L,version:()=>T});var N=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);var I=class{constructor(){h(this,"hasRepeatedReferences",!1);h(this,"clones",[]);h(this,"index");h(this,"sources",[])}get(e){if(this.index){let r=this.index.get(e);return r!==void 0&&(this.hasRepeatedReferences=!0),r}let t=this.sources.indexOf(e);if(t!==-1)return this.hasRepeatedReferences=!0,this.clones[t]}set(e,t){if(this.index){this.index.set(e,t);return}if(this.sources.push(e),this.clones.push(t),this.sources.length===32){this.index=new WeakMap;for(let r=0;r<this.sources.length;r++)this.index.set(this.sources[r],this.clones[r]);this.sources=[],this.clones=[]}}};function x(e,t){let r=t.get(e);if(r!==void 0)return r;let s=e.slice(0);return t.set(e,s),s}function P(e,t){if(typeof Buffer<"u"&&Buffer.isBuffer(e)){let n=Buffer.from(e);return t.set(e,n),n}let r=x(e.buffer,t);if(e instanceof DataView){let n=new DataView(r,e.byteOffset,e.byteLength);return t.set(e,n),n}let s=e.constructor,i=new s(r,e.byteOffset,e.length);return t.set(e,i),i}function v(e,t,r,s){for(let i of r){let n=t[i];e[i]=typeof n!="object"||n===null?n:p(n,s)}}function p(e,t){if(typeof e!="object"||e===null)return e;let r=t.get(e);if(r!==void 0)return r;if(Array.isArray(e)){let n=e.length,l=new Array(n);t.set(e,l);let o=e,c=Object.keys(e);if(c.length===n&&(n===0||c[n-1]==="".concat(n-1)))for(let a=0;a<n;a++){let u=o[a];l[a]=typeof u!="object"||u===null?u:p(u,t)}else v(l,o,c,t);return l}let s=Object.getPrototypeOf(e);if(s===Object.prototype||s===null){let n={};return t.set(e,n),v(n,e,Object.keys(e),t),n}if(e instanceof Date){let n=new Date(e.getTime());return t.set(e,n),n}if(ArrayBuffer.isView(e))return P(e,t);if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return x(e,t);if(e instanceof Map){let n=new Map;t.set(e,n);for(let[l,o]of e)n.set(p(l,t),p(o,t));return n}if(e instanceof Set){let n=new Set;t.set(e,n);for(let l of e)n.add(p(l,t));return n}let i={};return t.set(e,i),v(i,e,Object.keys(e),t),i}function d(e){return p(e,new I)}function w(e){if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}var O,V=(O=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:O.get;var F=Date.prototype.getTime;function C(e,t={}){if(!e)throw new Error("object-boolean-combinations/combinations(): [THROW_ID_01] missing input object");if(!w(e))throw new Error("object-boolean-combinations/combinations(): [THROW_ID_02] the first input object must be a plain object");if(t&&!w(t))throw new Error("object-boolean-combinations/combinations(): [THROW_ID_03] the second override object must be a plain object");let r=Object.keys(e),s=new Set(r),i=Object.keys(t).filter(u=>s.has(u)),n=new Set(i),l=r.filter(u=>!n.has(u)),o=i.length?d(t):null,c=2**l.length,a=new Array(c);for(let u=0;u<c;u++){let m={};for(let f=0;f<l.length;f++)m[l[f]]=(u&1<<f)!==0;if(o)for(let f of i)m[f]=o[f];a[u]=m}return a}var S="4.3.1";var T=S;function L(e={},t={}){if(e&&typeof e!="object")throw new Error("test-mixer/mixer(): [THROW_ID_01] the first input arg is missing!");if(t&&typeof t!="object")throw new Error("test-mixer/mixer(): [THROW_ID_02] the second input arg is missing!");let r;if(typeof e=="object"&&typeof t=="object"&&Object.keys(e).filter(o=>typeof e[o]=="boolean").some(o=>k.call(t,o)?!1:(r=o,!0)))throw new Error('test-mixer/mixer(): [THROW_ID_03] the second input arg object should be defaults; it should be a superset of 1st input arg object. However, 1st input arg object contains key "'.concat(r,"\" which 2nd input arg object doesn't have."));if(!Object.keys(t).length)return[];let s=d(e),i=d(t),n={};return Object.keys(t).forEach(o=>{typeof i[o]=="boolean"&&!k.call(e,o)&&(n[o]=i[o])}),C(n).map(o=>b(b(b({},i),s),o))}var k=Object.prototype.hasOwnProperty;return B(U);})();
|
|
10
|
+
"use strict";var testMixer=(()=>{var D=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames,B=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var S=(e,t,_)=>t in e?D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:_}):e[t]=_,g=(e,t)=>{for(var _ in t||(t={}))L.call(t,_)&&S(e,_,t[_]);if(B)for(var _ of B(t))_e.call(t,_)&&S(e,_,t[_]);return e};var ne=(e,t)=>{for(var _ in t)D(e,_,{get:t[_],enumerable:!0})},re=(e,t,_,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of te(t))!L.call(e,l)&&l!==_&&D(e,l,{get:()=>t[l],enumerable:!(n=ee(t,l))||n.enumerable});return e};var ie=e=>re(D({},"__esModule",{value:!0}),e);var k=(e,t,_)=>S(e,typeof t!="symbol"?t+"":t,_);var Me={};ne(Me,{defaults:()=>E,mixer:()=>$e,mixerLazy:()=>Se,version:()=>Ae});function oe(){let e=[],t=0,_=!1;return{append(n){return _?!1:t+n.length>1999?(e.push("\u2026"),t+=1,_=!0,!1):(e.push(n),t+=n.length,!0)},result(){return e.join("")},stopped(){return _}}}function le(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function R(e,t){if(e.append('"')){for(let _=0;_<t.length&&!e.stopped();_+=1){let n=t.charCodeAt(_);n===34?e.append('\\"'):n===92?e.append("\\\\"):n===8?e.append("\\b"):n===9?e.append("\\t"):n===10?e.append("\\n"):n===12?e.append("\\f"):n===13?e.append("\\r"):n<32||n===8232||n===8233||n>=55296&&n<=57343?e.append(le(n)):e.append(t[_])}e.append('"')}}function se(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function T(e,t){e.append("Symbol(");let _=String(t);_.length>8&&R(e,_.slice(7,-1)),e.append(")")}function z(e,t){typeof t=="symbol"?T(e,t):R(e,String(t))}function O(e,t=0){let _=oe(),n=t===4?4:0,l=new WeakSet,i=0;function s(o){n&&_.append(" ".repeat(o*n))}function u(o,a){o&&_.append(","),n&&(_.append("\n"),s(a+1))}function r(o,a,f){n&&a&&(_.append("\n"),s(f)),_.append(o)}function c(o,a){Object.prototype.hasOwnProperty.call(o,"value")?b(o.value,a):_.append(se(o))}function y(o,a){let f;try{f=Reflect.getOwnPropertyDescriptor(o,"length")}catch(d){_.append("[Uninspectable]");return}let p=f==null?void 0:f.value;if(!Number.isSafeInteger(p)||p<0){_.append("[Uninspectable]");return}_.append("[");let h=!1;for(let d=0;d<p&&!_.stopped();d+=1){if(u(h,a),h=!0,i>=50){_.append("[MaxEntries]");break}i+=1;let v;try{v=Reflect.getOwnPropertyDescriptor(o,String(d))}catch(Ie){_.append("[Uninspectable]");continue}v!=null&&v.enumerable?c(v,a+1):_.append("[Empty]")}r("]",h,a)}function w(o,a){let f;try{f=Reflect.ownKeys(o)}catch(h){_.append("[Uninspectable]");return}_.append("{");let p=!1;for(let h of f){if(_.stopped())break;if(i>=50){u(p,a),p=!0,R(_,"\u2026"),_.append(n?": ":":"),_.append("[MaxEntries]");break}i+=1;let d;try{d=Reflect.getOwnPropertyDescriptor(o,h)}catch(v){u(p,a),p=!0,z(_,h),_.append(n?": ":":"),_.append("[Uninspectable]");continue}d!=null&&d.enumerable&&(u(p,a),p=!0,z(_,h),_.append(n?": ":":"),c(d,a+1))}r("}",p,a)}function x(o,a){if(l.has(o)){_.append("[Circular]");return}if(a>=5){_.append("[MaxDepth]");return}let f;try{f=Array.isArray(o)}catch(p){_.append("[Uninspectable]");return}l.add(o);try{f?y(o,a):w(o,a)}finally{l.delete(o)}}function b(o,a){o===null?_.append("null"):typeof o=="string"?R(_,o):typeof o=="number"?_.append(Object.is(o,-0)?"-0":String(o)):typeof o=="boolean"?_.append(o?"true":"false"):typeof o>"u"?_.append("undefined"):typeof o=="bigint"?_.append("".concat(o,"n")):typeof o=="symbol"?T(_,o):typeof o=="function"?_.append("[Function]"):x(o,a)}try{return b(e,0),_.result()}catch(o){return"[Uninspectable]"}}var ae=["_16_0_a_0_4_0_5_m_1_u_1_cp_4_b_e_4_7_0_1_0_3l_4_1_1_2_3_1_0_6_0_1_2_1_0_1_j_1_2a_1_3u_8_4l_1_11_2_0_","6_14_1z_q_4_3_19_16_z_1_1_2q_1_0_f_1_7_1_a_2_2_0_g_0_1_t_t_2g_b_0_o_w_9_1_4_0_5_l_4_0_9_0_3_0_n_o_7_","a_5_n_1_6_g_15_1m_1h_3_0_i_0_7_9_f_f_4_7_2_1_2_l_1_6_1_0_3_3_3_0_g_0_d_1_1_2_e_1_a_0_8_5_4_1_2_l_1_6","_1_1_1_1_1_1_v_3_1_0_j_2_g_8_1_2_1_l_1_6_1_1_1_4_3_0_i_0_f_1_n_0_b_7_2_1_2_l_1_6_1_1_1_4_3_0_u_1_1_2","_f_0_h_0_1_5_3_2_1_3_3_1_1_0_1_1_3_1_3_2_3_b_m_0_1g_7_1_2_1_m_1_f_3_0_q_2_1_1_2_1_u_0_4_7_1_2_1_m_1_","9_1_4_3_0_u_2_1_1_f_1_h_8_1_2_1_14_2_0_g_0_5_2_8_2_o_5_5_h_3_n_1_8_1_0_2_6_1m_1b_1_1_c_6_1m_1_1_0_1_","4_1_n_1_0_1_9_1_1_9_0_2_4_1_0_l_3_w_0_1r_7_1_z_r_4_37_16_k_0_g_5_4_3_3_0_3_1_7_2_4_c_c_0_h_11_1_0_5_","0_2_16_1_98_1_3_2_6_1_0_1_3_2_14_1_3_2_w_1_3_2_6_1_0_1_3_2_e_1_1k_1_3_2_1u_11_f_g_2d_2_5_3_h7_2_g_1_","p_5_22_6_7_7_h_d_i_e_h_e_c_1_2_f_1f_z_0_4_0_1v_2g_7_4_2_x_1_0_5_1x_a_u_1d_t_2_4_b_17_4_p_1i_m_9_1g_2","a_0_2l_1a_h_7_1i_t_d_1_a_17_q_z_15_2_a_z_2_a_5_16_2_2_15_3_1_5_1_1_3_0_5_5b_1s_7p_2_5_2_11_2_5_2_7_1","_0_1_0_1_0_1_u_2_1g_1_6_1_0_3_2_1_6_3_3_2_5_4_c_5_2_1_6_38_0_d_0_g_c_2t_0_4_0_2_9_1_0_3_4_6_0_1_0_1_","0_1_3_1_a_2_3_5_4_4_0_1g_1_22j_6c_6_3_3_1_c_11_1_0_5_0_2_1j_7_0_g_m_9_6_1_6_1_6_1_6_1_6_1_6_1_6_1_6_","28_0_d1_1_16_4_5_1_4_2d_6_2_1_2h_1_3_5_16_1_2l_h_v_1c_f_e8_533_1s_h3g_1v_19_2_7g_3_f_a_1_k_1a_g_u_2_","1x_1d_8_2_2u_2_29_k_g_1_2_1_3_1_m_t_1f_e_1d_1q_5_3_0_1_1_b_r_a_m_p_s_7_1a_s_0_g_4_1_9_a_4_1_14_n_2_1","_7_k_m_3_0_3_1d_1_0_3_1_2_4_2_0_1_0_o_2_2_a_7_2_c_5_2_5_2_5_9_6_1_6_1_16_1_d_6_36_t_8mb_c_m_4_1c_6is","_a5_2_2x_12_6_c_4_5_0_1_9_1_c_1_4_1_0_1_1_1_1_1_2z_x_a2_i_1r_2_1h_14_b_38_4_1_3q_10_p_6_p_b_2g_3_5_2","_5_2_5_2_2_z_b_1_p_1_i_1_1_1_e_2_d_y_3e_at_s_3_1c_1b_v_d_j_1_7_6_11_a_t_2_z_4_7_1c_4d_i_z_4_z_4_13_8","_1f_c_a_1_e_1_6_1_1_1_a_1_e_1_6_1_1_3_1f_c_8m_9_l_a_7_o_5_1_15_1_8_1x_5_2_0_1_17_1_1_3_0_2_m_a_m_9_u","_1t_i_1_1_a_l_a_p_6_p_12_1j_6_1_1s_0_f_3_1_2_1_s_16_s_3_s_z_7_1_r_r_1h_a_l_a_i_d_h_32_20_1j_1e_d_1e_","d_z_12_r_9_m_6y_15_6_1_g_5_1k_s_a_0_8_l_16_h_1a_k_r_m_c_1g_1l_1_2_0_d_18_w_o_q_z_t_0_2_0_8_y_3_0_c_1","b_e_3_l_0_1_0_z_h_1_o_j_1_1r_6_1_0_1_3_1_e_1_9_7_1a_12_7_2_1_2_l_1_6_1_1_1_4_3_0_i_0_c_4_u_9_1_0_2_0","_1_11_1_0_p_0_1_0_18_1g_i_3_k_2_u_1b_k_1_1_0_54_1a_15_3_10_1b_k_0_1n_16_d_0_1z_q_11_6_55_17_38_1r_v_","7_2_0_2_7_1_1_1_n_f_0_1_0_2m_7_2_12_g_0_1_0_s_0_a_13_7_0_l_0_b_19_j_0_i_20_5j_w_v_8_1_10_h_0_1d_t_34","_6_1_1_1_11_l_0_p_5_1_1_1_v_e_0_n_17_78_i_f_0_1_c_1_x_3g_0_27_pl_6e_5f_218_2o_f_tr_h_5_p_32y_5_g6_5a","1_t_1cy_fs_7_u_h_26_h_t_i_1b_g_3_v_k_5_i_c0_18_5v_1r_w_o_2_o_18_22_5_0_1u_c_1s_1_1_0_e_1_c_5p1_15_v_","2p_36_6pp_3_1_6_1_1_1_82_f_0_t_2_2_0_e_3_8_az_1s4_2y_5_c_3_8_7_9_4me_2c_1_1y_1_1_2_0_2_1_2_3_1_b_1_0","_1_6_1_1s_1_3_2_7_1_6_1_r_1_3_1_4_1_0_3_6_1_9f_2_o_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_7_1f8_u_6_5","_79_1p_42_18_a_6_g_0_8x_t_i_17_dg_r_6c_t_2_0_5r_u_1_2_1_1_1_6_2_4_9_1_68_6_1_3_1_1_1_e_1_5g_1n_1v_7_","0_xg_3_1_q_1_1_1_0_2_0_1_9_1_3_1_0_1_0_6_0_4_0_1_0_1_0_1_2_1_1_1_0_2_0_1_0_1_0_1_0_1_0_1_1_1_0_2_3_1","_6_1_3_1_3_1_0_1_9_1_g_5_2_1_4_1_g_3es_wyn_w_3dp_2_4gd_2_5rk_f_h9_1wi_f1_15u_3t6_5_6jt"].join(""),M=ae.slice(1).split("_"),ue=[],V=127;for(let e=0;e<M.length;e+=2){let t=V+1+Number.parseInt(M[e],36),_=t+Number.parseInt(M[e+1],36);ue.push([t,_]),V=_}var Le=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);var q=Function.prototype.toString,ce=q.call(Object),fe=class{constructor(){k(this,"hasRepeatedReferences",!1);k(this,"clones",[]);k(this,"index");k(this,"sources",[])}get(e){if(this.index){let _=this.index.get(e);return _!==void 0&&(this.hasRepeatedReferences=!0),_}let t=this.sources.indexOf(e);if(t!==-1)return this.hasRepeatedReferences=!0,this.clones[t]}set(e,t){if(this.index){this.index.set(e,t);return}if(this.sources.push(e),this.clones.push(t),this.sources.length===32){this.index=new WeakMap;for(let _=0;_<this.sources.length;_++)this.index.set(this.sources[_],this.clones[_]);this.sources=[],this.clones=[]}}};function K(e,t){let _=t.get(e);if(_!==void 0)return _;let n=e.slice(0);return t.set(e,n),n}function pe(e,t){if(typeof Buffer<"u"&&Buffer.isBuffer(e)){let i=Buffer.from(e);return t.set(e,i),i}let _=K(e.buffer,t);if(e instanceof DataView||Object.prototype.toString.call(e)==="[object DataView]"){let i=new DataView(_,e.byteOffset,e.byteLength);return t.set(e,i),i}let n=e.constructor,l=new n(_,e.byteOffset,e.length);return t.set(e,l),l}function de(e,t,_){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:_,writable:!0})}function P(e,t,_,n){for(let l of _){let i=t[l],s=typeof i!="object"||i===null?i:m(i,n);l==="__proto__"?de(e,l,s):e[l]=s}}function j(e,t,_,n){for(let l of _){let i=Object.getOwnPropertyDescriptor(t,l);if(i){if("value"in i){let s=i.value;i.value=typeof s!="object"||s===null?s:m(s,n)}Object.defineProperty(e,l,i)}}}var he=Map.prototype.entries,ge=Set.prototype.values,W=Object.prototype.toString,N,be=(N=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength"))==null?void 0:N.get,U,me=(U=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))==null?void 0:U.get,F,ze=(F=Object.getOwnPropertyDescriptor(RegExp.prototype,"global"))==null?void 0:F.get,H,G=(H=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:H.get,Te=RegExp.prototype.test,I;function ye(e){if(e instanceof ArrayBuffer)return!0;try{return be.call(e),!0}catch(t){return!1}}function xe(e){try{return he.call(e)}catch(t){return null}}function ve(e){try{return ge.call(e)}catch(t){return null}}function Oe(e){var t;try{return I||(I=(t=Object.getOwnPropertyDescriptor(URL.prototype,"href"))==null?void 0:t.get),I.call(e)}catch(_){return null}}function m(e,t){if(typeof e!="object"||e===null)return e;let _=t.get(e);if(_!==void 0)return _;if(Array.isArray(e)){let r=e.length,c=new Array(r);t.set(e,c);let y=e,w=Object.keys(e);if(w.length===r&&(r===0||w[r-1]==="".concat(r-1)))for(let x=0;x<r;x++){let b=y[x];c[x]=typeof b!="object"||b===null?b:m(b,t)}else P(c,y,w,t);return c}let n=Object.getPrototypeOf(e);if(n===Object.prototype){let r={};return t.set(e,r),P(r,e,Object.keys(e),t),r}if(n===null){let r=Object.create(null);return t.set(e,r),P(r,e,Object.keys(e),t),r}if(we(e)){let r=new Date(Q.call(e));return t.set(e,r),j(r,e,Object.keys(e),t),r}if(ArrayBuffer.isView(e))return pe(e,t);if(ye(e)||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return K(e,t);let l=xe(e);if(l){let r=new Map;t.set(e,r);for(let[c,y]of l)r.set(m(c,t),m(y,t));return j(r,e,Object.keys(e),t),r}let i=ve(e);if(i){let r=new Set;t.set(e,r);for(let c of i)r.add(m(c,t));return j(r,e,Object.keys(e),t),r}if(je(e)&&e!==RegExp.prototype){let r=new RegExp(G.call(e),me.call(e));return r.lastIndex=e.lastIndex,t.set(e,r),j(r,e,Object.keys(e),t),r}let s=Oe(e);if(s!==null){let r=new URL(s);return t.set(e,r),j(r,e,Object.keys(e),t),r}if(e instanceof Error||W.call(e)==="[object Error]"){let r=Object.create(Object.getPrototypeOf(e));return t.set(e,r),j(r,e,Reflect.ownKeys(e),t),r}let u=Object.create(n);return t.set(e,u),P(u,e,Object.keys(e),t),u}function A(e){return m(e,new fe)}function C(e){var n;if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let _=Object.getOwnPropertyDescriptor(t,"constructor");return!_||!("value"in _)||typeof _.value!="function"?!1:((n=Object.getOwnPropertyDescriptor(_.value,"prototype"))==null?void 0:n.value)===t&&q.call(_.value)===ce}function je(e){if(e===null||typeof e!="object")return!1;try{return e instanceof RegExp?(e.source,!0):W.call(e)!=="[object RegExp]"?!1:(G.call(e),!0)}catch(t){return!1}}var Q=Date.prototype.getTime;function we(e){if(e instanceof Date)return!0;if(e===null||typeof e!="object"||W.call(e)!=="[object Date]")return!1;try{return Q.call(e),!0}catch(t){return!1}}var J="4.4.0";var Ae=J;function Y(e,t,_){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:_,writable:!0})}var $=16384,E=Object.freeze({maxCombinations:$});function X(e,t,_){if(!C(e))throw new Error("test-mixer/".concat(_,"(): [THROW_ID_01] the first input argument must be a plain object or undefined. It was given as:\n").concat(O(e,4)," (type ").concat(typeof e,")."));if(!C(t))throw new Error("test-mixer/".concat(_,"(): [THROW_ID_02] the second input argument must be a plain object or undefined. It was given as:\n").concat(O(t,4)," (type ").concat(typeof t,")."));let n;if(Object.keys(e).filter(i=>typeof e[i]=="boolean").some(i=>Z.call(t,i)?!1:(n=i,!0)))throw new Error("test-mixer/".concat(_,'(): [THROW_ID_03] the second input arg object should be defaults; it should be a superset of 1st input arg object. However, 1st input arg object contains key "').concat(n,"\" which 2nd input arg object doesn't have."));let l=Object.keys(t);return{defaultsKeys:l,freeBooleanKeys:l.filter(i=>typeof t[i]=="boolean"&&!Z.call(e,i))}}function De(e){if(typeof e=="boolean")return g({},E);if(!C(e))throw new Error("test-mixer/mixer(): [THROW_ID_04] the third input argument must be a plain options object or undefined. It was given as:\n".concat(O(e,4)," (type ").concat(typeof e,")."));let t=g(g({},E),e);if(!Number.isSafeInteger(t.maxCombinations)||t.maxCombinations<1||t.maxCombinations>$)throw new Error("test-mixer/mixer(): [THROW_ID_05] opts.maxCombinations must be a positive integer no greater than ".concat($,". It was given as ").concat(O(t.maxCombinations),"."));return t}function Re(e,t){let _=2**e;if(_>t){let n=Number.isSafeInteger(_)?"".concat(_," rows (2^").concat(e,")"):"2^".concat(e," rows");throw new Error("test-mixer/mixer(): [THROW_ID_06] ".concat(e," unpinned boolean options would create ").concat(n,", above the configured maxCombinations of ").concat(t,". Pin more boolean keys, raise maxCombinations up to ").concat($,", or use mixerLazy()."))}}function Pe(e,t){let _=2**t.length,n=new Array(_),l=A(e);for(let i=0;i<_;i++){let s=i===0?l:A(l);for(let u=0;u<t.length;u++){let r=t[u],c=(i&1<<u)!==0;r==="__proto__"?Y(s,r,c):s[r]=c}n[i]=s}return n}function*Ce(e,t,_){if(!_)return;let n=new Array(t.length).fill(!1),l=!0;for(;l;){let i=A(e);for(let u=0;u<t.length;u++){let r=t[u];r==="__proto__"?Y(i,r,n[u]):i[r]=n[u]}yield i;let s=0;for(;s<n.length&&n[s];)n[s]=!1,s++;s===n.length?l=!1:n[s]=!0}}function $e(e={},t={},_={}){let n=X(e,t,"mixer"),l=De(_);return n.defaultsKeys.length?(Re(n.freeBooleanKeys.length,l.maxCombinations),Pe(g(g({},t),e),n.freeBooleanKeys)):[]}function Se(e={},t={}){let _=X(e,t,"mixerLazy"),n=A(g(g({},t),e));return Ce(n,_.freeBooleanKeys,_.defaultsKeys.length>0)}var Z=Object.prototype.hasOwnProperty;return ie(Me);})();
|
|
11
11
|
/**
|
|
12
|
-
* @name codsen-
|
|
13
|
-
* @fileoverview
|
|
14
|
-
* @version 1.
|
|
12
|
+
* @name codsen-format-diagnostic-value
|
|
13
|
+
* @fileoverview Safely format untrusted JavaScript values for diagnostics
|
|
14
|
+
* @version 1.1.0
|
|
15
15
|
* @author Roy Revelt
|
|
16
16
|
* @license MIT
|
|
17
|
-
* {@link https://codsen.com/os/codsen-
|
|
17
|
+
* {@link https://codsen.com/os/codsen-format-diagnostic-value/}
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
20
|
-
* @name
|
|
21
|
-
* @fileoverview
|
|
22
|
-
* @version
|
|
20
|
+
* @name codsen-utils
|
|
21
|
+
* @fileoverview Various utility functions
|
|
22
|
+
* @version 1.10.0
|
|
23
23
|
* @author Roy Revelt
|
|
24
24
|
* @license MIT
|
|
25
|
-
* {@link https://codsen.com/os/
|
|
25
|
+
* {@link https://codsen.com/os/codsen-utils/}
|
|
26
26
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "test-mixer",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"description": "Test helper to generate function opts object variations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"combinations",
|
|
@@ -67,8 +67,7 @@
|
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"codsen-utils": "^1.
|
|
71
|
-
"object-boolean-combinations": "^6.3.1"
|
|
70
|
+
"codsen-utils": "^1.10.0"
|
|
72
71
|
},
|
|
73
72
|
"engines": {
|
|
74
73
|
"node": ">=18.20.8"
|
package/types/index.d.ts
CHANGED
|
@@ -2,13 +2,74 @@ declare const version: string;
|
|
|
2
2
|
type PlainObject = {
|
|
3
3
|
[name: string]: any;
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated `mixer()` rows can contain non-boolean values. Use
|
|
7
|
+
* `MixerResult` for generated rows.
|
|
8
|
+
*/
|
|
5
9
|
type PlainObjectOfBool = {
|
|
6
10
|
[name: string]: boolean;
|
|
7
11
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
type BooleanValuesWidened<T extends PlainObject> = {
|
|
13
|
+
[Key in keyof T]: T[Key] extends boolean ? boolean : T[Key];
|
|
14
|
+
};
|
|
15
|
+
type MixerResult<Ref extends PlainObject, Defaults extends PlainObject> = Omit<
|
|
16
|
+
BooleanValuesWidened<Defaults>,
|
|
17
|
+
keyof Ref
|
|
18
|
+
> &
|
|
19
|
+
Ref;
|
|
20
|
+
interface MixerOptions {
|
|
21
|
+
maxCombinations: number;
|
|
22
|
+
}
|
|
23
|
+
declare const defaults: Readonly<MixerOptions>;
|
|
24
|
+
declare function mixer<Defaults extends PlainObject = Record<never, never>>(
|
|
25
|
+
ref?: undefined,
|
|
26
|
+
defaultsObj?: Defaults,
|
|
27
|
+
opts?: Partial<MixerOptions>,
|
|
28
|
+
): BooleanValuesWidened<Defaults>[];
|
|
29
|
+
declare function mixer<
|
|
30
|
+
Ref extends PlainObject,
|
|
31
|
+
Defaults extends PlainObject = Record<never, never>,
|
|
32
|
+
>(
|
|
33
|
+
ref: Ref,
|
|
34
|
+
defaultsObj?: Defaults,
|
|
35
|
+
opts?: Partial<MixerOptions>,
|
|
36
|
+
): MixerResult<Ref, Defaults>[];
|
|
37
|
+
declare function mixer<
|
|
38
|
+
Ref extends PlainObject,
|
|
39
|
+
Defaults extends PlainObject = Record<never, never>,
|
|
40
|
+
>(
|
|
41
|
+
ref: Ref | undefined,
|
|
42
|
+
defaultsObj?: Defaults,
|
|
43
|
+
opts?: Partial<MixerOptions>,
|
|
44
|
+
): Array<MixerResult<Ref, Defaults> | BooleanValuesWidened<Defaults>>;
|
|
45
|
+
declare function mixerLazy<Defaults extends PlainObject = Record<never, never>>(
|
|
46
|
+
ref?: undefined,
|
|
47
|
+
defaultsObj?: Defaults,
|
|
48
|
+
): Generator<BooleanValuesWidened<Defaults>, void, unknown>;
|
|
49
|
+
declare function mixerLazy<
|
|
50
|
+
Ref extends PlainObject,
|
|
51
|
+
Defaults extends PlainObject = Record<never, never>,
|
|
52
|
+
>(
|
|
53
|
+
ref: Ref,
|
|
54
|
+
defaultsObj?: Defaults,
|
|
55
|
+
): Generator<MixerResult<Ref, Defaults>, void, unknown>;
|
|
56
|
+
declare function mixerLazy<
|
|
57
|
+
Ref extends PlainObject,
|
|
58
|
+
Defaults extends PlainObject = Record<never, never>,
|
|
59
|
+
>(
|
|
60
|
+
ref: Ref | undefined,
|
|
61
|
+
defaultsObj?: Defaults,
|
|
62
|
+
): Generator<
|
|
63
|
+
MixerResult<Ref, Defaults> | BooleanValuesWidened<Defaults>,
|
|
64
|
+
void,
|
|
65
|
+
unknown
|
|
66
|
+
>;
|
|
12
67
|
|
|
13
|
-
export { mixer, version };
|
|
14
|
-
export type {
|
|
68
|
+
export { defaults, mixer, mixerLazy, version };
|
|
69
|
+
export type {
|
|
70
|
+
BooleanValuesWidened,
|
|
71
|
+
MixerOptions,
|
|
72
|
+
MixerResult,
|
|
73
|
+
PlainObject,
|
|
74
|
+
PlainObjectOfBool,
|
|
75
|
+
};
|