@ingestro/importer-react 4.10.0 → 4.11.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/chunk-2CG6ZRYU.js +6 -0
- package/{chunk-FCZBBIUR.js → chunk-3A4DOV33.js} +42 -42
- package/{chunk-QILVTTJZ.js → chunk-A7LBSJUO.js} +1 -1
- package/chunk-H6Q7NHR2.js +1 -0
- package/chunk-ICSUNGF5.js +1 -0
- package/chunk-L5AEQQSP.js +1 -0
- package/chunk-U5BU7B27.js +1 -0
- package/index.d.ts +23 -0
- package/index.js +472 -470
- package/package.json +2 -1
- package/workers/matchValues/index.js +1 -1
- package/workers/parseData/index.js +1 -1
- package/workers/recipe/index.js +1 -1
- package/workers/searchAndReplace/index.js +1 -1
- package/chunk-4ZS4X4HS.js +0 -1
- package/chunk-BSSI2VLQ.js +0 -1
- package/chunk-KGZE5GVH.js +0 -6
- package/chunk-SBERJUVM.js +0 -1
- package/chunk-VS5JZMGO.js +0 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{d as k,f as N,i as _e,j as Ie,k as ke}from"./chunk-ICSUNGF5.js";import{a as Ge}from"./chunk-YN3W6BG7.js";import{a as v}from"./chunk-EWEVS5OB.js";var dr=e=>e.getSpreadSheets()[0].getType()==="dynamic-import",fr="Uploaded data",vt=e=>`Sheet ${e+1}`,gr=e=>Array.isArray(e)&&e.length>0&&e.every(r=>!!r&&typeof r=="object"&&!Array.isArray(r)&&Array.isArray(r.sheets)),De=(e,r)=>typeof e=="string"&&e.trim()!==""?e:vt(r);var d=(e,r)=>{let t=-1;for(let n=0;n<e.headers.length;n++)if(e.headers[n]===r){if(t>=0)return-1;t=n}return t},q=(e,r)=>e.headers.reduce((t,n)=>n===r?t+1:t,0),f=e=>e==null?"":`${e}`,Nt={comma:",",semicolon:";",tab:" ",pipe:"|",space:" ",newline:`
|
|
2
|
+
`,linefeed:`
|
|
3
|
+
`},Fe=e=>{let r=e.trim();return r==="\\n"?`
|
|
4
|
+
`:r==="\\t"?" ":r==="\\r\\n"?`\r
|
|
5
|
+
`:Nt[r.toLowerCase()]??r},$e=e=>{switch(e){case",":return"comma";case";":return"semicolon";case" ":return"space";case"|":return"pipe";case" ":return"tab";case`
|
|
6
|
+
`:return"newline";default:return e.length===0?"(empty)":`'${e}'`}},Gt=e=>e==null?!1:typeof e=="string"?e.trim()!=="":!0,_t=e=>{let r=1,t=`column_${r}`;for(;e.has(t);)r+=1,t=`column_${r}`;return e.add(t),t},Te=e=>{let r=[],t=[],n=new Set(e.headers.filter(o=>o.trim()!==""));for(let o=0;o<e.headers.length;o++){let s=e.headers[o];if(s.trim()!==""){r.push(o),t.push(s),n.add(s);continue}e.rows.some(u=>Gt(u[o]))&&(r.push(o),t.push(_t(n)))}return{headers:t,rows:e.rows.map(o=>r.map(s=>o[s]??""))}},qe=e=>{let r=new Set;return e.map(t=>{if(!r.has(t))return r.add(t),t;let n=2,o=`${t}_${n}`;for(;r.has(o);)n+=1,o=`${t}_${n}`;return r.add(o),o})},S=(e,r,t=[])=>{let n=[...e.headers];for(let s of t){let a=n.indexOf(s);a>=0&&n.splice(a,1)}let o=new Set(n);for(let s of r){if(o.has(s))return s;o.add(s)}return null},Ae=e=>{let r=e.getData(),t=e.getHeaderRowIndex(),n=r[t]??[];return{headers:n.map(o=>f(o)),rows:r.slice(t+1).map(o=>n.map((s,a)=>o[a]))}},y=e=>Te(Ae(e)),A=(e,r)=>{let t=Te(Ae(e));return{headers:t.headers,rows:t.rows.slice(0,r)}},M=(e,r)=>!e.headers.length&&!e.rows.length?new k({data:[],name:r}):new k({data:[e.headers,...e.rows],name:r}),Q=e=>({headers:[...e.headers],rows:e.rows.map(r=>[...r])}),X=e=>e==null?!0:typeof e=="string"?e.trim()==="":!1,O=(e,r,t,n)=>e==="start"?0:e==="end"?t:n?r:r+1,D=({grid:e,newHeaders:r,newCellsForRow:t,insertAt:n,removeIndexes:o=[]})=>{let s=new Set(o),a=e.headers.map((l,p)=>p).filter(l=>!s.has(l)),u=[...a.map(l=>e.headers[l]).slice(0,n),...r,...a.map(l=>e.headers[l]).slice(n)],i=e.rows.map(l=>{let p=a.map(m=>l[m]??""),c=t(l);return[...p.slice(0,n),...c,...p.slice(n)]});return{headers:u,rows:i}},Y=(e,r)=>{if(e==null)return"";if(r==="string")return typeof e=="string"?e:f(e);if(typeof e=="number"&&!Number.isNaN(e))return e;let t=f(e).trim();if(t===""||t.includes("%"))return e;let n=v.convertStringToNumber(t);if(n===null)return e;let o=Number(n);return Number.isNaN(o)?e:o},It=[{shape:"underscore",re:/^(.+?)(\d+)_(.+)$/},{shape:"space",re:/^(.+?)\s+(\d+)\s+(.+)$/}],P=(e,r,t)=>e.shape==="space"?`${e.prefix} ${r} ${t}`:`${e.prefix}${r}_${t}`,kt=e=>{for(let r of It){let t=e.match(r.re);if(!t)continue;let n=t[1],o=t[2],s=t[3];if(P({prefix:n.trim(),shape:r.shape},o,s.trim())===e)return{shape:r.shape,prefix:n,number:o,field:s}}return null},Rr=(e,r,t)=>!t||!r||e.length>0&&(e.length!==r.length||e.some((n,o)=>n!==r[o]))?null:[...t],E=(e,r)=>{let t=r?.trim()??"",n=new Map,o=new Set;for(let l of e){let p=kt(l);if(!p||t&&p.prefix!==t)continue;if(o.has(l))return null;o.add(l);let c=`${p.shape}\0${p.prefix}`,m=n.get(c)??{prefix:p.prefix,shape:p.shape,fields:new Set,numbers:new Set};m.fields.add(p.field),m.numbers.add(p.number),n.set(c,m)}if(n.size!==1)return null;let s=[...n.values()][0];if(s.numbers.size<2)return null;let a=[...s.fields].sort(),u=[...s.numbers].sort((l,p)=>Number(l)-Number(p)||l.localeCompare(p)),i=new Set;for(let l of u)for(let p of a){let c=P(s,l,p);if(!e.includes(c))return null;i.add(c)}return{prefix:s.prefix,shape:s.shape,fields:a,numbers:u,keyColumns:e.filter(l=>!i.has(l))}};var Oe=e=>{if(!e||typeof e!="object")return!1;let r=e.source;if(typeof r!="string"||r.trim()==="")return!1;let t=e.target,n=e.targets;return"targets"in e?Array.isArray(n)&&n.length>0&&n.every(o=>typeof o=="string"&&o.trim()!==""):typeof t=="string"&&t.trim()!==""},te=e=>Array.isArray(e.mappings)?e.mappings.some(r=>!Oe(r)):!1,re=e=>e==="join"||e==="append",j=e=>e.operation===void 0?!1:!re(e.operation),ne=e=>{let r=e.operation===void 0?"join":re(e.operation)?e.operation:null;return r===null?null:{operation:r,mappings:Array.isArray(e.mappings)?e.mappings.filter(Oe):[]}},vr=e=>j(e)||te(e)?null:ne(e),Nr=e=>{if(j(e))return null;let r=e.operation===void 0?"join":re(e.operation)?e.operation:"join",t=Array.isArray(e.mappings)?e.mappings.map(n=>{if(!n||typeof n!="object")return{source:"",target:""};let o=n,s=typeof o.source=="string"?o.source:"",a=typeof o.target=="string"?o.target:"";if(Array.isArray(o.targets)){let u=o.targets.map(i=>typeof i=="string"?i:"");return{source:s,target:u[0]??a,targets:u}}return{source:s,target:a}}):[];return{operation:r,mappings:t}},G=e=>{let r=y(e);return{name:e.getName(),id:e.getId(),type:e.getType(),headerRow:r.headers,values:r.rows}},Z=(e,r)=>e.targets?e.targets[r]:e.target,U=(e,r,t,n=0)=>t.map(o=>({source:e.indexOf(o.source),target:r.indexOf(Z(o,n))})).filter(o=>o.source>=0&&o.target>=0),Me=(e,r)=>e.reduce((t,n)=>n===r?t+1:t,0),Pe=(e,r)=>{if(e.length<2)return"Combine needs more than one sheet";if(!r.mappings.length)return"Required settings are empty";let t=r.mappings.map(o=>o.source);if(new Set(t).size!==t.length)return"Duplicate column in combine mapping";let n=y(e[0]).headers;for(let o of r.mappings)if(Me(n,o.source)>1)return"Duplicate column in combine mapping";for(let o=1;o<e.length;o++){let s=r.mappings.map(i=>Z(i,o-1));if(new Set(s).size!==s.length)return"Duplicate column in combine mapping";let a=y(e[o]).headers;for(let i of r.mappings)if(Me(a,Z(i,o-1))>1)return"Duplicate column in combine mapping";if(U(n,a,r.mappings,o-1).length!==r.mappings.length)return"Unknown column in combine mapping"}return null},ee=(e,r)=>({headers:qe((r[0]??[]).map(t=>f(t))),rows:r.slice(1)}),oe=2e4,V=(e,r)=>e.filter((t,n)=>r.every(o=>o.target!==n)),Dt=(e,r,t,n)=>{let o=new Map;for(let u of r.values){let i=N(u,t,"target");i&&o.set(i,(o.get(i)??0)+1)}let s=0,a=new Set;for(let u of e.values){let i=N(u,t,"source"),l=i?o.get(i)??0:0;if(l&&a.add(i),s+=l||1,s>n)return s}for(let[u,i]of o)if(!a.has(u)&&(s+=i,s>n))return s;for(let u of r.values)if(!N(u,t,"target")&&(s+=1,s>n))return s;return s},Ft=(e,r,t)=>{let n=new Map,o=[];for(let p of r.values){let c=N(p,t,"target");if(!c){o.push(p);continue}let m=n.get(c)??[];m.push(p),n.set(c,m)}let s=new Map,u=[[...e.headerRow,...V(r.headerRow,t)]],i=()=>V(r.headerRow,t).map(()=>""),l=p=>{let c=e.headerRow.map(()=>"");return t.forEach(m=>{c[m.source]=p[m.target]}),[...c,...V(p,t)]};for(let p of e.values){let c=N(p,t,"source"),m=c?n.get(c):void 0,g=c?s.get(c)??0:0;if(m&&g<m.length){s.set(c,g+1),u.push([...p,...V(m[g],t)]);continue}u.push([...p,...i()])}for(let[p,c]of n){let m=s.get(p)??0;for(let g=m;g<c.length;g++)u.push(l(c[g]))}for(let p of o)u.push(l(p));return u},se=async(e,r,t,n,o)=>{let s=U(e.headerRow.map(i=>f(i)),r.headerRow.map(i=>f(i)),t.mappings,n);if(s.length!==t.mappings.length)return null;let a=t.operation==="append"?Ie:_e,u=t.operation!=="append"&&Dt(e,r,s,o)>o?{data:Ft(e,r,s)}:await a(e,r,s);return{...e,headerRow:u.data[0]??[],values:u.data.slice(1)}},Ee=async(e,r,t,n,o=oe)=>{let s=await se(G(M(e,"acc")),G(r),t,n,o);return s?ee(s.name,[s.headerRow,...s.values]):null},Ve=async(e,r,t=oe)=>{let n=G(e[0]);for(let o=1;o<e.length;o++){let s=await se(n,G(e[o]),r,o-1,t);if(!s)return ee(n.name,[n.headerRow,...n.values]);n=s}return ee(n.name,[n.headerRow,...n.values])},Ue=async(e,r,t=oe)=>{let n=Math.max(0,e.length-1);if(n===0||!r.mappings.length)return{count:0,total:0,mapped:0,targetColumns:0,targetCount:n};let o=y(e[0]),s=0,a=0,u=!0;for(let c=1;c<e.length;c++){let m=y(e[c]),g=U(o.headers,m.headers,r.mappings,c-1);g.length!==r.mappings.length&&(u=!1),s+=g.length,a+=m.headers.length}if(r.operation==="append")return{count:0,total:0,mapped:s,targetColumns:a,targetCount:n};if(!u)return{count:0,total:0,mapped:s,targetColumns:a,targetCount:n};let i=G(e[0]),l=0,p=0;for(let c=1;c<e.length;c++){let m=G(e[c]),g=U(i.headerRow.map(f),m.headerRow.map(f),r.mappings,c-1),C=await ke(i,m,g);l+=C.count,p+=C.total;let b=await se(i,m,r,c-1,t);if(!b)break;i=b}return{count:l,total:p,mapped:s,targetColumns:a,targetCount:n}},Gr=e=>{if(!e.length)return[];let r=new Map,t=[];e.forEach((o,s)=>{for(let{baseColumn:a,incomingColumn:u}of o){if(!a||!u)continue;let i=r.get(a);if(!i){if(s>0)continue;i=Array(e.length).fill(void 0),r.set(a,i),t.push(a)}i[s]===void 0&&(i[s]=u)}});let n=e.map(()=>new Set);return t.flatMap(o=>{let s=r.get(o)??[];if(s.length!==e.length)return[];if(s.some(u=>u===void 0))return[];let a=s;return a.some((u,i)=>n[i].has(u))?[]:(a.forEach((u,i)=>n[i].add(u)),[{source:o,target:a[0],targets:a}])})},je=e=>{let r=e[0]?y(e[0]).headers[0]??"":"",t=e.slice(1).map(o=>y(o).headers[0]??""),n=t[0]??"";return{operation:"join",mappings:r&&n?[{source:r,target:n,targets:t}]:[]}};import*as Ke from"@babel/standalone";import{Interpreter as $t}from"eval5";var Tt=e=>(Ke.transform(e,{presets:[["env",{targets:{ie:"11"},modules:!1}]],compact:!1,comments:!1}).code??e).replace(/^["']use strict["'];?\s*/i,"").trim().replace(/;$/,""),Je=()=>Object.create(null),He=(e,r)=>{let t=Je();return e.headers.forEach((n,o)=>{t[n]=r[o]??""}),t},qt=(e,r)=>e.map(t=>Object.prototype.hasOwnProperty.call(r,t)?r[t]:""),At=e=>e==null?"":typeof e=="string"||typeof e=="number"||typeof e=="boolean"?e:null,Le=(e,r,t)=>{let n=e;for(let o of Object.keys(r)){if(!o.trim())return{headers:e,error:"Generated function returned an empty column name"};if(!n.includes(o)){n=[...n,o];for(let s=0;s<t.length;s++)t[s]=[...t[s],""]}}return{headers:n,error:null}},Mt=e=>{let r=Je();for(let[t,n]of Object.entries(e)){let o=At(n);if(o===null)return{normalized:r,error:`Generated function returned unsupported value for column "${t}"`};r[t]=o}return{normalized:r,error:null}},Be=(e,r)=>{let t=e.headers.map(n=>n.trim());if(t.some(n=>n===""))return{grid:e,error:"Generated steps require non-empty column headers"};if(new Set(t).size!==t.length)return{grid:e,error:"Generated steps require unique column headers"};try{let n=Tt(r),s=new $t({},{timeout:5e3}).evaluate(n);if(typeof s!="function")return{grid:e,error:"Generated function must be callable"};let a=[...e.headers],u=[];if(e.rows.length===0){let i=s(He(e,[]));if(!i||typeof i!="object"||Array.isArray(i))return{grid:e,error:"Generated function must return a row object"};let l=Le(a,i,u);return l.error?{grid:e,error:l.error}:{grid:{headers:l.headers,rows:[]},error:null}}for(let i of e.rows){let l=s(He(e,i));if(!l||typeof l!="object"||Array.isArray(l))return{grid:e,error:"Generated function must return a row object"};let p=Le(a,l,u);if(p.error)return{grid:e,error:p.error};a=p.headers;let{normalized:c,error:m}=Mt(l);if(m)return{grid:e,error:m};u.push(qt(a,c))}return{grid:{headers:a,rows:u},error:null}}catch(n){return{grid:e,error:n instanceof Error?n.message:"Generated step failed to run"}}};var Ot=e=>`Unknown column: ${e}`,Pt=e=>`Duplicate column: ${e}`,$=e=>`Column already exists: ${e}`,R=(e,r)=>{let t=q(e,r);return t===0?Ot(r):t>1?Pt(r):null},h=e=>typeof e=="string"&&e.length>0?e:"",L=["end","start","afterSource"],ge=["end","start"],ye=e=>L.includes(e),Et=e=>ge.includes(e),Vt=["yes","no"],Ut=e=>e==="yes"||e==="no",F=(e,r,t)=>e!=null&&e!==""&&typeof e=="string"&&!r.includes(e)?`Invalid ${t}`:null,he=e=>Array.isArray(e)&&e.every(r=>typeof r=="string")?e:[],ie=e=>({column:h(e.column),by:typeof e.by=="string"?e.by:"",into:he(e.into),position:ye(e.position)?e.position:"end"}),jt=["eq","neq","gte","lte","gt","lt"],ze=e=>jt.includes(e),ae=e=>({column:h(e.column),operator:ze(e.operator)?e.operator:"eq",value:typeof e.value=="string"?e.value:""}),We=["currency","stripCurrency","uppercase","lowercase","trimWhitespace","titleCase","removeSpecialCharacters","addPrefix","addSuffix"],Ht=new Set(["addPrefix","addSuffix"]),Qe=e=>We.includes(e),ue=e=>({column:h(e.column),as:Qe(e.as)?e.as:"currency",text:typeof e.text=="string"?e.text:""}),le=e=>({column:h(e.column),to:h(e.to)}),pe=e=>({columnName:h(e.columnName),value:typeof e.value=="string"?e.value:"",position:Et(e.position)?e.position:"end"}),ce=e=>({columns:he(e.columns)}),me=e=>({column:h(e.column),to:h(e.to),position:ye(e.position)?e.position:"afterSource"}),de=e=>({column:h(e.column),value:f(e.value)}),fe=e=>({columns:he(e.columns),by:typeof e.by=="string"?e.by:"",into:h(e.into),position:ye(e.position)?e.position:"afterSource",dropSources:Ut(e.dropSources)?e.dropSources:"yes"}),Lt=(e,r,t)=>{let n=f(e),o=n.trim(),s=t.trim(),a=Y(e,"number"),u=Y(t,"number"),i=typeof a=="number"?a:Number(o),l=typeof u=="number"?u:Number(s),p=o!==""&&s!==""&&typeof a=="number"&&typeof u=="number"&&!Number.isNaN(i)&&!Number.isNaN(l);switch(r){case"eq":return p?i===l:n===t;case"neq":return p?i!==l:n!==t;case"gte":return s!==""&&!Number.isNaN(l)&&(o===""||Number.isNaN(i))?!1:p?i>=l:n>=t;case"lte":return s!==""&&!Number.isNaN(l)&&(o===""||Number.isNaN(i))?!1:p?i<=l:n<=t;case"gt":return s!==""&&!Number.isNaN(l)&&(o===""||Number.isNaN(i))?!1:p?i>l:n>t;case"lt":return s!==""&&!Number.isNaN(l)&&(o===""||Number.isNaN(i))?!1:p?i<l:n<t;default:return!1}},Kt=e=>{if(e.trim()==="")return e;let r=v.convertStringToNumber(e);if(r===null)return e;let t=Number(r);return Number.isNaN(t)?e:String(t)},Jt=e=>e.replace(/\S+/g,r=>{let t=[...r],n=t[0];return n?n.toUpperCase()+t.slice(1).join("").toLowerCase():r}),Bt=e=>e.replace(/[^\p{L}\p{M}\p{N}\s]/gu,""),H={format:"us",symbol:"$",suffix:!1},zt=new Map(Ge.map(e=>{let r=e.value.trim().toUpperCase();if(r==="EUR")return[r,{format:"eu",symbol:"\u20AC",suffix:!0}];if(r==="USD")return[r,H];let t=e.alternativeMatches?.[0]?.trim()||r;return[r,{format:"us",symbol:t,suffix:!1}]})),Xe=e=>zt.get(f(e).trim().toUpperCase())??null,Wt=(e,r)=>{let t=-1,n=0;return e.headers.forEach((o,s)=>{if(s===r)return;let a=0;for(let u of e.rows){let i=f(u[s]).trim();i&&Xe(i)&&(a+=1)}a>n&&(t=s,n=a)}),t},Qt=(e,r)=>r?e.split(r).join("").trim():e,Xt=(e,r)=>{let t=f(e);if(t.trim()==="")return t;let n=typeof e=="number"?t:Qt(t,r.symbol);if(n.trim()==="")return t;let o=typeof e=="number"?String(e):v.convertStringToNumber(n);if(o===null||!Number.isFinite(Number(o)))return t;let s=v.convertToFormat(Number(o),{targetFormat:r.format,decimalDigits:2});return r.suffix?`${s} ${r.symbol}`:/\p{L}/u.test(r.symbol)?`${r.symbol} ${s}`:`${r.symbol}${s}`},Yt=(e,r,t=H)=>{let n=f(e),{as:o}=r;return o==="uppercase"?n.toUpperCase():o==="lowercase"?n.toLowerCase():o==="stripCurrency"?Kt(n):o==="trimWhitespace"?n.trim():o==="titleCase"?Jt(n):o==="removeSpecialCharacters"?Bt(n):o==="addPrefix"?`${r.text}${n}`:o==="addSuffix"?`${n}${r.text}`:n.trim()===""?n:Xt(e,t)},Ye={type:"splitColumn",displayNameKey:"txt_preprocess_split_column",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"by",type:"string",required:!0,isColumn:!1},{name:"into",type:"string[]",required:!0,isColumn:!1},{name:"position",type:"enum",required:!1,isColumn:!1,options:["end","start","afterSource"]}],validate:(e,r)=>{let t=F(r.position,L,"position");if(t)return t;let{column:n,by:o,into:s}=ie(r);if(!n||!o||s.length===0)return"Required settings are empty";if(s.some(u=>u.trim()===""))return"Destination column names cannot be empty";if(d(e,n)<0)return R(e,n);let a=S(e,s,[n]);return a?$(a):null},apply:(e,r)=>{let{column:t,by:n,into:o,position:s}=ie(r),a=d(e,t);return D({grid:e,newHeaders:o,newCellsForRow:u=>{let i=f(u[a]).split(n);return o.map((l,p)=>i[p]??"")},insertAt:O(s??"end",a,e.headers.length-1,!0),removeIndexes:[a]})},summary:e=>{let{column:r,by:t,into:n,position:o}=ie(e),s=t===" "?"space":t,a=o&&o!=="end"?` (${o})`:"";return`Split ${r} by ${s} \u2192 ${n.map(u=>`\`${u}\``).join(", ")}${a}`}},Ze={type:"filterRows",displayNameKey:"txt_preprocess_filter_rows",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"operator",type:"enum",required:!0,isColumn:!1,options:["eq","neq","gte","lte","gt","lt"]},{name:"value",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let{column:t,value:n}=ae(r);return!t||n===""?"Required settings are empty":ze(r.operator)?d(e,t)<0?R(e,t):null:"Invalid operator"},apply:(e,r)=>{let t=ae(r),n=d(e,t.column);return{headers:[...e.headers],rows:e.rows.filter(o=>Lt(o[n],t.operator,t.value))}},summary:e=>{let{column:r,operator:t,value:n}=ae(e);return`Keep rows where \`${r}\` ${{eq:"=",neq:"\u2260",gte:"\u2265",lte:"\u2264",gt:">",lt:"<"}[t]} \`${n}\``}},et={type:"formatColumn",displayNameKey:"txt_preprocess_format_column",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"as",type:"enum",required:!0,isColumn:!1,options:[...We]},{name:"text",type:"string",required:!1,isColumn:!1}],validate:(e,r)=>{let{column:t,as:n,text:o}=ue(r);return t?Qe(r.as)?Ht.has(n)&&o.trim()===""?"Required settings are empty":d(e,t)<0?R(e,t):null:"Unsupported format option":"Required settings are empty"},apply:(e,r)=>{let t=ue(r),n=d(e,t.column),o=t.as==="currency"?Wt(e,n):-1;return{headers:[...e.headers],rows:e.rows.map(s=>s.map((a,u)=>u===n?Yt(a,t,o>=0?Xe(s[o])??H:H):a))}},summary:e=>{let{column:r,as:t,text:n}=ue(e);return t==="addPrefix"?`Add prefix \`${n}\` to \`${r}\``:t==="addSuffix"?`Add suffix \`${n}\` to \`${r}\``:`Format \`${r}\` as ${t}`}},tt={type:"renameColumn",displayNameKey:"txt_preprocess_rename_column",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"to",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let{column:t,to:n}=le(r);if(!t||!n||n.trim()==="")return"Required settings are empty";if(d(e,t)<0)return R(e,t);let o=S(e,[n],[t]);return o?$(o):null},apply:(e,r)=>{let{column:t,to:n}=le(r),o=d(e,t);return{headers:e.headers.map((s,a)=>a===o?n:s),rows:e.rows.map(s=>[...s])}},summary:e=>{let{column:r,to:t}=le(e);return`Rename \`${r}\` \u2192 \`${t}\``}},rt={type:"addMetadataColumn",displayNameKey:"txt_preprocess_add_column",addable:!0,settings:[{name:"columnName",type:"string",required:!0,isColumn:!1},{name:"value",type:"string",required:!1,isColumn:!1},{name:"position",type:"enum",required:!1,isColumn:!1,options:ge}],validate:(e,r)=>{let t=F(r.position,ge,"position");if(t)return t;let{columnName:n}=pe(r);if(!n||n.trim()==="")return"Required settings are empty";let o=S(e,[n]);return o?$(o):null},apply:(e,r)=>{let{columnName:t,value:n,position:o}=pe(r);return D({grid:e,newHeaders:[t],newCellsForRow:()=>[n],insertAt:O(o??"end",0,e.headers.length,!1)})},summary:e=>{let{columnName:r,value:t}=pe(e);return`Add \`${r}\` = \`${t}\``}},nt={type:"removeColumn",displayNameKey:"txt_preprocess_remove_column",addable:!0,settings:[{name:"columns",type:"string[]",required:!0,isColumn:!0}],validate:(e,r)=>{let{columns:t}=ce(r);if(!t.length)return"Required settings are empty";for(let n of t)if(d(e,n)<0)return R(e,n);return null},apply:(e,r)=>{let{columns:t}=ce(r),n=new Set(t.map(o=>d(e,o)).filter(o=>o>=0));return{headers:e.headers.filter((o,s)=>!n.has(s)),rows:e.rows.map(o=>o.filter((s,a)=>!n.has(a)))}},summary:e=>{let{columns:r}=ce(e);return`Remove ${r.map(t=>`\`${t}\``).join(", ")}`}},ot={type:"duplicateColumn",displayNameKey:"txt_preprocess_duplicate_column",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"to",type:"string",required:!0,isColumn:!1},{name:"position",type:"enum",required:!1,isColumn:!1,options:["end","start","afterSource"]}],validate:(e,r)=>{let t=F(r.position,L,"position");if(t)return t;let{column:n,to:o}=me(r);if(!n||!o||o.trim()==="")return"Required settings are empty";if(d(e,n)<0)return R(e,n);let s=S(e,[o]);return s?$(s):null},apply:(e,r)=>{let{column:t,to:n,position:o}=me(r),s=d(e,t);return D({grid:e,newHeaders:[n],newCellsForRow:a=>[a[s]??""],insertAt:O(o,s,e.headers.length,!1)})},summary:e=>{let{column:r,to:t}=me(e);return`Duplicate \`${r}\` \u2192 \`${t}\``}},st={type:"fillEmptyCells",displayNameKey:"txt_preprocess_fill_empty_cells",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"value",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let{column:t,value:n}=de(r);return!t||n===""?"Required settings are empty":d(e,t)<0?R(e,t):null},apply:(e,r)=>{let{column:t,value:n}=de(r),o=d(e,t);return{headers:[...e.headers],rows:e.rows.map(s=>s.map((a,u)=>u===o&&X(a)?n:a))}},summary:e=>{let{column:r,value:t}=de(e);return`Fill empty \`${r}\` with \`${t}\``}},it={type:"mergeColumns",displayNameKey:"txt_preprocess_merge_columns",addable:!0,settings:[{name:"columns",type:"string[]",required:!0,isColumn:!0},{name:"by",type:"string",required:!0,isColumn:!1},{name:"into",type:"string",required:!0,isColumn:!1},{name:"position",type:"enum",required:!1,isColumn:!1,options:["end","start","afterSource"]},{name:"dropSources",type:"enum",required:!1,isColumn:!1,options:["yes","no"]}],validate:(e,r)=>{let t=F(r.position,L,"position");if(t)return t;let n=F(r.dropSources,Vt,"dropSources");if(n)return n;let o=fe(r);if(!o.columns.length||!o.by||!o.into||o.into.trim()==="")return"Required settings are empty";for(let a of o.columns)if(d(e,a)<0)return R(e,a);let s=S(e,[o.into],o.dropSources==="yes"?o.columns:[]);return s?$(s):null},apply:(e,r)=>{let t=fe(r),n=t.columns.map(c=>d(e,c)),o=n[0]??0,s=t.dropSources==="yes"?n:[],a=new Set(s),u=e.headers.map((c,m)=>m).filter(c=>!a.has(c)),i=u.filter(c=>c<o).length,l=u.indexOf(o),p;return t.position==="start"?p=0:t.position==="end"?p=u.length:t.dropSources==="yes"?p=i:p=l>=0?l+1:i+1,D({grid:e,newHeaders:[t.into],newCellsForRow:c=>[n.map(m=>c[m]).filter(m=>!X(m)).map(m=>f(m)).join(t.by)],insertAt:p,removeIndexes:s})},summary:e=>{let r=fe(e);return`Merge ${r.columns.map(t=>`\`${t}\``).join(", ")} \u2192 \`${r.into}\``}};var Zt=e=>`Unknown column: ${e}`,be=e=>`Column already exists: ${e}`,_=(e,r)=>{let t=q(e,r);return t===0?Zt(r):t>1?`Duplicate column: ${r}`:null},x=e=>typeof e=="string"&&e.length>0?e:"",J=e=>Array.isArray(e)&&e.every(r=>typeof r=="string")?e:[],at=["all","first","last"],ut=e=>at.includes(e),K=e=>({column:x(e.column),by:typeof e.by=="string"?Fe(e.by):""}),Se=e=>({columns:J(e.columns),nameColumn:x(e.nameColumn),valueColumn:x(e.valueColumn)}),Ce=e=>({namesFrom:x(e.namesFrom),valuesFrom:x(e.valuesFrom)}),Re=e=>({by:x(e.by),aggregateColumns:J(e.aggregateColumns),aggregateModes:Array.isArray(e.aggregateModes)?e.aggregateModes.filter(ut):[],delimiter:typeof e.delimiter=="string"?e.delimiter:", "}),we=e=>({groupPrefix:x(e.groupPrefix).trim(),groupFields:J(e.groupFields).map(r=>r.trim()).filter(Boolean),groupIndexColumn:typeof e.groupIndexColumn=="string"&&e.groupIndexColumn.trim()!==""?e.groupIndexColumn:"group"}),er=(e,r,t)=>r==="all"?e.map(n=>f(n)).filter(n=>n.trim()!=="").join(t):r==="last"?e[e.length-1]??"":e[0]??"",Or=(e,r)=>{let{column:t,by:n}=K(r);if(!t||!n)return!1;let o=d(e,t);return o<0?!1:e.rows.some(s=>f(s[o]).split(n).map(u=>u.trim()).filter(Boolean).length>1)},lt={type:"splitIntoRows",displayNameKey:"txt_preprocess_split_into_rows",addable:!0,settings:[{name:"column",type:"string",required:!0,isColumn:!0},{name:"by",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let{column:t,by:n}=K(r);return!t||!n?"Required settings are empty":d(e,t)<0?_(e,t):null},apply:(e,r)=>{let{column:t,by:n}=K(r),o=d(e,t),s=[];for(let a of e.rows){let u=f(a[o]).split(n).map(i=>i.trim()).filter(Boolean);if(u.length===0){s.push([...a]);continue}for(let i of u)s.push(a.map((l,p)=>p===o?i:l))}return{headers:[...e.headers],rows:s}},summary:e=>{let{column:r,by:t}=K(e);return`Split \`${r}\` by ${$e(t)} into rows`}},pt={type:"unpivotColumns",displayNameKey:"txt_preprocess_unpivot_columns",addable:!0,settings:[{name:"columns",type:"string[]",required:!0,isColumn:!0},{name:"nameColumn",type:"string",required:!0,isColumn:!1},{name:"valueColumn",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let t=Se(r);if(!t.columns.length||!t.nameColumn||!t.valueColumn)return"Required settings are empty";for(let o of t.columns)if(d(e,o)<0)return _(e,o);let n=S(e,[t.nameColumn,t.valueColumn],t.columns);return n?be(n):null},apply:(e,r)=>{let t=Se(r),n=t.columns.map(i=>d(e,i)),o=new Set(n),s=e.headers.map((i,l)=>l).filter(i=>!o.has(i)),a=[...s.map(i=>e.headers[i]),t.nameColumn,t.valueColumn],u=[];for(let i of e.rows)for(let l of n)u.push([...s.map(p=>i[p]??""),e.headers[l],i[l]??""]);return{headers:a,rows:u}},summary:e=>{let r=Se(e);return`Unpivot ${r.columns.map(t=>`\`${t}\``).join(", ")} \u2192 \`${r.nameColumn}\`, \`${r.valueColumn}\``}},ct={type:"pivotColumn",displayNameKey:"txt_preprocess_pivot_column",addable:!0,settings:[{name:"namesFrom",type:"string",required:!0,isColumn:!0},{name:"valuesFrom",type:"string",required:!0,isColumn:!0}],validate:(e,r)=>{let t=Ce(r);if(!t.namesFrom||!t.valuesFrom)return"Required settings are empty";if(t.namesFrom===t.valuesFrom)return"Names and values must come from different columns";for(let i of[t.namesFrom,t.valuesFrom])if(d(e,i)<0)return _(e,i);let n=d(e,t.namesFrom),o=d(e,t.valuesFrom),s=e.headers.filter((i,l)=>l!==n&&l!==o),u=[...new Set(e.rows.map(i=>f(i[n]).trim()).filter(Boolean))].find(i=>s.includes(i));return u?be(u):null},apply:(e,r)=>{let t=Ce(r),n=d(e,t.namesFrom),o=d(e,t.valuesFrom),s=e.headers.map((c,m)=>m).filter(c=>c!==n&&c!==o),a=s.map(c=>e.headers[c]),u=[...new Set(e.rows.map(c=>f(c[n]).trim()).filter(Boolean))].sort(),i=[...a,...u],l=new Map;for(let c of e.rows){let m=s.map(W=>c[W]??""),g=m.map(W=>f(W)).join("\0"),C=f(c[n]).trim();if(!C)continue;let b=l.get(g);b||(b={keys:m,values:new Map},l.set(g,b)),b.values.set(C,c[o]??"")}let p=[...l.values()].map(({keys:c,values:m})=>[...c,...u.map(g=>m.get(g)??"")]);return{headers:i,rows:p}},summary:e=>{let r=Ce(e);return`Pivot \`${r.namesFrom}\` / \`${r.valuesFrom}\` into columns`}},mt={type:"groupRows",displayNameKey:"txt_preprocess_group_rows",addable:!0,settings:[{name:"by",type:"string",required:!0,isColumn:!0},{name:"aggregateColumns",type:"string[]",required:!0,isColumn:!0},{name:"aggregateModes",type:"string[]",required:!0,isColumn:!1,options:at},{name:"delimiter",type:"string",required:!0,isColumn:!1}],validate:(e,r)=>{let t=J(r.aggregateColumns),n=Array.isArray(r.aggregateModes)?r.aggregateModes:[],o=Re(r);if(!o.by||!o.delimiter)return"Required settings are empty";if(d(e,o.by)<0)return _(e,o.by);if(!t.length)return"Required settings are empty";if(t.length!==n.length)return"Aggregate columns and modes must match";for(let s of n)if(!ut(s))return"Invalid aggregate mode";for(let s of t){if(s===o.by)return"Group column cannot be aggregated";if(d(e,s)<0)return _(e,s)}return null},apply:(e,r)=>{let t=Re(r),n=d(e,t.by),o=new Map(t.aggregateColumns.map((u,i)=>[u,t.aggregateModes[i]??"first"])),s=new Map;for(let u of e.rows){let i=f(u[n]),l=s.get(i)??[];l.push(u),s.set(i,l)}let a=[...s.entries()].map(([u,i])=>e.headers.map((l,p)=>{if(l===t.by)return u;let c=o.get(l);return c?er(i.map(m=>m[p]??""),c,t.delimiter):i[0]?.[p]??""}));return{headers:[...e.headers],rows:a}},summary:e=>`Group rows by \`${Re(e).by}\``},dt={type:"unpivotColumnGroups",displayNameKey:"txt_preprocess_unpivot_column_groups",addable:!0,settings:[{name:"groupPrefix",type:"string",required:!0,isColumn:!1},{name:"groupFields",type:"string[]",required:!0,isColumn:!1},{name:"groupIndexColumn",type:"string",required:!1,isColumn:!1}],validate:(e,r)=>{let t=we(r);if(!t.groupPrefix||!t.groupFields.length)return"Required settings are empty";let n=E(e.headers,t.groupPrefix);if(!n||n.prefix!==t.groupPrefix)return"Could not find matching column groups";for(let s of t.groupFields)if(!n.fields.includes(s))return`Unknown group field: ${s}`;for(let s of n.keyColumns){let a=_(e,s);if(a)return a}let o=S(e,[t.groupIndexColumn,...t.groupFields]);return o?be(o):null},apply:(e,r)=>{let t=we(r),n=E(e.headers,t.groupPrefix);if(!n||n.prefix!==t.groupPrefix)return{headers:[...e.headers],rows:e.rows.map(a=>[...a])};let o=[...n.keyColumns,t.groupIndexColumn,...t.groupFields],s=[];for(let a of e.rows)for(let u of n.numbers)s.push([...n.keyColumns.map(i=>a[d(e,i)]??""),u,...t.groupFields.map(i=>a[d(e,P(n,u,i))]??"")]);return{headers:o,rows:s}},summary:e=>`Unpivot \`${we(e).groupPrefix}*\` groups \u2192 rows`},ft=(e,r)=>{let t=e.filter(n=>n!==r);return{aggregateColumns:t,aggregateModes:t.map(()=>"first")}},gt=e=>{let r=E([...e]);if(!r)return null;let t=new Set(e.filter(o=>o.trim()!=="")),n="group";if(t.has(n)){let o=1;for(;t.has(`group_${o}`);)o+=1;n=`group_${o}`}return{groupPrefix:r.prefix,groupFields:r.fields,groupIndexColumn:n}};var yt=[Ye,Ze,et,tt,rt,nt,ot,st,it,lt,pt,ct,mt,dt],tr=new Map(yt.map(e=>[e.type,e])),ht=e=>tr.get(e),B=()=>yt.filter(e=>e.addable),w=(e,r)=>{let t=1,n=`${e}_${t}`;for(;r.has(n);)t+=1,n=`${e}_${t}`;return r.add(n),n},rr=(e,r)=>e?w(`${e}_copy`,new Set(r)):"column_copy",nr=(e,r)=>{if(!e)return[];let t=new Set(r);return[w(e,t),w(e,t)]},St=(e,r)=>{let t=r[0]??"",n=r[1]??"";switch(e){case"splitColumn":return{column:t,by:" ",into:nr(t,r),position:"end"};case"filterRows":return{column:t,operator:"gte",value:"0"};case"formatColumn":return{column:t,as:"currency"};case"renameColumn":{let o=new Set(r);return{column:t,to:t?w(`${t}_renamed`,o):"column"}}case"addMetadataColumn":{let o=new Set(r);return{columnName:w("column",o),value:"",position:"end"}}case"removeColumn":return{columns:t?[t]:[]};case"duplicateColumn":return{column:t,to:rr(t,r),position:"afterSource"};case"fillEmptyCells":return{column:t,value:"0"};case"mergeColumns":{let o=new Set(r);return{columns:t&&n?[t,n]:t?[t]:[],by:" ",into:w("merged",o),position:"afterSource",dropSources:"yes"}}case"splitIntoRows":return{column:t,by:","};case"unpivotColumns":{let o=new Set(r);return{columns:r.slice(0,2),nameColumn:w("attribute",o),valueColumn:w("value",o)}}case"pivotColumn":return{namesFrom:t,valuesFrom:n||t};case"groupRows":{let o=t,s=ft(r,o);return{by:o,delimiter:", ",...s}}case"unpivotColumnGroups":return gt(r)??{groupPrefix:"",groupFields:[],groupIndexColumn:"group"};case"combine":return{operation:"join",mappings:[]};default:return{}}};var or=e=>e[0]?y(e[0]):{headers:[],rows:[]},xe=async({sheets:e,steps:r,keepHistory:t=!0,maxRows:n})=>{let o=l=>n!==void 0&&l.rows.length>n?{headers:l.headers,rows:l.rows.slice(0,n)}:l,s=o(or(e)),a=0,u=[],i=[];for(let l=0;l<r.length;l++){s=o(s);let p=r[l];if(u.push([...s.headers]),t&&i.push(Q(s)),p.kind==="generated"){let g=Be(s,p.generated_function);if(g.error)return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:g.error,headersBefore:u,gridsBefore:i};s=g.grid,a+=1;continue}if(p.type==="combine"){if(j(p.settings))return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:"Invalid combine operation",headersBefore:u,gridsBefore:i};if(te(p.settings))return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:"Invalid combine mapping",headersBefore:u,gridsBefore:i};let g=ne(p.settings);if(!g)return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:"Invalid combine operation",headersBefore:u,gridsBefore:i};let C=Pe(e,g);if(C)return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:C,headersBefore:u,gridsBefore:i};s=await Ve(e,g,n),a+=1;continue}let c=ht(p.type);if(!c)return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:`Unknown step type: ${p.type}`,headersBefore:u,gridsBefore:i};let m=c.validate(s,p.settings);if(m)return{grid:s,appliedCount:a,invalidIndex:l,invalidReason:m,headersBefore:u,gridsBefore:i};s=c.apply(Q(s),p.settings),a+=1}return{grid:o(s),appliedCount:a,invalidIndex:null,invalidReason:null,headersBefore:u,gridsBefore:i}},Jr=(e,r)=>M(e,r);var ve=3,sr=(e,r)=>{let t=new Set;for(let n of e){let o=n.trim().toLowerCase();if(o){if(t.has(o))throw new Error(`Sheet "${r}" has duplicate column "${n}"`);t.add(o)}}},Ct=e=>[...new Set(e.map(r=>r.trim()).filter(r=>r!==""))],Rt=e=>Ct(e.flatMap(r=>y(r).headers)),Qr=({prompt:e,sessionId:r,sheets:t,referencedStepTypes:n,referencedColumns:o})=>{let s=t.map(i=>{let l=A(i,ve);return sr(l.headers,i.getName()),l}),a=Ct(s.flatMap(i=>i.headers)),u=[];for(let i of s){for(let l of i.rows)if(u.push(a.map(p=>{let c=i.headers.findIndex(m=>m.trim()===p);return c>=0?String(l[c]??""):""})),u.length>=ve)break;if(u.length>=ve)break}return{prompt:e,session_id:r,columns:a,sample_rows:u,step_types:B().map(i=>({type:i.type,settings:i.settings.map(l=>({name:l.name,type:l.type,required:l.required,is_column:l.isColumn,...l.options?{options:l.options}:{}}))})),...n?.length?{referenced_step_types:n}:{},...o?.length?{referenced_columns:o}:{}}};var ir=0,Ne=()=>`recipe-step-${++ir}`,ar=new Set(B().map(e=>e.type)),ur=e=>({id:Ne(),kind:"generated",name:e.name,summary:typeof e.summary=="string"&&e.summary.trim()!==""?e.summary.trim():void 0,generated_function:e.generated_function,aiSourced:!0}),lr=(e,r)=>{if(!ar.has(e.type))return null;let t=e.type;return{id:Ne(),kind:"typed",type:t,settings:{...St(t,r),...e.settings},aiSourced:!0}},en=(e,r=[])=>e.steps.flatMap(t=>{if(t.kind==="generated")return[ur(t)];let n=lr(t,r);return n?[n]:[]}),wt=e=>e.length<=1?[]:[{id:Ne(),kind:"typed",type:"combine",settings:je(e)}];var T=e=>e.map(r=>{let t=new k({data:r.data,name:r.name,isNotSetColumn:!0});return t.setHeaderRowIndex(r.headerRowIndex),t}),I=50,z=300,bt=e=>({headers:e.headers.slice(0,z),rows:e.rows.slice(0,I).map(r=>r.slice(0,z))}),pr=e=>bt(A(e,I)),xt=e=>{let r=T(e);return{steps:wt(r),targets:r.slice(1).map((t,n)=>({name:De(t.getName(),n+1),headers:y(t).headers})),columnLabels:Rt(r),sourceGrids:r.map(pr)}},cr=e=>{let r=e.headerRowIndex,t=Math.min((e.data[r]??[]).length,z);return{name:e.name,headerRowIndex:0,data:e.data.slice(r,r+1+I).map(n=>(n??[]).slice(0,t))}},cn=e=>xt(e.map(cr)),mn=async(e,r,t,n)=>{let o=T([r])[0];return o?!e||!t||n<0?y(o):Ee(e,o,t,n):e},mr=(e,r)=>xe({sheets:T(e),steps:r,maxRows:I}),dn=async(e,r)=>{let t=await xe({sheets:T(e),steps:r,keepHistory:!1});if(t.invalidIndex!==null)throw new Error(t.invalidReason??"Invalid recipe step");return t.grid},fn=(e,r)=>Ue(T(e),r,I),gn=async e=>{let r=xt(e),t=await mr(e,r.steps);return{...r,resultGrid:bt(t.grid),appliedCount:t.appliedCount,invalidIndex:t.invalidIndex,headersBefore:t.headersBefore}},yn=e=>({steps:[],targets:[],columnLabels:[],sourceGrids:e.map(r=>{let t=(r.data[r.headerRowIndex]??[]).slice(0,z);return{headers:t.map(n=>n==null?"":String(n)),rows:r.data.slice(r.headerRowIndex+1,r.headerRowIndex+1+I).map(n=>t.map((o,s)=>n?.[s]??""))}}),resultGrid:{headers:[],rows:[]},appliedCount:0,invalidIndex:null,headersBefore:[]});export{dr as a,fr as b,vt as c,gr as d,De as e,f,Fe as g,$e as h,y as i,Rr as j,E as k,Or as l,ft as m,ht as n,B as o,rr as p,nr as q,St as r,ne as s,vr as t,Nr as u,Gr as v,Jr as w,Ne as x,en as y,Ct as z,Rt as A,Qr as B,xt as C,cn as D,mn as E,mr as F,dn as G,fn as H,gn as I,yn as J};
|