@rex0220/kintone-sql-tools 3.31.0 → 3.31.1

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.
@@ -6,9 +6,9 @@
6
6
  `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function dh(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new K(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new K(`CSV column name "${n}" is duplicated.`);t.add(n)})}function bo(e,t){let n=ph(ch(e,t.encoding)),r,i;if(t.hasHeader?(r=n[0]??[],i=n.slice(1)):(i=n,r=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),dh(r),i.length===0)throw new K("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new K(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var fh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Eh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Fr=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function Zp(e,t,n){if(!fh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Fr;return Eh.has(t??"")?r.map(i=>({code:i})):r}function ft(e,t,n,r){throw new K(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function ed(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function td(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
7
7
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
8
8
  `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ft("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
9
- `,r:"\r",t:" "};if(R in m){p+=m[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||ft("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(y,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let b=0;b<4;b++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(h)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),u=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"number",lexeme:u,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function Po(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function No(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=td(ed(e)),n=0,r=(d,u=t[n])=>{throw new K(`JSON ${d} (offset=${u.offset}, line=${u.line}, column=${u.column}).`)},i=(d,u)=>d.kind==="punct"&&d.value===u,o=d=>{let u=t[n];(u.kind!=="punct"||u.value!==d)&&r(`expected ${d}; found ${Po(u)}`,u),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let u=new Map;if(i(t[n],"}"))return n++,u;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Po(c)}`,c);let p=c.value;u.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,c),o(":"),u.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return u}if(d.kind==="punct"&&d.value==="["){let u=[];if(i(t[n],"]"))return n++,u;for(;;){u.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return u}return r(`expected a value; found ${Po(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Po(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,u)=>{if(!(d instanceof Map))throw new K(`JSON record ${u+1} must be an object.`)}),l}var Rh=new Set(["CHECK_BOX","MULTI_SELECT"]),nd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function mh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function yh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),mh(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Rh.has(t.fieldType)&&!nd.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),nd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ks(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=No(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||tt(d+1,p,"unknown key (not declared in INTO).");let u={},c=new Set;for(let p of n)l.has(p.code)&&(c.add(p.code),u[p.code]=yh(l.get(p.code),p,d+1));a.push(u),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Bs(e,t,n,r,i,o){let a=bo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,h)=>[y,h]));for(let y of r)if(!l.has(y))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],p=[],f=y=>a.rows.filter(h=>h[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,h]of a.columns.entries()){if(u.has(h)||h===o)continue;let g=d.get(h);if(g)c.push({column:h,reason:E(g),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let y of r){let h=d.get(y);if(!h)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let h=[],g={};for(let S of r){let b=y[l.get(S)];try{g[S]=Zp(b,d.get(S)?.fieldType,{cliKintone:!0})}catch(P){if(!(P instanceof Fr))throw P;g[S]=b,h.push({field:S,code:P.code,message:P.message})}}return R.push(h),g}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,u)=>[d,l[u]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var xr=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function rd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=No(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let u=d+1;for(let E of l.keys())a.has(E)||xr(u,E,"unknown key (not declared in INTO).");let c=new Map,p=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&xr(u,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||xr(u,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),h=m.map((g,S)=>{g instanceof Map||xr(u,R,`childRow=${S+1} must be an object.`);let b=g;for(let P of b.keys())y.has(P)||xr(u,P,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:b}});p.set(R,h)}return{rowNumber:u,top:c,subtables:p,replacementTables:f}})}}function id(e,t,n,r,i,o){let a=bo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),d=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let u=[],c;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:u.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(d.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},u.push(c)}else if(c){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==c.top.get(m.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of d){let y=p[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(S=>[S,p[s.get(S)]]));if(y===""&&[...h.values()].every(S=>S===""))continue;let g=c.subtables.get(m.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:h})}}),u.length===0)throw new K("CSV has no parent rows.");return{records:u}}var hh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),gh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Vs(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function ld(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)od(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)od(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),u=e.records.map(p=>Ah(p,s,l,o,a,r,i,d)),c=u.flatMap(p=>[...p.errors]);return{parents:u,errors:c,invalidParentRows:new Set(u.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function Ah(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&Gs(e.top.get(p.field),r.get(p.field),o,d,p.field,l,$s(e,a,p.field));let u={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||ad(p,o,u,l,$s(e,a,p.code));let c=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},h=i.get(p.subtableCode);for(let g of p.children){let S=h.get(g),b=$s(e,a,g,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?Gs(R.values.get(g),S,o,y,g,l,b):ad(S,o,y,l,b)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function od(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&gh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function ad(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;Gs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function Gs(e,t,n,r,i,o,a,s=!1){let l=Sh(e),d=Pe(l,t,n);d.ok?r[i]={value:Th(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Sh(e){return sd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:sd(t)?t.lexeme:t):e}function sd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Th(e,t){return hh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function $s(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var Ws=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Hs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Ih(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function Ih(e){return e==null?"":typeof e=="object"&&e!==null&&"kind"in e&&"lexeme"in e&&e.kind==="number"?String(e.lexeme):Array.isArray(e)?JSON.stringify(e):String(e)}function Ys(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function ud(e,t){return Ys(e,t,"DROP")}function cd(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function pd(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let u=a?.record[l]?.value,c=Array.isArray(u)?u.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function wh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function dd(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function fd(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),u=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:u};let c=new Map,p=[];for(let f of o.replacementTables){let E=wh(d.record,f),R=new Set(E.map(P=>P.id).filter(P=>!!P)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],h=0,g=0,S=0,b=m.map((P,O)=>{let I=y[O]??{};return P.rowId&&R.has(P.rowId)?(h++,{rowId:P.rowId,record:I}):(P.rowId&&((i.get(P.rowId)??[]).some(w=>w.parentId!==l||w.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:P.rowId,subtable:f,subrow:P.childRowNumber,sourceRow:P.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${P.rowId}`,sourceValues:P.values}),S++),g++,{record:I})});c.set(f,b),p.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:h,addRows:g,deleteRows:E.length-h,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:u.length===0,top:o.top,subtables:c,tables:p,errors:u}})}var js="#__import_source";function Ed(e){return{...e,from:{appId:0,alias:null,cteName:js}}}function bh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function qs(e,t){let n=e.map(bh),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var Ph="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",xn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Re=new WeakMap;function _d(e){return Re.get(e)}var an=new WeakMap,Wo=new WeakMap,Rd=new WeakMap,Nh=1,Ch=1;function Dd(e,t){if(t)return t;let n=Rd.get(e);return n||(n=`client:${Nh++}`,Rd.set(e,n)),n}function gl(e){return`${e}\0inv:${Ch++}`}async function Al(e,t,n={}){let r=Date.now(),i=gl(Dd(t,n.cacheContext));try{let o=pA(e,n.enableImport===!0),a=vd(),s=Ud(t,a),l={aborted:!1},d=Sl(s,l,!Lh(o)||Es(o)),u=await el(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...kd(u,l),metrics:a};if(u.type==="SELECT"){let p=Re.get(u);p&&Re.set(c,p)}return c}finally{kl(i)}}function vd(){return{getCalls:0,postCalls:0,putCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,elapsedMs:0}}function Ud(e,t){return{getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var md=Symbol("searchAbortFailClosed");function Sl(e,t,n){return n&&e[md]?e:{...e,...n?{[md]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new xn;return i}}}function Oh(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function Lh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function kd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Ph),{...e,warnings:[...n]}}async function yd(e,t,n){let r=await ei(e,t,n);return Fs(r),r}async function ei(e,t,n){return Xp(e,{select:r=>Yr(r,t,n),dml:r=>Vd(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return xs(r,i)},joinServerFunctionPlan:async r=>{let i=await jo(r,t,n),o=Yo(r,i);return o===null?null:(Un(o.joinPlan)&&Cl.set(r,o),o.joinPlan)}})}async function el(e,t,n,r){let i=await ei(e,t,r);e.type!=="EXPLAIN"&&Fs(i);let o=nl(e);if(o!==null&&!Vg(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Rn("phase15b",e),Ri("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await Gh(e,t,r),e.type==="IMPORT")return cf(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Rl(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Fl(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return _h(e,t,n,r);case"SELECT":return vt(e,t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Zd(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return vl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Fg(e,t,n,r);case"INSERT_SELECT":return $l(e,t,n,r);case"UPSERT":return nA(e,t,n,r);case"UPSERT_SELECT":return Wl(e,t,n,r);case"UPDATE":return Rl(e,t,n,r);case"DELETE":return tA(e,t,n,r);case"REORDER":return lA(e,t,n,r);case"SHOW_APPS":return Rf(t);case"DESCRIBE":return mf(e,t,r);case"EXPLAIN":return RA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te):Te,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return Bd(e,t,n,r)}}var Tl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Il=["$id","$err_subtable","$err_field","$err_code","$err_count"];function wl(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function Md(e=!1){let t=e?Il:Tl;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function _h(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Fd(e,t,n,r)}async function Fd(e,t,n,r){let i=await te(e.appId,t,r),o=new Map(i.filter(N=>!N.inSubtable).map(N=>[N.code,N])),a=new Set(i.filter(N=>N.inSubtable).map(N=>N.code)),s=ss(e,i),l=new Set(s.flatMap(N=>os(N.field))),d={present:is.filter(N=>l.has(N)),absent:is.filter(N=>!l.has(N))},u=e.checkGroups??[],c=Pn(u);for(let N of c){if(N.field!=="$id"&&!o.has(N.field)&&!a.has(N.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!o.has(N.field)&&a.has(N.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([N,x])=>[N,x.fieldType]));p.set("$id","RECORD_NUMBER"),on(e,p);let f=wl(e.where),E=[...new Set(["$id",...s.map(N=>N.subtableCode??N.field.code),...f,...c.map(N=>N.field)])];for(let N of f){if(N!=="$id"&&!o.has(N)&&!a.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${e.appId}.`);if(N!=="$id"&&!o.has(N)&&a.has(N))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(N=>N.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,m=N=>N.field==="$id"?Q({fieldType:"__ID__"}):o.get(N.field)?.semantics??(o.has(N.field)?Q(o.get(N.field)):void 0),y=Ne(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);let h=new Map([...o].map(([N,x])=>[N,x.fieldType])),g=new Map([...o.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),S=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:gn(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:g,allowKlike:!1}),b=S===null?"":V(S),O=(await Ie(t.getRecords,e.appId,b,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(N=>({id:String(N.$id?.value??""),record:N,flat:dt(N,null)})).filter(N=>e.where===null||ne(e.where,N.flat,x=>p.get(x.field))),I=[],D=new Map,w=new Map,_=new Set,k=0,L=N=>{if(_.add(N.id),k+=1,e.summary){let j=JSON.stringify([N.id,N.subtable??"",N.field,N.code]),U=w.get(j);U?U.$err_count=String(Number(U.$err_count)+1):w.set(j,{$id:N.id,$err_subtable:N.subtable??"",$err_field:N.field,$err_code:N.code,$err_count:"1"});return}let x=JSON.stringify([N.id,N.subtable??"",N.field,N.code,N.message]),Y=D.get(x);Y?(Y.$err_count=String(Number(Y.$err_count)+1),N.subrow!==void 0&&(Y.$err_subrow=`${Y.$err_subrow},${N.subrow}`,Y.$err_subrow_id=`${Y.$err_subrow_id},${N.subrowId??""}`)):D.set(x,{$id:N.id,$err_field:N.field,$err_code:N.code,$err_message:N.message,$err_value:N.value,$err_subtable:N.subtable??"",$err_subrow:N.subrow===void 0?"":String(N.subrow),$err_subrow_id:N.subrowId??"",$err_count:"1"})},v=s.filter(N=>!N.subtableCode),A=new Map;for(let N of s){if(!N.subtableCode)continue;let x=A.get(N.subtableCode)??[];x.push(N),A.set(N.subtableCode,x)}for(let N of O){for(let x of v){let Y=N.record[x.field.code]?.value,j=Pe(Y,x.field,R);j.ok||L({id:N.id,field:x.field.code,code:j.code,message:j.message,value:gr(Y,x.field.fieldType)})}for(let[x,Y]of A){let j=N.record[x]?.value;if(Array.isArray(j))for(let U=0;U<j.length;U++){let M=j[U];for(let $ of Y){let q=M.value?.[$.field.code]?.value,J=Pe(q,$.field,R);if(!J.ok){let be=qi(x,U,M);L({id:N.id,field:$.field.code,code:J.code,message:J.message,value:gr(q,$.field.fieldType),...be})}}}}for(let x of Mi(u,N.flat,Y=>p.get(Y.field)))L({id:N.id,field:"",code:"ERR_CHECK",message:x.message,value:""})}if(e.summary)I.push(...w.values());else for(let N of D.values()){let x=Number(N.$err_count);N.$err_subtable!==""&&x>=2&&(N.$err_message=`${N.$err_message}\uFF08${x}\u884C: ${N.$err_subrow}\uFF09`),I.push(N)}let F={type:"SELECT",columns:[...e.summary?Il:Tl],rows:I,rowCount:I.length,validateStats:{errorRecords:_.size,errorCount:k,constraintMetadata:d}};return Re.set(F,Md(e.summary===!0)),F}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!Dh(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function Dh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Li(i.semantics,r.semantics))return!1}return!0}var Mn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function xd(e,t,n={}){let r=Kd(e,n.enableImport===!0),i=La(r);if(r.forEach(p=>Ri("phase15b",p)),n.allowApplyMutation!==!0&&r.some(p=>fa(p)||p.type==="UPSERT"&&vh(p)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=fs(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let p of i.statements){if(!p.isDml||p.tempTablesReferenced.length===0||p.statementType==="INSERT_SELECT"||p.statementType==="UPSERT_SELECT")continue;let f=r[p.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new ee(`ArgumentError: temp table references in ${p.statementType} are not supported yet.`,p.index)}let s=vd(),l=Ud(t,s),d=Date.now(),u=n.timeoutMs!=null?d+n.timeoutMs:null,c=gl(Dd(t,n.cacheContext));try{let p=new Map,f=new Map,E=[],R=new Set,m=null;for(let y=0;y<r.length;y++){let h=i.statements[y],g={index:y,type:h.statementType};if(m){E.push({...g,status:"skipped",skippedReason:m}),R.add(y);continue}let S=h.dependsOn.find(b=>R.has(b));if(S!==void 0){let b=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${b}`}),R.add(y);continue}if(u!==null&&Date.now()>=u){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(y),m="timeout";continue}try{let b=u!==null?u-Date.now():null,P=a.confirm,O=P?{...a,confirm:(k,L,v)=>P(k,L,{statementIndex:y,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,...v?.importDetail?{importDetail:v.importDetail}:{},...v?.applyDetail?{applyDetail:v.applyDetail}:{},...v?.applyDiagnostic?{applyDiagnostic:v.applyDiagnostic}:{}})}:a,I={aborted:!1},D=Sl(l,I,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||Es(r[y])),w=Oh(D),_=await Mh(Uh(r[y],h,w.client,O,c,p,f),b,w.closeActive);_.result&&(_.result=kd(_.result,I)),E.push({...g,status:"success",..._})}catch(b){E.push({...g,status:"error",error:Fh(b),...b instanceof zr?{result:b.diagnostic}:{}}),R.add(y),b instanceof Mn?m="timeout":b instanceof Kn?m="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(y=>y.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{kl(c)}}function vh(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function Uh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=Uo(e,a);if($e(l),await yd(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await $d(l.expr.query,n,r,i,o),u=l.expr.query.columns[0],c=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"){let f=(await Ko(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let p=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(p)?{type:"number",value:p,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,hd(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=hd(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=Uo(e,a);if(Rn("phase15b",s),Ri("phase15b",s),$e(s),await yd(s,n,i),s.type==="VALIDATE"){let l=await Fd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,Re.get(l)??Md(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await cf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await Fl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,an.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await fl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await kh(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Re.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await el(s,n,r,i)};if(s.type==="ASSERT")return await Bd(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await vl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await $l(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Wl(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Rl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await el(s,n,r,i)}}async function kh(e,t,n,r,i){return e.type==="WITH"?vl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function Mh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Mn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Mn)})()},t)})])}catch(a){throw a instanceof Mn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Fh(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??zs(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:xh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:zs(r),message:r}}else{let n=String(e);t={code:zs(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function zs(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function xh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Kd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function hd(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:W(e)};case"KINTONE_FUNC":return{type:"string",value:gc(e.name)};case"STRING_FUNC":return{type:"string",value:le(e,{})};case"ARITH":{let t=se(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function Uo(e,t){return tl(e,t,!1)}function tl(e,t,n){if(Array.isArray(e))return e.map(r=>tl(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number")throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,tl(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=Kh(i);if(o.type==="SELECT"&&Me(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Me(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Me(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Kh(e){if(e.type==="NOT"&&Me(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Me(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Me(t,!1)||Me(n,!1))return{type:"BOOLEAN",value:!1};if(Me(t,!0))return n;if(Me(n,!0))return t}else if(e.op==="OR"){if(Me(t,!0)||Me(n,!0))return{type:"BOOLEAN",value:!0};if(Me(t,!1))return n;if(Me(n,!1))return t}}return e}function nl(e){if(Array.isArray(e)){for(let t of e){let n=nl(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=nl(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Bd(e,t,n,r,i){let o=await Co(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Co(e.low,t,n,r,i),d=await Co(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Co(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Co(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return W(e);case"STRING":return e.value;case"ARITH":return String(rl(e));case"SCALAR_SUBQUERY":try{return await $d(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function $d(e,t,n,r,i){let{query:o,probed:a}=Bh(e),s=await Wr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Bh(e){return ie(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function rl(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=rl(e.left),n=rl(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Ze(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await te(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=p=>{if(Array.isArray(p)){p.forEach(d);return}if(p===null||typeof p!="object")return;let f=p;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let p of e.columns)p.type==="CASE_COL"&&d(p.expr);let u=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await Ml(p,t,n);R&&u.set(p,R)}));let c=(p,f,E)=>{if(f==="$id")return bn(Q({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(p.appId)?.get(Ae(p,f));if(!R)return;let m=R.semantics??Q(R),y=R.fieldType==="STATUS"&&u.has(p.appId)?{...m,optionOrder:u.get(p.appId)}:m;return bn(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,p.field,!1);let E=o.find(R=>Ce(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:c(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>_o(E,p.field)!==void 0))return f.length>1?B("string"):void 0}}function bl(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Gd(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=_l(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=tn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function Yr(e,t,n,r){if(e.where===null)return Ne(null,()=>{});let i=await $n(e,t,n,r);return Ne(e.where,i)}function Zt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function ko(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Vd(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ne(null,()=>{}):Ne(e.where,o=>{if(o.field==="$id")return Q({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Q(a):void 0)})}async function Fn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Vd(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Z(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await Ho(e,t,r,i),Hh(e))return s=qh(e),o&&Re.set(s,await Ko(e,s.columns,t,r,i,a)),s;let l=await Pl(e,t,r,i);await yf(e,t,n,r,i);let d=await Yr(e,t,r,i);if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let u=_e(e),c,p;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=xs(e,g);S.eligible&&Ms(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=V(e.where)}catch{g=null}p=gi({select:e,selectMode:u,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ce(e.where)})??void 0,p&&(c=p.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?u:"FULL_SCAN",E=await qr(e,t,r,i),R=ko(e)?(e.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:de(e.where)}):null;await Jh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Wd(e,n,R),h=p!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Sl(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await zh(e,h,m.effectiveOptions,r,R,E):s=await lg(e,h,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){Hd(m,g)}return o&&Re.set(s,await Ko(e,s.columns,t,r,i,a)),s}async function Pl(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let u=await te(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)};let c=u.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:u.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Np(e,(d,u)=>o[u]),s=e.groupBy,l=Cp(s,e.columns,a);return $h(e,s,l),l}function $h(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let u=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${u}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var jr=new WeakMap;async function Gh(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await Ho(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Vh(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let c=await te(u,t,n);return[u,new Map(c.map(p=>[p.code,p]))]}))),s=(u,c)=>{if(c==="$id")return"$id";let p=Ae(u,c);return a.get(u.appId)?.has(p)?p:null},l=(u,c)=>{if(u.cteName===null)return!1;let p=r?.get(u.cteName);return p?p.columns.includes(c):!0},d=(u,c,p,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,p.field)!==null).length,R=i.some(y=>l(y,p.field)),m=Ce(u);return{canonicalId:`source:${c}:APP${u.appId}:${f}`,directKey:p.tableAlias&&m?`${p.tableAlias}.${p.field}`:p.field,unqualifiedBridgeKey:E===1&&!R?p.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let f=i.findIndex(m=>Ce(m)===u.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,u.field);if(R===null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${E.appId}.`);return d(E,f,u,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,u.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),p=i.filter(f=>l(f,u.field));if(c.length+p.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(c.length===1&&p.length===0){let f=c[0];return d(f.table,f.tableIndex,u,f.code)}throw p.length===1?new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Ho(e,t,n,r){jr.delete(e);let i=ie(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Vh(e,t,n,r),s=qu(e,a,ju);s&&jr.set(e,s)}function Wh(e){let t=[...e].join(", ");return`${e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function Wd(e,t,n){let r=n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR"?gt({...e,orderBy:[]}):gt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Hd(e,t){throw e.reasons.size>0&&t instanceof Oe?new Oe(Wh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function gd(e,t){try{return await t()}catch(n){Hd(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Hh(e){return e.from.appId===0&&e.from.cteName===qe}function Mo(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Mo(e.left)||Mo(e.right):e.type==="STRING_FUNC"?Nl(e):!1}function Yh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Br(e)}function Br(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Nl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Br(e.left)||Br(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?Mo(n):Br(n))):!1}function Nl(e){return e.args.some(t=>Yh(t))}function jh(e){for(let t of e.columns)switch(t.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${t.name}`);case"LITERAL_COL":break;case"ARITH_COL":if(Mo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Nl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Br(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"WINDOW_COL":if(t.partitionBy.length>0||t.orderBy.length>0)throw new Error("ArgumentError: field reference is not allowed without FROM.");break;default:throw new Error(`ArgumentError: ${t.type} is not supported without FROM.`)}}function qh(e){if(e.joins.length>0||e.where||ie(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");jh(e);let t=Cs([{}],e.columns),{rows:n,columns:r}=yo(t,e.columns),i=mo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function zh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Jd(e):e,s=yi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Ll(e,t,r),u=Dl(e,d),c=e.columns.some(I=>I.type==="CASE_COL")?await $n(e,t,r,void 0,bl(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&y!==null&&y<=p&&!de(e.where)?y:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let I=await bp({client:t,app:s.app,fields:s.fields,query:As(e),offset:e.offset??0,limit:e.limit});g=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(m)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?V(e.where):"";g=await Ie(t.getRecords,s.app,I,l,{parallel:R,maxRecords:p,stopAfter:h,onLimit:E,onTruncate:D=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${D} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${D} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=g.map(I=>dt(I,null));m||(S=Ps(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Ns(e.columns,void 0,u.row,c)),S=mo(S,e.limit,e.offset));let{rows:b,columns:P}=yo(S,e.columns,void 0,u.row,void 0,c),O=await Ul(e,b,P,t,r);return{type:"SELECT",rows:b,columns:O,rowCount:b.length,warnings:[...f]}}async function Jh(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let d of s)l.add(d)};if(t==="SIMPLE"){let a=yi(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(p=>!Ss(p));if(l.length===0)continue;let d=await te(a,n,r);if(d.length===0)continue;let u=new Set(d.map(p=>p.code)),c=l.filter(p=>!u.has(p));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Ad(e){return e.cteName??`APP${e.appId}`}function Xh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function Qh(e,t){return Ss(t)||e.validCodes.has(t)}function Js(e,t){return e.table.cteName!==null?e.validCodes.has(t):Qh(e,t)}function Zh(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function eg(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=new Map,a=new Set;for(let u of i){let c=Ce(u);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let u of i){if(u.cteName===null||u.cteName===qe)continue;let c=n.get(u.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${u.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${u.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${u.cteName}.`);o.set(u,c)}let s=new Map;await Promise.all(i.map(async u=>{let c=o.get(u);if(c){s.set(u,{table:u,label:Ad(u),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(u.cteName===qe)return;let p=await te(u.appId,t,r);s.set(u,{table:u,label:Ad(u),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let u of s.values())for(let c of Xh(u.table))l.set(c,u);for(let u of e.joins)for(let c of[u.on.left,u.on.right]){if(!c.tableAlias)continue;let p=l.get(c.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Js(p,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Uu(e);for(let[u,c]of d.bySource){let p=s.get(u);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...c].filter(E=>!Js(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let u of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Js(f,u))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${u} (${p})`)}}async function Lo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Lo(e.left,t,n,r,i),await Lo(e.right,t,n,r,i);return}await eg(e,t,n,r);for(let o of Zh(e))await Lo(o,t,n,r,i)}}function Yd(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var Cl=new WeakMap;function Yo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=yp(e.where,r),o=hp(i,r),a=new Map,s=new Map;for(let[c,p]of o.fetchQueriesByAlias)s.set(c,p);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,vn(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,u=new Map(a);return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function jo(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,Yd(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,u]=await Promise.all([Se(s,t,n),fg(s,t,n)]),c=tg(l).filter(p=>d.get(p)==="STATUS");if(c.length>0){let p=await zo(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of c)u.set(E,f)}}return[s,d,u]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function tg(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Et(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&Fo(e.left.expr,t),e.right.type==="CASE_VALUE"&&Fo(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Fo(e,t){for(let n of e.branches)Et(n.condition,t)}function ng(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Fo(n.expr,t);return t}function Ce(e){return e.alias??e.cteName}function jd(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Ce(n)===t)}function Ol(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Ll(e,t,n){let r=ng(e);if(r.length===0)return new Map;let i=new Set,o=Ol(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=jd(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Se(s,t,n)]));return new Map(a)}function Ye(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function qd(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||zt(t,n)}function zt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){zt(e.left,t),zt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){zt(e.left,t),zt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&zt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&zt(n,t)}function xo(e,t){if(e.type==="AGG_REF"){qd(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(xo(e.left,t),xo(e.right,t))}function il(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?xo(n,t):$r(n,t)}function $r(e,t){if(e.type==="STRING_FUNC"){il(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){$r(e.left,t),$r(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?il(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&$r(r,t)}}function rg(e){let t=[];for(let n of e)n.type==="AGGREGATE"?qd(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?xo(n.expr,t):n.type==="STRFUNC_COL"?il(n.expr,t):n.type==="SCALAR_VALUE_COL"&&$r(n.expr,t);return t}var ig=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function og(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":ig.has(e.fieldType)?"string":void 0}async function zd(e,t,n,r){let i=rg(e.columns);if(i.length===0)return;let o=new Set,a=Ol(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=jd(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await te(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await Ml(f,t,n);R&&l.set(f,R)}));let u=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??Q(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=u.find(y=>Ce(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(m.appId)?.get(Ae(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(Ae(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let g=r?.get(y.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let h=s.get(y.appId)?.get(Ae(y,f.field));return h?[c(h,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?u.find(m=>Ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function Ae(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function _o(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??Q(e);return{sortKind:og(e),fieldType:e.fieldType,semantics:t===void 0?n:bn(n,t,e.code)}}function Jd(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function z(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function Xd(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Q({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var ag=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function tn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return ag.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Xd():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?tn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function qo(e){if(e.length===0)return it();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Li(n(r.semantics),n(t.semantics)))?e.every(i=>Li(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Xd("KSQL_MIXED_UNSUPPORTED"):it()}function _l(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return z("string");if(e.type==="STRING_FUNC")return tn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),qo(n)}function sg(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Ko(e,t,n,r,i,o=!1){let a=new Map;sg(e)&&await Promise.all(Ol(e).map(async R=>{if(a.has(R.appId))return;let m=await te(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?nt(g,e.from.appId):void 0}let y=s.find(g=>Ce(g)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let h=a.get(y.appId)?.get(Ae(y,R.field));return h?nt(h,y.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(Ae(e.from,R.field));return y?nt(y,e.from.appId):Jt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(y.appId)?.get(Ae(y,R.field)),g=h?nt(h,y.appId):Jt(R.field);return g?[g]:[]});return m.length===1?m[0]:void 0},u=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Ce(y)!==R.tableAlias)return!1;let h=Ae(y,R.field);return a.get(y.appId)?.has(h)===!0||Jt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let y=u(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Ye(R),y=c(d(m),m);y&&p.set(R,y)}return p}if(f)for(let R of t){let m=Ye(R),y=c(d(m),m);y&&p.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let h;if(R.type==="FIELD"){let g=Ye(R.field);h=c(d(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?h=z("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?h=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(h=_l(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")h=z("number");else if(R.type==="GROUPING_COL")h=z("number");else if(R.type==="LITERAL_COL")h=z("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?h=tn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?h=z("number"):g.type==="FIELD"?h=d(g):h=z("string")}else if(R.type==="STRFUNC_COL")h=tn(R.expr);else if(R.type==="WINDOW_COL")h=z("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&g.push(Bn(R.expr.elseResult,d)),h=qo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=it());h&&p.set(y,h)}),p}function Qd(e,t){let n=Re.get(e),r=Re.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let u=qo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:p,...f}=u;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Dl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(u=>Ce(u)===s.tableAlias);return!d||d.cteName!==null?void 0:_o(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:_o(e.from,s.field)??t.get(e.from.appId)?.get(Ae(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let u=_o(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field));return u?[u]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function lg(e,t,n,r,i,o=!0,a,s,l){let d=n.maxRecords??1e4,u=new Set,c=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,r,i),Qr(e.having,t,n,r,i)]);let[p,f,E]=await Promise.all([jo(e,t,r),Ll(e,t,r),zd(e,t,r,i)]),R=Dl(e,f),m=await $n(e,t,r,i,Ze(e.having)||bl(e)),y=Gd(e,m),h=Cl.get(e);if(h&&!Un(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let g=h??Yo(e,p)??Sn(e,p);Ta(g);let S="joinPlan"in g?g:null,b=S&&Un(S.joinPlan)?S:null,P=t,O=g.mainCondition,I=g.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let D=s?s.prefilterWhere:b?null:O,w=b?.queriesByAlias.get(e.from.alias)??"",_=await gf(e.columns,t,n,r,i),k=Rt(e.where),L=k?Promise.resolve([]):Gr(e,e.from,P,d,c,!0,n.onLimitReached??"error",u,D,b?!1:o,l,w),v=[],A=[];for(let q of e.joins){if(k){v.push({join:q,promise:Promise.resolve([])});continue}let J=q.table.alias?b?.queriesByAlias.get(q.table.alias)??"":"",be=b?null:q.table.alias?I.get(q.table.alias)??null:null;be!==null||J!==""?v.push({join:q,promise:Gr(e,q.table,P,d,c,!1,n.onLimitReached??"error",u,be,!0,l,J)}):A.push(q)}let C=a?Promise.resolve(a):qr(e,t,r,i);C.catch(()=>{});let F=await L,N=new Map;N.set(e.from.alias,F);for(let{join:q,promise:J}of v)N.set(q.table.alias,await J);await Promise.all(A.map(async q=>{let be=await of(e,q,N,P,d,c,n.onLimitReached??"error",u,null,l,"")??await Gr(e,q.table,P,d,c,!1,n.onLimitReached??"error",u,null,!0,l,"");N.set(q.table.alias,be)}));let{optionOrders:x,sortKinds:Y,semantics:j}=await C,{rows:U,columns:M}=_s({tables:N,stmt:e,scalarCache:_,optionOrders:x,sortKinds:Y,orderSemantics:j,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??g.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:jr.get(e),plainGroupByPlan:l}),$=await Ul(e,U,M,t,r);return{type:"SELECT",rows:U,columns:$,rowCount:U.length,warnings:[...u]}}async function Zd(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Zd(e.left,t,n,r,i,o):vt(e.left,t,n,r,void 0,i,o),vt(e.right,t,n,r,void 0,i,o)]),l=a.columns,d=s.columns,u=s.rows.map(E=>{let R={};return l.forEach((m,y)=>{R[m]=E[d[y]??m]??""}),R}),c=[...a.rows,...u],p=e.all?c:ef(c,l),f={type:"SELECT",rows:p,columns:l,rowCount:p.length};return i&&Re.set(f,Qd(a,s)),f}function ef(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function vl(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await Rf(t):s.query.type==="DESCRIBE"?l=await mf(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Re.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Lo(e,t,r,i),e.type==="UNION"){let[d,u]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,p=u.columns,f=u.rows.map(y=>{let h={};return c.forEach((g,S)=>{h[g]=y[p[S]??g]??""}),h}),E=[...d.rows,...f],R=e.all?E:ef(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Re.set(m,Qd(d,u)),m}if(!(e.from.cteName!=null&&e.from.cteName!==qe||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await ug(e,t,n,r,i);return o&&Re.set(l,await Ko(e,l.columns,t,i,r)),l}async function ug(e,t,n,r,i){await Ho(e,t,i,r);let o=jr.get(e),a=await Pl(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Ce(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Ce(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let u=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&u(M.cteName);let c=n.maxRecords??1e4,p=new Set,f=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,i,r),Qr(e.having,t,n,i,r),yf(e,t,n,i,r)]);let E=await Yr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await qr(e,t,i,r),m=ko(e)?(e.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:de(e.where)}):null,y=Wd(e,n,m),h=y.effectiveOptions,[g,S,b]=await Promise.all([jo(e,t,i),Ll(e,t,i),zd(e,t,i,r)]),P=Dl(e,S),O=await $n(e,t,i,r,Ze(e.having)||bl(e)),I=Gd(e,O),D=Yo(e,g)??Sn(e,g);Ta(D);let w=t,_=await gf(e.columns,t,h,i,r),k=Promise.resolve(R);k.catch(()=>{});let L=new Map,v=new Map;if(e.from.cteName!=null){let M=u(e.from.cteName);L.set(e.from.alias,M.rows.map(Sd)),v.set(e.from.alias,M.columns)}else{let M=await gd(y,()=>Gr(e,e.from,w,c,f,!0,h.onLimitReached??"error",p,D.mainCondition,E.capability==="EXACT_PUSHDOWN",a));L.set(e.from.alias,M)}let A=e.joins.map(M=>gd(y,async()=>{if(M.table.cteName!=null){let $=u(M.table.cteName);L.set(M.table.alias,$.rows.map(Sd)),v.set(M.table.alias,$.columns)}else{let $=M.table.alias?D.joinConditions.get(M.table.alias)??null:null,J=await of(e,M,L,w,c,f,h.onLimitReached??"error",p,$,a)??await Gr(e,M.table,w,c,f,!1,h.onLimitReached??"error",p,$,!0,a);L.set(M.table.alias,J)}}));await Promise.all(A);let{optionOrders:C,sortKinds:F,semantics:N}=await k,x=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:Y,columns:j}=_s({tables:L,stmt:e,scalarCache:_,optionOrders:C,sortKinds:F,orderSemantics:N,fieldTypeResolver:P.row,fieldSemanticsResolver:O,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:I,aggregateSortKindResolver:b,appliedKlikes:D.appliedKlikes,sourceColumns:x,tableColumns:v,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Ul(e,Y,j,t,i);return{type:"SELECT",rows:Y,columns:U,rowCount:Y.length,warnings:[...p]}}async function Ul(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await te(e.from.appId,r,i);return Lp(o,e.from.subtableCode,()=>zo(e.from.appId,r,i))}function Sd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Gr(e,t,n,r,i,o,a,s,l=null,d=!0,u,c=""){let p=Kt(e,t,u),f=y=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let y=o&&d?Du(e,t.appId).query:"",h=[l!==null?V(l):"",c].filter(P=>P!==""),g=h.length>1?h.map(P=>`(${P})`).join(" and "):h[0]??"",S=y&&g?`(${y}) and (${g})`:y||g;return(await Ge(n.getRecords,t.appId,S,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Ge(n.getRecords,t.appId,"",p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Wp(m,t.subtableCode)}var tf=50;function cg(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function ol(e){return JSON.stringify(e)}function nn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?cg(n):n))}function ti(e,t){let n=e.raw.get(ol(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(nn(t,e.numericKey))}async function ni(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},u=(m,y,h)=>{let g=m.get(y);(g===void 0||h>g)&&m.set(y,h)},c=(m,y)=>{u(d.raw,ol(m),y),l.some(Boolean)&&u(d.normalized,nn(m,l),y)},p=new Set,f=[],E=new Set;for(let m of n){let y=ol(m);E.has(y)||(E.add(y),m.some(h=>h==="")?f.push(m):p.add(m[0]))}let R=["$id",...t];for(let m of Gn([...p],tf)){let y=`${t[0]} in (${m.map(Bo).join(",")})`,h=await Ie(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(b=>nf(g[b]?.value)),S)}}for(let m of f){let y=t.map((g,S)=>`${g} = ${Bo(m[S])}`).join(" and "),h=await Ie(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(m,pg(h))}return d}function pg(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function nf(e){return typeof e=="string"?e:e==null?"":String(e)}function Bo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var rf=50,dg=6,Td=rf*dg;async function of(e,t,n,r,i,o,a,s,l=null,d,u=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!c||!p)return null;let f,E,R;if(c===t.table.alias&&p!==t.table.alias)f=p,E=t.on.right.field,R=t.on.left.field;else if(p===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let y=new Set;for(let I of m){let D=I[E]?.value,w=nf(D).trim();w.length>0&&y.add(w)}let h=[...y];if(h.length===0)return[];if(h.length>Td)return s.add(`JOIN\u30AD\u30FC\u304C ${h.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Td} \u4EF6\uFF09\u3002`),null;let g=Kt(e,t.table,d),S=I=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},b=Gn(h,rf),P=[],O=new Set;for(let I of b){let D=`${R} in (${I.map(Bo).join(",")})`,_=[l!==null?V(l):"",u].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,D),k=await Ge(r.getRecords,t.table.appId,_,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let L of k.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;O.has(v)||(O.add(v),P.push(L))}}return P}var al=new Map,sl=new Map,ll=new Map,ul=new Map,cl=new Map,pl=new Map;function kl(e){al.delete(e),sl.delete(e),ll.delete(e),ul.delete(e),cl.delete(e),pl.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=Vn(ul,n,e);if(r)return r;let i=t.getFields(e);return Wn(ul,n,e,i),i}async function ot(e,t,n){let r=Vn(pl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(pl,n,e,i),i}async function zo(e,t,n){let r=Vn(cl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(cl,n,e,i),i}async function Ml(e,t,n){let r=await zo(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Se(e,t,n){let r=Vn(al,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(al,n,e,o),o}async function dl(e,t,n){let r=Vn(sl,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(sl,n,e,o),o}async function fg(e,t,n){let r=await dl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Id(e,t,n){let r=Vn(ll,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(ll,n,e,o),o}function Eg(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function Rg(e,t,n,r){let i=Eg(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let p=await te(c,t,n);return[c,new Map(p.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Ce(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(Ae(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(Ae(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(Ae(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return p.length>1&&a.add(c.field),p.length===1?p[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let p;if(c.type==="FIELD")p=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")p=z("number");else if(c.type==="GROUPING_COL")p=z("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")p=z("string");else if(c.type==="STRFUNC_COL")p=tn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")p=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),p=qo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(p=_l(c.arg,l)):p=c.func==="GROUP_CONCAT"?z("string"):z("number"));p?.semantics&&d.set(c.alias,p.semantics)}let u=new Map;for(let c of i){let p=d.get(c)??l(Ye(c))?.semantics;if(!p){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&u.set(c,Q({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await zo(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}u.set(c,f)}return u}async function qr(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([mg(e,t,n),yg(e,t,n),Rg(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function mg(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await dl(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await dl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function yg(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Id(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Id(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function af(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var hg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function gg(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||hg.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await te(e,n,r);return gg(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function rn(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",u=Pe(d,l,r);if(!u.ok)throw new Error(`DmlValidationError: ${u.code} ${u.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:c?d:u.value}}})}async function Ag(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Sr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return Jg(e,a,o)}async function Sg(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await sf(e,t,n,r,i);return Qg(e,a,o)}async function sf(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=ff(e),l=new Set;for(let m of s){let y=nn(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let d=await ni(e.appId,e.keyFields,s,t,n,a),u=s.map(m=>ti(d,m)),c=new Map,p=[...new Set(u.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Gn(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of y.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,h)}}let E=u.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await Zc({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Tg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Sr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=ps(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Jo(a),applyDiagnostic:a}))throw new ue("INSERT",o.guards.parentRows);let s=await ip(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function Ig(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await sf(e,t,n,r,1),o=ds(i);if(n.confirm){let s=Jo(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ue("UPDATE",i.guards.parentRows)}let a=await op(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function wg(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function Jo(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=wg(n?Oo(n):[],r?Oo(r):[]),a=bg(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),d=o.reduce((p,f)=>p+f.appendRows,0),u=o.reduce((p,f)=>p+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:u,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=Oo(n),f=Oo(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,R)=>E+R.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function Oo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function bg(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:en(n,"ADD"),removedValues:en(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Fl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Ag(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Sg(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await df(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await xl(e,t,n,r,i,o)).result}var zr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function xl(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(v=>v.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let u=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,c=await je(e.appId,u,t,r);e.type==="UPDATE"&&await Fn(e,t,r);let p=new Map(c.map(v=>[v.code,v])),f=await yt(e.appId,u,c,t,r),E=Je(c,d),R=Hp(E),m=(await Pg(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,A)=>v.rowNumber-A.rowNumber),y=m.filter(v=>v.mode==="update"),h=e.type==="UPDATE"?Og:e.type.startsWith("UPSERT")?v=>Lg(v,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=y.length>0&&g!==void 0,b=new Map;if(S){ns(y,u,c);let v=await g({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let C of y){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let F=v.get(C.targetId);if(!F)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let N=Yp(F,C.record??{});A.set(C.rowNumber,N)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of y){let F=A.get(C.rowNumber);if(!F)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);b.set(C.rowNumber,Yt(F,E,f,o,C.rowNumber,l))}}let P=rs(m,l,d,u,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:O,invalidRows:I,invalidRowNumbers:D}=P;if(S){let v=new Map(P.candidateResults.map(A=>[A.rowNumber,A]));O=[],D=new Set;for(let A of m){let C=v.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let x=[...C.preErrors,...C.builtInErrors,...C.checkErrors];O.push(...x),x.length>0&&D.add(A.rowNumber);continue}let F=b.get(A.rowNumber);if(!F)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let N=jp({rowNumber:A.rowNumber,setFields:u,normalizedPostImage:F.normalizedRecord,preErrors:C.preErrors,postImageErrors:F.errors,checkErrors:C.checkErrors});A.record=N.writeRecord,O.push(...N.errors);for(let x of N.invalidRowNumbers)D.add(x)}I=D.size}let w=[...d,...Cn],_={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-I,invalidRows:I,errorCount:O.length,columns:w,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let v of d){if(v==="$id"){k.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Q({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(v);A&&k.set(v,nt(A,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of Cn)k.set(v,z(L.has(v)?"number":"string"));return an.set(_,k),{result:_,candidates:m,invalidRowNumbers:D,columnMeta:k}}async function fl(e,t,n,r,i,o){let a=await xl(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new zr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new ue(E,d.length)}let u={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let m=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...u}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...u}}let c=d.filter(E=>E.mode==="create"),p=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...u}}async function Pg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Cg(e,n,r,i,o,s);let l,d,u,c,p;if(e.type==="INSERT"||e.type==="UPSERT")wd(e,e.fields),p=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),on(e,p),l=e.values.map(S=>S.map((b,P)=>b.type==="CASE_VALUE"?Lt(b.expr,{},a.get(e.fields[P])?.fieldType):b));else{let S=await Bl.materialize(e,n,r,i,o,[...a.values()]),b=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!b&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(b&&new Set(S.columns).size!==S.columns.length)throw Ee("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");wd(e,S.columns),d=S.rows,u=S.importPresence,c=S.importRowErrors;let P=S.columnMeta;p=new Map(S.columns.map(O=>{let I=P?.get(O),D=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[O,D]})),on(e,p),l=S.rows.map(O=>S.columns.map(I=>O[I]??""))}let f=l.map((S,b)=>({rowNumber:b+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((P,O)=>u&&!u[b]?.has(P)?[]:[[P,S[O]]])),preErrors:[...c?.[b]??[]],record:{},evaluationRow:d?.[b]??Object.fromEntries(e.fields.map((P,O)=>[P,ze(S[O])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,b])=>[S,b.fieldType])),R=f.map(S=>e.keyFields.map(b=>ze(S.payload.get(b)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let b=nn(S,m);y.set(b,(y.get(b)??0)+1)}let h=Wo.has(e);if(h&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await ni(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,b)=>{let P=R[b],O=ti(g,P);S.mode=O===void 0?"create":"update",O!==void 0&&(S.targetId=O),e.keyFields.forEach((I,D)=>{P[D]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(y.get(nn(P,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Kl(e){return e.checkGroups?Pn(e.checkGroups):[]}function wd(e,t){let n=new Set(t);for(let r of Kl(e)){if(r.tableAlias!==null)throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Ng=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function on(e,t){if(e.checkGroups)for(let n of Ac(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Ng.has(i??""))throw Ee(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Cg(e,t,n,r,i,o){if(e.from)return Dg(e,e.from,t,n,r,i,o);await hf(e.assignments,t,n,r);let a=await Se(e.appId,t,r),s=lf(e,a);on(e,El(a,e.appId));let l,d=new Map,u=new Map;if(Ki(e)){let c=Ba(e),p=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(f.records),d=u,l=Ga(e,f.records,a).flatMap(E=>E.records)}else{let c=dr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(f.records),d=u,l=fr(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(p.records),l=fr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let p=await eo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=fr(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((c,p)=>c.id-p.id).map((c,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:u.get(c.id),evaluationRow:_g(d.get(c.id),e.appId),evaluationFieldTypes:El(a,e.appId)}))}function Do(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function Og(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function Lg(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,u=Number(d);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(u))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${u}.`);if(o.has(u))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${u}.`);o.set(u,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function lf(e,t){if(e.from)return[];let n=new Set;for(let r of Kl(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Ee(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw Ee(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function _g(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function El(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Dg(e,t,n,r,i,o,a){let s=await Pf(e,t,n,i,o);on(e,s.evaluationTypes);let l=await uf(e,t,n,r,i,o,a),d=await Se(e.appId,n,i),u=Wa(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?Do(l.map(f=>f.target)):new Map;return u.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:_A(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var vg=tf,Ug=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function uf(e,t,n,r,i,o,a){let s=await kg(e,t,n,i),l=await Pf(e,t,n,i,o),d=[...new Set(e.assignments.filter(b=>b.value.type==="SOURCE_FIELD").map(b=>b.value.type==="SOURCE_FIELD"?b.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...d])],c=await Mg(t,u,d,n,r,i,o),p=new Map,f=new Map;for(let b of c){if(!Object.prototype.hasOwnProperty.call(b,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let P=bd(b[t.joinKeyField],s,"source");if(p.has(P))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${P}.`);p.set(P,b),f.set(P,String(b[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...eA(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":dr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],h=new Set,g=0;for(let b of Gn([...f.values()],vg)){let P=`${t.targetJoinField} in (${b.map(Bo).join(",")})`,O=m?`(${P}) and (${m})`:P,I=await Ge(n.getRecords,e.appId,O,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=I.records.length,g>E)throw new Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let D of I.records){let w=D.$id?.value;if(typeof w!="string"||w==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(w)||(h.add(w),y.push(D))}}let S=[];for(let b of y){let P=b[t.targetJoinField]?.value,O=bd(P,s,"target");if(O===null)continue;let I=p.get(O);I!==void 0&&S.push({target:b,source:I})}return S}async function kg(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function Mg(e,t,n,r,i,o,a){if(e.cteName!==null){let u=a?.get(e.cteName);if(!u)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!u.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return u.rows}let s=await Se(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let u of n){if(u!=="$id"&&!s.has(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);let c=u==="$id"?"RECORD_NUMBER":s.get(u);if(Ug.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${u}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>dt(u,null))}function bd(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function ri(e,t,n,r,i){let o=await xl(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ue(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<c.length;p+=100)await t.putRecords({app:e.appId,records:c.slice(p,p+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),u=0;for(let c=0;c<l.length;c+=100){let p=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});u+=p.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:u,updatedCount:d.length}}async function Fg(e,t,n,r){if(e.applyBlocks?.length)return Tg(e,t,n,r);if(e.checkGroups?.length)return ri(e,t,n,r);if(e.subtableCode)return rA(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Se(e.appId,t,r),s=xi(e,a);rn(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let u=await t.postRecords(d);l.push(u.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function xg(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:qe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function cf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Qp(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,p=await te(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=p.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await wo(o,new Map),m=e.source.kind==="JSON"?rd(e.source,R,c,n.maxRecords??1e4):id(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=ld(m,c,p,E,y);if(e.source.kind==="CSV")return Kg(e,m,h,p,t,n,i);Vs(h,e.rejectLimit);let g=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Hs(h.errors,g),b=[...g,...Ws],P=h.invalidParentRows.size,O={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-P,invalid:P,mutationCandidates:h.parents.filter(U=>U.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:y,validatedRows:h.parents.length,validRows:h.parents.length-P,invalidRows:P,errorCount:S.length,columns:b,errors:S,importDetail:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,b,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return I;if(cd(m),h.errors.length>0&&!e.onErrorSkip){let U=h.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,b,S,n.tempTableMaxRows??Fe,new Map)}let D=h.parents.filter(U=>U.valid),w=new Map(p.map(U=>[U.code,U.fieldType])),_=D.map(()=>{});if(e.keyFields){for(let J of e.keyFields)if(!e.fields.includes(J))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${J}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(J=>w.get(J)==="NUMBER"),M=new Set,$=D.map(J=>e.keyFields.map(be=>String(J.top[be]?.value??"")));for(let J of $){let be=nn(J,U);if(M.has(be))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");M.add(be)}let q=await ni(e.appId,e.keyFields,$,t,n,w);$.forEach((J,be)=>{_[be]=ti(q,J)})}let k=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),L=new Map,v=_.filter(U=>U!==void 0);for(let U of Gn([...new Set(v)],100)){let M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.records){let q=Number($.$id?.value),J=Number($.$revision?.value);Number.isFinite(q)&&L.set(q,{id:q,...Number.isFinite(J)?{revision:J}:{},record:$})}}let A=pd(D,_,L),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(M=>M.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ue(e.keyFields?"UPDATE":"INSERT",A.length)}let F=U=>new Map(Object.entries(U).map(([M,$])=>[M,$.value])),N=U=>ud(F(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.map(q=>({values:F(q)}))]))),x=A.filter(U=>U.mode==="INSERT"),Y=A.filter(U=>U.mode==="UPDATE"),j=[];for(let U=0;U<x.length;U+=100){let M=await t.postRecords({app:e.appId,records:x.slice(U,U+100).map(N)});j.push(M.ids)}for(let U=0;U<Y.length;U+=100)await t.putRecords({app:e.appId,records:Y.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:N(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:j.flat().length,updatedCount:Y.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:j,insertedCount:j.flat().length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Bg(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:xg(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},s=e.keyFields?{type:"UPSERT_SELECT",...a,keyFields:e.keyFields}:{type:"INSERT_SELECT",...a},l={source:e.source,handle:o,cache:new Map};Wo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Fl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,an.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",fl(s,t,n,r,i,1));return d(c)}let u=await(s.type==="UPSERT_SELECT"?Wl(s,t,n,r,i):$l(s,t,n,r,i));return d(u)}async function Kg(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");dd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=qs(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],u=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...u],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of c){let v=Number(L.$id?.value),A=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(A)?{revision:A}:{},record:L});for(let C of u){let F=L[C]?.value;if(Array.isArray(F)){for(let N of F)if(N.id){let x=f.get(N.id)??[];x.push({parentId:v,table:C}),f.set(N.id,x)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let A=[...L.errors];for(let F of l.errors[v])A.push({operation:"UPDATE",parentRow:L.parentRow,field:F.field,code:F.code,message:F.message,sourceValues:t.records[v].top});let C=E[v];return C!==void 0&&!p.has(C)&&A.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:A.length===0,errors:A}}),m=fd(t.records,R,E,p,f),y=m.flatMap(L=>[...L.errors]),h=new Set(m.filter(L=>!L.valid).map(L=>L.parentRow)),g={...n,parents:R,errors:y,invalidParentRows:h};Vs(g,e.rejectLimit);let S=m.filter(L=>L.valid),b=m.flatMap(L=>L.tables),P=(L,v)=>b.filter(A=>A.table===L).reduce((A,C)=>A+Number(C[v]),0),O=Object.fromEntries(d.map(L=>[L,{existingRows:P(L,"existingRows"),inputRows:P(L,"inputRows"),updateRows:P(L,"updateRows"),addRows:P(L,"addRows"),deleteRows:P(L,"deleteRows"),rowIdNotFound:P(L,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:h.size,parents:S.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},D=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],w=Hs(y,D),_=[...D,...Ws];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,_,w,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:w.length,columns:_,errors:w,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:h.size,mutationCandidates:S.length},tables:O,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,_,w,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new ue("UPDATE",S.length)}let k=L=>new Map(Object.entries(L).map(([v,A])=>[v,A.value]));for(let L of S){let v=Ys(k(L.top),new Map([...L.subtables].map(([A,C])=>[A,C.map(F=>({...F.rowId?{rowId:F.rowId}:{},values:k(F.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:L.targetId,...L.revision===void 0?{}:{revision:L.revision},record:v}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function Bg(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await wo(t,new Map),d=Bs(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),u=d.recordNumberSourceValues;if(!u)throw new Error("InternalError: record-number source values were not materialized.");let c=qs(u,e.recordNumberSourceHeader),p=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let D=f.slice(I,I+100),w=await n.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let _ of w.records){let k=_.$id?.value;typeof k=="string"&&k!==""&&p.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),m=d.rows.map((I,D)=>{let w=c.normalized[D],_=[...d.importRowErrors?.[D]??[],...c.errors[D]];return w!==null&&!p.has(w)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...w!==null&&p.has(w)?{targetId:Number(w)}:{},payload:new Map([[e.recordNumberSourceHeader,u[D]],...e.fields.map(k=>[k,I[k]??""])]),preErrors:_,record:{},evaluationRow:I,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],h=rs(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),g=[...y,...Cn],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:g,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,g,h.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let I=h.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(rt(o,e.errorTable,g,h.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new zr(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let b=m.filter(I=>!h.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(b.length,"UPDATE"))throw new ue("UPDATE",b.length);let P=b.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<P.length;I+=100)await n.putRecords({app:e.appId,records:P.slice(I,I+100)});let O={type:"UPDATE",updatedCount:P.length,...e.onErrorSkip?{affectedRows:P.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(O,{insertedCount:0,importAudit:d.importAudit}),O}async function $g(e,t,n,r,i,o){let a=Wo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Re.get(R)}}let s=await wo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),u=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Ks(a.source,s,u,l):Bs(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=Ed(a.source.projection),f=new Map(i??[]);f.set(js,c);let E=await mt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Re.get(E)}}var Bl={materialize:$g};function pf(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function $l(e,t,n,r,i){if(e.checkGroups?.length)return ri(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Bl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(pf(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new ue("INSERT",l.length);let u=await Se(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let h=f[d[y]]??"";R[m]={value:af(h,u.get(m))}}),R});c.forEach(f=>rn([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});p.push(R.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Rl(e,t,n,r,i){if(e.applyBlocks?.length)return df(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(m=>m.field),t,r);await yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Se(e.appId,t,r);return lf(e,R),on(e,El(R,e.appId)),await Fn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ri(e,t,n,r,i);if(e.subtableCode)return await Fn(e,t,r),iA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await Fn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Zg(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await hf(e.assignments,t,n,r);let d=await Se(e.appId,t,r);if(Ki(e)){let E=Ba(e),m=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Ga(e,m,d);if(rn(y.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new ue("UPDATE",m.length);for(let h of y)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let u=dr(e),p=(await eo(t.getRecords,u.app,u.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=fr(e,p,d);if(rn(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ue("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function df(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return Gg(e,t,n,r,i);let o=await te(e.appId,t,r),a=pt(e,o),s=$i(e,o),l=Ja(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let u=Number(d.records[0].$id?.value);if(u!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${u} does not match requested $id ${l}.`);Hi(d.records[0]);let c=Fc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Je(o,e.assignments.map(b=>b.field)),f=Ht(c.postImage,p)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",ht),m=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),y=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let b=Ir({plans:[c],records:yr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),P={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(b.branches[0]),guards:Xr(b.branches[0]),deletedRows:{total:c.tables.reduce((O,I)=>O+I.deletedRows,0),parentRows:c.tables.some(O=>O.deletedRows>0)?1:0},diagnostic:b};return an.set(P,Xo(E.columns,o,e.appId)),P}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=Vi(c,E.normalizedRecord),g=yr(h),S=Ir({plans:[h],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let b=Jo(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:b,applyDiagnostic:S}))throw new ue("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function Gg(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",ht),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),s=await te(e.appId,t,r),l=pt(e,s),d;if($o(e))d=await Yg(e,t,n,s,r);else{let f=$i(e,s),E=dr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let u=await zi({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return Xg(e,u,s);Au("phase15b",e);let c=Ir(u);if(n.confirm){let f=Jo(c);if(!await n.confirm(u.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new ue("UPDATE",u.guards.parentRows)}let p=await rp(u,t,c);return{...p,diagnostic:Ue(c,p)}}function $o(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||de(e.where))}function Vg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&$o(t)&&de(t.where)}var Wg=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
9
+ `,r:"\r",t:" "};if(R in m){p+=m[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||ft("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let h=Number.parseInt(y,16);if(h>=55296&&h<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let b=0;b<4;b++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(h-55296<<10)+S-56320)}else h>=56320&&h<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(h)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),u=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"number",lexeme:u,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function Po(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function No(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=td(ed(e)),n=0,r=(d,u=t[n])=>{throw new K(`JSON ${d} (offset=${u.offset}, line=${u.line}, column=${u.column}).`)},i=(d,u)=>d.kind==="punct"&&d.value===u,o=d=>{let u=t[n];(u.kind!=="punct"||u.value!==d)&&r(`expected ${d}; found ${Po(u)}`,u),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let u=new Map;if(i(t[n],"}"))return n++,u;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Po(c)}`,c);let p=c.value;u.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,c),o(":"),u.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return u}if(d.kind==="punct"&&d.value==="["){let u=[];if(i(t[n],"]"))return n++,u;for(;;){u.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return u}return r(`expected a value; found ${Po(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Po(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,u)=>{if(!(d instanceof Map))throw new K(`JSON record ${u+1} must be an object.`)}),l}var Rh=new Set(["CHECK_BOX","MULTI_SELECT"]),nd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function mh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function yh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),mh(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Rh.has(t.fieldType)&&!nd.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),nd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ks(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=No(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||tt(d+1,p,"unknown key (not declared in INTO).");let u={},c=new Set;for(let p of n)l.has(p.code)&&(c.add(p.code),u[p.code]=yh(l.get(p.code),p,d+1));a.push(u),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Bs(e,t,n,r,i,o){let a=bo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,h)=>[y,h]));for(let y of r)if(!l.has(y))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),u=new Set(r);if(o&&u.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],p=[],f=y=>a.rows.filter(h=>h[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,h]of a.columns.entries()){if(u.has(h)||h===o)continue;let g=d.get(h);if(g)c.push({column:h,reason:E(g),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:h,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${h}".`)}for(let y of r){let h=d.get(y);if(!h)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(h.inSubtable||h.writable===!1||h.fieldType==="FILE"||h.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${h.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let h=[],g={};for(let S of r){let b=y[l.get(S)];try{g[S]=Zp(b,d.get(S)?.fieldType,{cliKintone:!0})}catch(P){if(!(P instanceof Fr))throw P;g[S]=b,h.push({field:S,code:P.code,message:P.message})}}return R.push(h),g}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,u)=>[d,l[u]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var xr=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function rd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=No(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let u=d+1;for(let E of l.keys())a.has(E)||xr(u,E,"unknown key (not declared in INTO).");let c=new Map,p=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&xr(u,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||xr(u,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),h=m.map((g,S)=>{g instanceof Map||xr(u,R,`childRow=${S+1} must be an object.`);let b=g;for(let P of b.keys())y.has(P)||xr(u,P,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:b}});p.set(R,h)}return{rowNumber:u,top:c,subtables:p,replacementTables:f}})}}function id(e,t,n,r,i,o){let a=bo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),d=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let u=[],c;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(u.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:u.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(d.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},u.push(c)}else if(c){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==c.top.get(m.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of d){let y=p[s.get(m.rowIdSourceHeader)],h=new Map(m.children.map(S=>[S,p[s.get(S)]]));if(y===""&&[...h.values()].every(S=>S===""))continue;let g=c.subtables.get(m.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:h})}}),u.length===0)throw new K("CSV has no parent rows.");return{records:u}}var hh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),gh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Vs(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function ld(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)od(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)od(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),u=e.records.map(p=>Ah(p,s,l,o,a,r,i,d)),c=u.flatMap(p=>[...p.errors]);return{parents:u,errors:c,invalidParentRows:new Set(u.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function Ah(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&Gs(e.top.get(p.field),r.get(p.field),o,d,p.field,l,$s(e,a,p.field));let u={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||ad(p,o,u,l,$s(e,a,p.code));let c=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},h=i.get(p.subtableCode);for(let g of p.children){let S=h.get(g),b=$s(e,a,g,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?Gs(R.values.get(g),S,o,y,g,l,b):ad(S,o,y,l,b)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function od(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&gh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function ad(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;Gs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function Gs(e,t,n,r,i,o,a,s=!1){let l=Sh(e),d=Pe(l,t,n);d.ok?r[i]={value:Th(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Sh(e){return sd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:sd(t)?t.lexeme:t):e}function sd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Th(e,t){return hh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function $s(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var Ws=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Hs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Ih(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function Ih(e){return e==null?"":typeof e=="object"&&e!==null&&"kind"in e&&"lexeme"in e&&e.kind==="number"?String(e.lexeme):Array.isArray(e)?JSON.stringify(e):String(e)}function Ys(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function ud(e,t){return Ys(e,t,"DROP")}function cd(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function pd(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let u=a?.record[l]?.value,c=Array.isArray(u)?u.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function wh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function dd(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function fd(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),u=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:u};let c=new Map,p=[];for(let f of o.replacementTables){let E=wh(d.record,f),R=new Set(E.map(P=>P.id).filter(P=>!!P)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],h=0,g=0,S=0,b=m.map((P,O)=>{let I=y[O]??{};return P.rowId&&R.has(P.rowId)?(h++,{rowId:P.rowId,record:I}):(P.rowId&&((i.get(P.rowId)??[]).some(w=>w.parentId!==l||w.table!==f)&&u.push({operation:"UPDATE",parentRow:o.parentRow,field:P.rowId,subtable:f,subrow:P.childRowNumber,sourceRow:P.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${P.rowId}`,sourceValues:P.values}),S++),g++,{record:I})});c.set(f,b),p.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:h,addRows:g,deleteRows:E.length-h,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:u.length===0,top:o.top,subtables:c,tables:p,errors:u}})}var js="#__import_source";function Ed(e){return{...e,from:{appId:0,alias:null,cteName:js}}}function bh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function qs(e,t){let n=e.map(bh),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var Ph="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",xn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Re=new WeakMap;function _d(e){return Re.get(e)}var an=new WeakMap,Wo=new WeakMap,Rd=new WeakMap,Nh=1,Ch=1;function Dd(e,t){if(t)return t;let n=Rd.get(e);return n||(n=`client:${Nh++}`,Rd.set(e,n)),n}function gl(e){return`${e}\0inv:${Ch++}`}async function Al(e,t,n={}){let r=Date.now(),i=gl(Dd(t,n.cacheContext));try{let o=pA(e,n.enableImport===!0),a=vd(),s=Ud(t,a),l={aborted:!1},d=Sl(s,l,!Lh(o)||Es(o)),u=await el(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...kd(u,l),metrics:a};if(u.type==="SELECT"){let p=Re.get(u);p&&Re.set(c,p)}return c}finally{kl(i)}}function vd(){return{getCalls:0,postCalls:0,putCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,elapsedMs:0}}function Ud(e,t){return{getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var md=Symbol("searchAbortFailClosed");function Sl(e,t,n){return n&&e[md]?e:{...e,...n?{[md]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new xn;return i}}}function Oh(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function Lh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function kd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Ph),{...e,warnings:[...n]}}async function yd(e,t,n){let r=await ei(e,t,n);return Fs(r),r}async function ei(e,t,n){return Xp(e,{select:r=>Yr(r,t,n),dml:r=>Vd(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return xs(r,i)},joinServerFunctionPlan:async r=>{let i=await jo(r,t,n),o=Yo(r,i);return o===null?null:(Un(o.joinPlan)&&Cl.set(r,o),o.joinPlan)}})}async function el(e,t,n,r){let i=await ei(e,t,r);e.type!=="EXPLAIN"&&Fs(i);let o=nl(e);if(o!==null&&!Vg(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Rn("phase15b",e),Ri("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await Gh(e,t,r),e.type==="IMPORT")return cf(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Rl(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Fl(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return _h(e,t,n,r);case"SELECT":return vt(e,t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Zd(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return vl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Fg(e,t,n,r);case"INSERT_SELECT":return $l(e,t,n,r);case"UPSERT":return nA(e,t,n,r);case"UPSERT_SELECT":return Wl(e,t,n,r);case"UPDATE":return Rl(e,t,n,r);case"DELETE":return tA(e,t,n,r);case"REORDER":return lA(e,t,n,r);case"SHOW_APPS":return Rf(t);case"DESCRIBE":return mf(e,t,r);case"EXPLAIN":return RA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te):Te,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return Bd(e,t,n,r)}}var Tl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Il=["$id","$err_subtable","$err_field","$err_code","$err_count"];function wl(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function Md(e=!1){let t=e?Il:Tl;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function _h(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Fd(e,t,n,r)}async function Fd(e,t,n,r){let i=await te(e.appId,t,r),o=new Map(i.filter(N=>!N.inSubtable).map(N=>[N.code,N])),a=new Set(i.filter(N=>N.inSubtable).map(N=>N.code)),s=ss(e,i),l=new Set(s.flatMap(N=>os(N.field))),d={present:is.filter(N=>l.has(N)),absent:is.filter(N=>!l.has(N))},u=e.checkGroups??[],c=Pn(u);for(let N of c){if(N.field!=="$id"&&!o.has(N.field)&&!a.has(N.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(N.field!=="$id"&&!o.has(N.field)&&a.has(N.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([N,x])=>[N,x.fieldType]));p.set("$id","RECORD_NUMBER"),on(e,p);let f=wl(e.where),E=[...new Set(["$id",...s.map(N=>N.subtableCode??N.field.code),...f,...c.map(N=>N.field)])];for(let N of f){if(N!=="$id"&&!o.has(N)&&!a.has(N))throw new Error(`ArgumentError: WHERE field ${N} does not exist in APP${e.appId}.`);if(N!=="$id"&&!o.has(N)&&a.has(N))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${N} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(N=>N.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,m=N=>N.field==="$id"?Q({fieldType:"__ID__"}):o.get(N.field)?.semantics??(o.has(N.field)?Q(o.get(N.field)):void 0),y=Ne(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);let h=new Map([...o].map(([N,x])=>[N,x.fieldType])),g=new Map([...o.values()].flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[])),S=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:gn(e.where,{allowUnqualifiedFields:!0,fieldTypes:h,fieldOptions:g,allowKlike:!1}),b=S===null?"":V(S),O=(await Ie(t.getRecords,e.appId,b,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(N=>({id:String(N.$id?.value??""),record:N,flat:dt(N,null)})).filter(N=>e.where===null||ne(e.where,N.flat,x=>p.get(x.field))),I=[],D=new Map,w=new Map,_=new Set,k=0,L=N=>{if(_.add(N.id),k+=1,e.summary){let j=JSON.stringify([N.id,N.subtable??"",N.field,N.code]),U=w.get(j);U?U.$err_count=String(Number(U.$err_count)+1):w.set(j,{$id:N.id,$err_subtable:N.subtable??"",$err_field:N.field,$err_code:N.code,$err_count:"1"});return}let x=JSON.stringify([N.id,N.subtable??"",N.field,N.code,N.message]),Y=D.get(x);Y?(Y.$err_count=String(Number(Y.$err_count)+1),N.subrow!==void 0&&(Y.$err_subrow=`${Y.$err_subrow},${N.subrow}`,Y.$err_subrow_id=`${Y.$err_subrow_id},${N.subrowId??""}`)):D.set(x,{$id:N.id,$err_field:N.field,$err_code:N.code,$err_message:N.message,$err_value:N.value,$err_subtable:N.subtable??"",$err_subrow:N.subrow===void 0?"":String(N.subrow),$err_subrow_id:N.subrowId??"",$err_count:"1"})},v=s.filter(N=>!N.subtableCode),A=new Map;for(let N of s){if(!N.subtableCode)continue;let x=A.get(N.subtableCode)??[];x.push(N),A.set(N.subtableCode,x)}for(let N of O){for(let x of v){let Y=N.record[x.field.code]?.value,j=Pe(Y,x.field,R);j.ok||L({id:N.id,field:x.field.code,code:j.code,message:j.message,value:gr(Y,x.field.fieldType)})}for(let[x,Y]of A){let j=N.record[x]?.value;if(Array.isArray(j))for(let U=0;U<j.length;U++){let M=j[U];for(let $ of Y){let q=M.value?.[$.field.code]?.value,J=Pe(q,$.field,R);if(!J.ok){let be=qi(x,U,M);L({id:N.id,field:$.field.code,code:J.code,message:J.message,value:gr(q,$.field.fieldType),...be})}}}}for(let x of Mi(u,N.flat,Y=>p.get(Y.field)))L({id:N.id,field:"",code:"ERR_CHECK",message:x.message,value:""})}if(e.summary)I.push(...w.values());else for(let N of D.values()){let x=Number(N.$err_count);N.$err_subtable!==""&&x>=2&&(N.$err_message=`${N.$err_message}\uFF08${x}\u884C: ${N.$err_subrow}\uFF09`),I.push(N)}let F={type:"SELECT",columns:[...e.summary?Il:Tl],rows:I,rowCount:I.length,validateStats:{errorRecords:_.size,errorCount:k,constraintMetadata:d}};return Re.set(F,Md(e.summary===!0)),F}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!Dh(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function Dh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Li(i.semantics,r.semantics))return!1}return!0}var Mn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function xd(e,t,n={}){let r=Kd(e,n.enableImport===!0),i=La(r);if(r.forEach(p=>Ri("phase15b",p)),n.allowApplyMutation!==!0&&r.some(p=>fa(p)||p.type==="UPSERT"&&vh(p)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=fs(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let p of i.statements){if(!p.isDml||p.tempTablesReferenced.length===0||p.statementType==="INSERT_SELECT"||p.statementType==="UPSERT_SELECT")continue;let f=r[p.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new ee(`ArgumentError: temp table references in ${p.statementType} are not supported yet.`,p.index)}let s=vd(),l=Ud(t,s),d=Date.now(),u=n.timeoutMs!=null?d+n.timeoutMs:null,c=gl(Dd(t,n.cacheContext));try{let p=new Map,f=new Map,E=[],R=new Set,m=null;for(let y=0;y<r.length;y++){let h=i.statements[y],g={index:y,type:h.statementType};if(m){E.push({...g,status:"skipped",skippedReason:m}),R.add(y);continue}let S=h.dependsOn.find(b=>R.has(b));if(S!==void 0){let b=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${b}`}),R.add(y);continue}if(u!==null&&Date.now()>=u){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(y),m="timeout";continue}try{let b=u!==null?u-Date.now():null,P=a.confirm,O=P?{...a,confirm:(k,L,v)=>P(k,L,{statementIndex:y,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,...v?.importDetail?{importDetail:v.importDetail}:{},...v?.applyDetail?{applyDetail:v.applyDetail}:{},...v?.applyDiagnostic?{applyDiagnostic:v.applyDiagnostic}:{}})}:a,I={aborted:!1},D=Sl(l,I,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||Es(r[y])),w=Oh(D),_=await Mh(Uh(r[y],h,w.client,O,c,p,f),b,w.closeActive);_.result&&(_.result=kd(_.result,I)),E.push({...g,status:"success",..._})}catch(b){E.push({...g,status:"error",error:Fh(b),...b instanceof zr?{result:b.diagnostic}:{}}),R.add(y),b instanceof Mn?m="timeout":b instanceof Kn?m="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(y=>y.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{kl(c)}}function vh(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function Uh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=Uo(e,a);if($e(l),await yd(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await $d(l.expr.query,n,r,i,o),u=l.expr.query.columns[0],c=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"){let f=(await Ko(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let p=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(p)?{type:"number",value:p,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,hd(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=hd(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=Uo(e,a);if(Rn("phase15b",s),Ri("phase15b",s),$e(s),await yd(s,n,i),s.type==="VALIDATE"){let l=await Fd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,Re.get(l)??Md(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await cf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await Fl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,an.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await fl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await kh(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Re.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await el(s,n,r,i)};if(s.type==="ASSERT")return await Bd(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await vl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await $l(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Wl(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Rl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await el(s,n,r,i)}}async function kh(e,t,n,r,i){return e.type==="WITH"?vl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function Mh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Mn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Mn)})()},t)})])}catch(a){throw a instanceof Mn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Fh(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??zs(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:xh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:zs(r),message:r}}else{let n=String(e);t={code:zs(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function zs(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function xh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Kd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function hd(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:W(e)};case"KINTONE_FUNC":return{type:"string",value:gc(e.name)};case"STRING_FUNC":return{type:"string",value:le(e,{})};case"ARITH":{let t=se(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function Uo(e,t){return tl(e,t,!1)}function tl(e,t,n){if(Array.isArray(e))return e.map(r=>tl(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number"&&a.placeholder!==!0)throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,tl(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`ParseError: variable @${a.name} is not defined in this batch.`);if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=Kh(i);if(o.type==="SELECT"&&Me(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Me(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Me(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function Kh(e){if(e.type==="NOT"&&Me(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Me(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Me(t,!1)||Me(n,!1))return{type:"BOOLEAN",value:!1};if(Me(t,!0))return n;if(Me(n,!0))return t}else if(e.op==="OR"){if(Me(t,!0)||Me(n,!0))return{type:"BOOLEAN",value:!0};if(Me(t,!1))return n;if(Me(n,!1))return t}}return e}function nl(e){if(Array.isArray(e)){for(let t of e){let n=nl(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=nl(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Bd(e,t,n,r,i){let o=await Co(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Co(e.low,t,n,r,i),d=await Co(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Co(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Co(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return W(e);case"STRING":return e.value;case"ARITH":return String(rl(e));case"SCALAR_SUBQUERY":try{return await $d(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function $d(e,t,n,r,i){let{query:o,probed:a}=Bh(e),s=await Wr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function Bh(e){return ie(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function rl(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=rl(e.left),n=rl(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Ze(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await te(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=p=>{if(Array.isArray(p)){p.forEach(d);return}if(p===null||typeof p!="object")return;let f=p;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let p of e.columns)p.type==="CASE_COL"&&d(p.expr);let u=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await Ml(p,t,n);R&&u.set(p,R)}));let c=(p,f,E)=>{if(f==="$id")return bn(Q({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(p.appId)?.get(Ae(p,f));if(!R)return;let m=R.semantics??Q(R),y=R.fieldType==="STATUS"&&u.has(p.appId)?{...m,optionOrder:u.get(p.appId)}:m;return bn(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,p.field,!1);let E=o.find(R=>Ce(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):c(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:c(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>_o(E,p.field)!==void 0))return f.length>1?B("string"):void 0}}function bl(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Gd(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=_l(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=tn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function Yr(e,t,n,r){if(e.where===null)return Ne(null,()=>{});let i=await $n(e,t,n,r);return Ne(e.where,i)}function Zt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function ko(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Vd(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ne(null,()=>{}):Ne(e.where,o=>{if(o.field==="$id")return Q({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Q(a):void 0)})}async function Fn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Vd(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Z(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await Ho(e,t,r,i),Hh(e))return s=qh(e),o&&Re.set(s,await Ko(e,s.columns,t,r,i,a)),s;let l=await Pl(e,t,r,i);await yf(e,t,n,r,i);let d=await Yr(e,t,r,i);if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let u=_e(e),c,p;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=xs(e,g);S.eligible&&Ms(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=V(e.where)}catch{g=null}p=gi({select:e,selectMode:u,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ce(e.where)})??void 0,p&&(c=p.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?u:"FULL_SCAN",E=await qr(e,t,r,i),R=ko(e)?(e.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:de(e.where)}):null;await Jh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Wd(e,n,R),h=p!==void 0&&(u==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Sl(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await zh(e,h,m.effectiveOptions,r,R,E):s=await lg(e,h,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){Hd(m,g)}return o&&Re.set(s,await Ko(e,s.columns,t,r,i,a)),s}async function Pl(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let u=await te(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)};let c=u.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:u.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:u.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Np(e,(d,u)=>o[u]),s=e.groupBy,l=Cp(s,e.columns,a);return $h(e,s,l),l}function $h(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let u=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${u}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var jr=new WeakMap;async function Gh(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await Ho(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Vh(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let c=await te(u,t,n);return[u,new Map(c.map(p=>[p.code,p]))]}))),s=(u,c)=>{if(c==="$id")return"$id";let p=Ae(u,c);return a.get(u.appId)?.has(p)?p:null},l=(u,c)=>{if(u.cteName===null)return!1;let p=r?.get(u.cteName);return p?p.columns.includes(c):!0},d=(u,c,p,f)=>{let E=i.filter(y=>y.cteName===null&&s(y,p.field)!==null).length,R=i.some(y=>l(y,p.field)),m=Ce(u);return{canonicalId:`source:${c}:APP${u.appId}:${f}`,directKey:p.tableAlias&&m?`${p.tableAlias}.${p.field}`:p.field,unqualifiedBridgeKey:E===1&&!R?p.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let f=i.findIndex(m=>Ce(m)===u.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,u.field);if(R===null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${E.appId}.`);return d(E,f,u,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,u.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),p=i.filter(f=>l(f,u.field));if(c.length+p.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(c.length===1&&p.length===0){let f=c[0];return d(f.table,f.tableIndex,u,f.code)}throw p.length===1?new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Ho(e,t,n,r){jr.delete(e);let i=ie(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Vh(e,t,n,r),s=qu(e,a,ju);s&&jr.set(e,s)}function Wh(e){let t=[...e].join(", ");return`${e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function Wd(e,t,n){let r=n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR"?gt({...e,orderBy:[]}):gt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Hd(e,t){throw e.reasons.size>0&&t instanceof Oe?new Oe(Wh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message):t}async function gd(e,t){try{return await t()}catch(n){Hd(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function Hh(e){return e.from.appId===0&&e.from.cteName===qe}function Mo(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Mo(e.left)||Mo(e.right):e.type==="STRING_FUNC"?Nl(e):!1}function Yh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Br(e)}function Br(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Nl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Br(e.left)||Br(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?Mo(n):Br(n))):!1}function Nl(e){return e.args.some(t=>Yh(t))}function jh(e){for(let t of e.columns)switch(t.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${t.name}`);case"LITERAL_COL":break;case"ARITH_COL":if(Mo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Nl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Br(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"WINDOW_COL":if(t.partitionBy.length>0||t.orderBy.length>0)throw new Error("ArgumentError: field reference is not allowed without FROM.");break;default:throw new Error(`ArgumentError: ${t.type} is not supported without FROM.`)}}function qh(e){if(e.joins.length>0||e.where||ie(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");jh(e);let t=Cs([{}],e.columns),{rows:n,columns:r}=yo(t,e.columns),i=mo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function zh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Jd(e):e,s=yi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Ll(e,t,r),u=Dl(e,d),c=e.columns.some(I=>I.type==="CASE_COL")?await $n(e,t,r,void 0,bl(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,h=e.orderBy.length===0&&y!==null&&y<=p&&!de(e.where)?y:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let I=await bp({client:t,app:s.app,fields:s.fields,query:As(e),offset:e.offset??0,limit:e.limit});g=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(m)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?V(e.where):"";g=await Ie(t.getRecords,s.app,I,l,{parallel:R,maxRecords:p,stopAfter:h,onLimit:E,onTruncate:D=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${D} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${D} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)}})}let S=g.map(I=>dt(I,null));m||(S=Ps(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Ns(e.columns,void 0,u.row,c)),S=mo(S,e.limit,e.offset));let{rows:b,columns:P}=yo(S,e.columns,void 0,u.row,void 0,c),O=await Ul(e,b,P,t,r);return{type:"SELECT",rows:b,columns:O,rowCount:b.length,warnings:[...f]}}async function Jh(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let d of s)l.add(d)};if(t==="SIMPLE"){let a=yi(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(p=>!Ss(p));if(l.length===0)continue;let d=await te(a,n,r);if(d.length===0)continue;let u=new Set(d.map(p=>p.code)),c=l.filter(p=>!u.has(p));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Ad(e){return e.cteName??`APP${e.appId}`}function Xh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function Qh(e,t){return Ss(t)||e.validCodes.has(t)}function Js(e,t){return e.table.cteName!==null?e.validCodes.has(t):Qh(e,t)}function Zh(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function eg(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=new Map,a=new Set;for(let u of i){let c=Ce(u);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let u of i){if(u.cteName===null||u.cteName===qe)continue;let c=n.get(u.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${u.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${u.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${u.cteName}.`);o.set(u,c)}let s=new Map;await Promise.all(i.map(async u=>{let c=o.get(u);if(c){s.set(u,{table:u,label:Ad(u),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(u.cteName===qe)return;let p=await te(u.appId,t,r);s.set(u,{table:u,label:Ad(u),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let u of s.values())for(let c of Xh(u.table))l.set(c,u);for(let u of e.joins)for(let c of[u.on.left,u.on.right]){if(!c.tableAlias)continue;let p=l.get(c.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Js(p,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Uu(e);for(let[u,c]of d.bySource){let p=s.get(u);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...c].filter(E=>!Js(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let u of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>Js(f,u))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${u} (${p})`)}}async function Lo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Lo(e.left,t,n,r,i),await Lo(e.right,t,n,r,i);return}await eg(e,t,n,r);for(let o of Zh(e))await Lo(o,t,n,r,i)}}function Yd(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var Cl=new WeakMap;function Yo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=yp(e.where,r),o=hp(i,r),a=new Map,s=new Map;for(let[c,p]of o.fetchQueriesByAlias)s.set(c,p);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,vn(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,u=new Map(a);return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function jo(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,Yd(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,u]=await Promise.all([Se(s,t,n),fg(s,t,n)]),c=tg(l).filter(p=>d.get(p)==="STATUS");if(c.length>0){let p=await zo(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of c)u.set(E,f)}}return[s,d,u]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function tg(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Et(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&Fo(e.left.expr,t),e.right.type==="CASE_VALUE"&&Fo(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Fo(e,t){for(let n of e.branches)Et(n.condition,t)}function ng(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Fo(n.expr,t);return t}function Ce(e){return e.alias??e.cteName}function jd(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Ce(n)===t)}function Ol(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Ll(e,t,n){let r=ng(e);if(r.length===0)return new Map;let i=new Set,o=Ol(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=jd(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Se(s,t,n)]));return new Map(a)}function Ye(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function qd(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||zt(t,n)}function zt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){zt(e.left,t),zt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){zt(e.left,t),zt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&zt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&zt(n,t)}function xo(e,t){if(e.type==="AGG_REF"){qd(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(xo(e.left,t),xo(e.right,t))}function il(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?xo(n,t):$r(n,t)}function $r(e,t){if(e.type==="STRING_FUNC"){il(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){$r(e.left,t),$r(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?il(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&$r(r,t)}}function rg(e){let t=[];for(let n of e)n.type==="AGGREGATE"?qd(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?xo(n.expr,t):n.type==="STRFUNC_COL"?il(n.expr,t):n.type==="SCALAR_VALUE_COL"&&$r(n.expr,t);return t}var ig=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function og(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":ig.has(e.fieldType)?"string":void 0}async function zd(e,t,n,r){let i=rg(e.columns);if(i.length===0)return;let o=new Set,a=Ol(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=jd(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await te(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await Ml(f,t,n);R&&l.set(f,R)}));let u=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??Q(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=u.find(y=>Ce(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(m.appId)?.get(Ae(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(Ae(e.from,f.field))}else{let m=u.flatMap(y=>{if(y.cteName!==null){let g=r?.get(y.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let h=s.get(y.appId)?.get(Ae(y,f.field));return h?[c(h,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?u.find(m=>Ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function Ae(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function _o(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??Q(e);return{sortKind:og(e),fieldType:e.fieldType,semantics:t===void 0?n:bn(n,t,e.code)}}function Jd(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function z(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function Xd(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Q({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var ag=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function tn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return ag.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Xd():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?tn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function qo(e){if(e.length===0)return it();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Li(n(r.semantics),n(t.semantics)))?e.every(i=>Li(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Xd("KSQL_MIXED_UNSUPPORTED"):it()}function _l(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return z("string");if(e.type==="STRING_FUNC")return tn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),qo(n)}function sg(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Ko(e,t,n,r,i,o=!1){let a=new Map;sg(e)&&await Promise.all(Ol(e).map(async R=>{if(a.has(R.appId))return;let m=await te(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?nt(g,e.from.appId):void 0}let y=s.find(g=>Ce(g)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let h=a.get(y.appId)?.get(Ae(y,R.field));return h?nt(h,y.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let y=a.get(e.from.appId)?.get(Ae(e.from,R.field));return y?nt(y,e.from.appId):Jt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let h=a.get(y.appId)?.get(Ae(y,R.field)),g=h?nt(h,y.appId):Jt(R.field);return g?[g]:[]});return m.length===1?m[0]:void 0},u=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Ce(y)!==R.tableAlias)return!1;let h=Ae(y,R.field);return a.get(y.appId)?.has(h)===!0||Jt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let y=u(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Ye(R),y=c(d(m),m);y&&p.set(R,y)}return p}if(f)for(let R of t){let m=Ye(R),y=c(d(m),m);y&&p.set(R,y)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let h;if(R.type==="FIELD"){let g=Ye(R.field);h=c(d(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?h=z("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?h=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(h=_l(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")h=z("number");else if(R.type==="GROUPING_COL")h=z("number");else if(R.type==="LITERAL_COL")h=z("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?h=tn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?h=z("number"):g.type==="FIELD"?h=d(g):h=z("string")}else if(R.type==="STRFUNC_COL")h=tn(R.expr);else if(R.type==="WINDOW_COL")h=z("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&g.push(Bn(R.expr.elseResult,d)),h=qo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(h=it());h&&p.set(y,h)}),p}function Qd(e,t){let n=Re.get(e),r=Re.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let u=qo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:p,...f}=u;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Dl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(u=>Ce(u)===s.tableAlias);return!d||d.cteName!==null?void 0:_o(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:_o(e.from,s.field)??t.get(e.from.appId)?.get(Ae(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let u=_o(d,s.field)??t.get(d.appId)?.get(Ae(d,s.field));return u?[u]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}async function lg(e,t,n,r,i,o=!0,a,s,l){let d=n.maxRecords??1e4,u=new Set,c=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,r,i),Qr(e.having,t,n,r,i)]);let[p,f,E]=await Promise.all([jo(e,t,r),Ll(e,t,r),zd(e,t,r,i)]),R=Dl(e,f),m=await $n(e,t,r,i,Ze(e.having)||bl(e)),y=Gd(e,m),h=Cl.get(e);if(h&&!Un(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let g=h??Yo(e,p)??Sn(e,p);Ta(g);let S="joinPlan"in g?g:null,b=S&&Un(S.joinPlan)?S:null,P=t,O=g.mainCondition,I=g.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let D=s?s.prefilterWhere:b?null:O,w=b?.queriesByAlias.get(e.from.alias)??"",_=await gf(e.columns,t,n,r,i),k=Rt(e.where),L=k?Promise.resolve([]):Gr(e,e.from,P,d,c,!0,n.onLimitReached??"error",u,D,b?!1:o,l,w),v=[],A=[];for(let q of e.joins){if(k){v.push({join:q,promise:Promise.resolve([])});continue}let J=q.table.alias?b?.queriesByAlias.get(q.table.alias)??"":"",be=b?null:q.table.alias?I.get(q.table.alias)??null:null;be!==null||J!==""?v.push({join:q,promise:Gr(e,q.table,P,d,c,!1,n.onLimitReached??"error",u,be,!0,l,J)}):A.push(q)}let C=a?Promise.resolve(a):qr(e,t,r,i);C.catch(()=>{});let F=await L,N=new Map;N.set(e.from.alias,F);for(let{join:q,promise:J}of v)N.set(q.table.alias,await J);await Promise.all(A.map(async q=>{let be=await of(e,q,N,P,d,c,n.onLimitReached??"error",u,null,l,"")??await Gr(e,q.table,P,d,c,!1,n.onLimitReached??"error",u,null,!0,l,"");N.set(q.table.alias,be)}));let{optionOrders:x,sortKinds:Y,semantics:j}=await C,{rows:U,columns:M}=_s({tables:N,stmt:e,scalarCache:_,optionOrders:x,sortKinds:Y,orderSemantics:j,fieldTypeResolver:R.row,fieldSemanticsResolver:m,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??g.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:jr.get(e),plainGroupByPlan:l}),$=await Ul(e,U,M,t,r);return{type:"SELECT",rows:U,columns:$,rowCount:U.length,warnings:[...u]}}async function Zd(e,t,n,r,i=!1,o=!1){let[a,s]=await Promise.all([e.left.type==="UNION"?Zd(e.left,t,n,r,i,o):vt(e.left,t,n,r,void 0,i,o),vt(e.right,t,n,r,void 0,i,o)]),l=a.columns,d=s.columns,u=s.rows.map(E=>{let R={};return l.forEach((m,y)=>{R[m]=E[d[y]??m]??""}),R}),c=[...a.rows,...u],p=e.all?c:ef(c,l),f={type:"SELECT",rows:p,columns:l,rowCount:p.length};return i&&Re.set(f,Qd(a,s)),f}function ef(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function vl(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await Rf(t):s.query.type==="DESCRIBE"?l=await mf(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Re.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Lo(e,t,r,i),e.type==="UNION"){let[d,u]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,p=u.columns,f=u.rows.map(y=>{let h={};return c.forEach((g,S)=>{h[g]=y[p[S]??g]??""}),h}),E=[...d.rows,...f],R=e.all?E:ef(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Re.set(m,Qd(d,u)),m}if(!(e.from.cteName!=null&&e.from.cteName!==qe||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await ug(e,t,n,r,i);return o&&Re.set(l,await Ko(e,l.columns,t,i,r)),l}async function ug(e,t,n,r,i){await Ho(e,t,i,r);let o=jr.get(e),a=await Pl(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Ce(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Ce(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let u=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&u(M.cteName);let c=n.maxRecords??1e4,p=new Set,f=n.fetchParallel??1;await Promise.all([Qr(e.where,t,n,i,r),Qr(e.having,t,n,i,r),yf(e,t,n,i,r)]);let E=await Yr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await qr(e,t,i,r),m=ko(e)?(e.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:de(e.where)}):null,y=Wd(e,n,m),h=y.effectiveOptions,[g,S,b]=await Promise.all([jo(e,t,i),Ll(e,t,i),zd(e,t,i,r)]),P=Dl(e,S),O=await $n(e,t,i,r,Ze(e.having)||bl(e)),I=Gd(e,O),D=Yo(e,g)??Sn(e,g);Ta(D);let w=t,_=await gf(e.columns,t,h,i,r),k=Promise.resolve(R);k.catch(()=>{});let L=new Map,v=new Map;if(e.from.cteName!=null){let M=u(e.from.cteName);L.set(e.from.alias,M.rows.map(Sd)),v.set(e.from.alias,M.columns)}else{let M=await gd(y,()=>Gr(e,e.from,w,c,f,!0,h.onLimitReached??"error",p,D.mainCondition,E.capability==="EXACT_PUSHDOWN",a));L.set(e.from.alias,M)}let A=e.joins.map(M=>gd(y,async()=>{if(M.table.cteName!=null){let $=u(M.table.cteName);L.set(M.table.alias,$.rows.map(Sd)),v.set(M.table.alias,$.columns)}else{let $=M.table.alias?D.joinConditions.get(M.table.alias)??null:null,J=await of(e,M,L,w,c,f,h.onLimitReached??"error",p,$,a)??await Gr(e,M.table,w,c,f,!1,h.onLimitReached??"error",p,$,!0,a);L.set(M.table.alias,J)}}));await Promise.all(A);let{optionOrders:C,sortKinds:F,semantics:N}=await k,x=e.joins.length===0&&e.from.cteName!=null?u(e.from.cteName).columns:void 0,{rows:Y,columns:j}=_s({tables:L,stmt:e,scalarCache:_,optionOrders:C,sortKinds:F,orderSemantics:N,fieldTypeResolver:P.row,fieldSemanticsResolver:O,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:I,aggregateSortKindResolver:b,appliedKlikes:D.appliedKlikes,sourceColumns:x,tableColumns:v,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Ul(e,Y,j,t,i);return{type:"SELECT",rows:Y,columns:U,rowCount:Y.length,warnings:[...p]}}async function Ul(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await te(e.from.appId,r,i);return Lp(o,e.from.subtableCode,()=>zo(e.from.appId,r,i))}function Sd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Gr(e,t,n,r,i,o,a,s,l=null,d=!0,u,c=""){let p=Kt(e,t,u),f=y=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)};if(!t.subtableCode){let y=o&&d?Du(e,t.appId).query:"",h=[l!==null?V(l):"",c].filter(P=>P!==""),g=h.length>1?h.map(P=>`(${P})`).join(" and "):h[0]??"",S=y&&g?`(${y}) and (${g})`:y||g;return(await Ge(n.getRecords,t.appId,S,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Ge(n.getRecords,t.appId,"",p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Wp(m,t.subtableCode)}var tf=50;function cg(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function ol(e){return JSON.stringify(e)}function nn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?cg(n):n))}function ti(e,t){let n=e.raw.get(ol(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(nn(t,e.numericKey))}async function ni(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},u=(m,y,h)=>{let g=m.get(y);(g===void 0||h>g)&&m.set(y,h)},c=(m,y)=>{u(d.raw,ol(m),y),l.some(Boolean)&&u(d.normalized,nn(m,l),y)},p=new Set,f=[],E=new Set;for(let m of n){let y=ol(m);E.has(y)||(E.add(y),m.some(h=>h==="")?f.push(m):p.add(m[0]))}let R=["$id",...t];for(let m of Gn([...p],tf)){let y=`${t[0]} in (${m.map(Bo).join(",")})`,h=await Ie(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let g of h){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(b=>nf(g[b]?.value)),S)}}for(let m of f){let y=t.map((g,S)=>`${g} = ${Bo(m[S])}`).join(" and "),h=await Ie(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});h.length!==0&&c(m,pg(h))}return d}function pg(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function nf(e){return typeof e=="string"?e:e==null?"":String(e)}function Bo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var rf=50,dg=6,Td=rf*dg;async function of(e,t,n,r,i,o,a,s,l=null,d,u=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!c||!p)return null;let f,E,R;if(c===t.table.alias&&p!==t.table.alias)f=p,E=t.on.right.field,R=t.on.left.field;else if(p===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let y=new Set;for(let I of m){let D=I[E]?.value,w=nf(D).trim();w.length>0&&y.add(w)}let h=[...y];if(h.length===0)return[];if(h.length>Td)return s.add(`JOIN\u30AD\u30FC\u304C ${h.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Td} \u4EF6\uFF09\u3002`),null;let g=Kt(e,t.table,d),S=I=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`)},b=Gn(h,rf),P=[],O=new Set;for(let I of b){let D=`${R} in (${I.map(Bo).join(",")})`,_=[l!==null?V(l):"",u].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,D),k=await Ge(r.getRecords,t.table.appId,_,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let L of k.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;O.has(v)||(O.add(v),P.push(L))}}return P}var al=new Map,sl=new Map,ll=new Map,ul=new Map,cl=new Map,pl=new Map;function kl(e){al.delete(e),sl.delete(e),ll.delete(e),ul.delete(e),cl.delete(e),pl.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=Vn(ul,n,e);if(r)return r;let i=t.getFields(e);return Wn(ul,n,e,i),i}async function ot(e,t,n){let r=Vn(pl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(pl,n,e,i),i}async function zo(e,t,n){let r=Vn(cl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(cl,n,e,i),i}async function Ml(e,t,n){let r=await zo(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Se(e,t,n){let r=Vn(al,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(al,n,e,o),o}async function dl(e,t,n){let r=Vn(sl,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(sl,n,e,o),o}async function fg(e,t,n){let r=await dl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Id(e,t,n){let r=Vn(ll,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(ll,n,e,o),o}function Eg(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function Rg(e,t,n,r){let i=Eg(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let p=await te(c,t,n);return[c,new Map(p.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Ce(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(Ae(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(Ae(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(Ae(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return p.length>1&&a.add(c.field),p.length===1?p[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let p;if(c.type==="FIELD")p=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")p=z("number");else if(c.type==="GROUPING_COL")p=z("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")p=z("string");else if(c.type==="STRFUNC_COL")p=tn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")p=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),p=qo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(p=_l(c.arg,l)):p=c.func==="GROUP_CONCAT"?z("string"):z("number"));p?.semantics&&d.set(c.alias,p.semantics)}let u=new Map;for(let c of i){let p=d.get(c)??l(Ye(c))?.semantics;if(!p){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&u.set(c,Q({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await zo(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}u.set(c,f)}return u}async function qr(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([mg(e,t,n),yg(e,t,n),Rg(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function mg(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await dl(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await dl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function yg(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Id(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Id(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function af(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var hg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function gg(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||hg.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await te(e,n,r);return gg(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function rn(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",u=Pe(d,l,r);if(!u.ok)throw new Error(`DmlValidationError: ${u.code} ${u.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:c?d:u.value}}})}async function Ag(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Sr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return Jg(e,a,o)}async function Sg(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await sf(e,t,n,r,i);return Qg(e,a,o)}async function sf(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=ff(e),l=new Set;for(let m of s){let y=nn(m,e.keyFields.map(h=>a.get(h)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let d=await ni(e.appId,e.keyFields,s,t,n,a),u=s.map(m=>ti(d,m)),c=new Map,p=[...new Set(u.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Gn(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let h of y.records){let g=Number(h.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,h)}}let E=u.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await Zc({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Tg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Sr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=ps(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Jo(a),applyDiagnostic:a}))throw new ue("INSERT",o.guards.parentRows);let s=await ip(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function Ig(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await sf(e,t,n,r,1),o=ds(i);if(n.confirm){let s=Jo(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ue("UPDATE",i.guards.parentRows)}let a=await op(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function wg(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function Jo(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=wg(n?Oo(n):[],r?Oo(r):[]),a=bg(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),d=o.reduce((p,f)=>p+f.appendRows,0),u=o.reduce((p,f)=>p+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:u,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=Oo(n),f=Oo(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,R)=>E+R.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function Oo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function bg(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:en(n,"ADD"),removedValues:en(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Fl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Ag(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Sg(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await df(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await xl(e,t,n,r,i,o)).result}var zr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function xl(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(v=>v.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let u=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,c=await je(e.appId,u,t,r);e.type==="UPDATE"&&await Fn(e,t,r);let p=new Map(c.map(v=>[v.code,v])),f=await yt(e.appId,u,c,t,r),E=Je(c,d),R=Hp(E),m=(await Pg(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,A)=>v.rowNumber-A.rowNumber),y=m.filter(v=>v.mode==="update"),h=e.type==="UPDATE"?Og:e.type.startsWith("UPSERT")?v=>Lg(v,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??h,S=y.length>0&&g!==void 0,b=new Map;if(S){ns(y,u,c);let v=await g({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let C of y){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let F=v.get(C.targetId);if(!F)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let N=Yp(F,C.record??{});A.set(C.rowNumber,N)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of y){let F=A.get(C.rowNumber);if(!F)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);b.set(C.rowNumber,Yt(F,E,f,o,C.rowNumber,l))}}let P=rs(m,l,d,u,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:O,invalidRows:I,invalidRowNumbers:D}=P;if(S){let v=new Map(P.candidateResults.map(A=>[A.rowNumber,A]));O=[],D=new Set;for(let A of m){let C=v.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let x=[...C.preErrors,...C.builtInErrors,...C.checkErrors];O.push(...x),x.length>0&&D.add(A.rowNumber);continue}let F=b.get(A.rowNumber);if(!F)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let N=jp({rowNumber:A.rowNumber,setFields:u,normalizedPostImage:F.normalizedRecord,preErrors:C.preErrors,postImageErrors:F.errors,checkErrors:C.checkErrors});A.record=N.writeRecord,O.push(...N.errors);for(let x of N.invalidRowNumbers)D.add(x)}I=D.size}let w=[...d,...Cn],_={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-I,invalidRows:I,errorCount:O.length,columns:w,errors:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let v of d){if(v==="$id"){k.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Q({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(v);A&&k.set(v,nt(A,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of Cn)k.set(v,z(L.has(v)?"number":"string"));return an.set(_,k),{result:_,candidates:m,invalidRowNumbers:D,columnMeta:k}}async function fl(e,t,n,r,i,o){let a=await xl(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new zr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new ue(E,d.length)}let u={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let m=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...u}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...u}}let c=d.filter(E=>E.mode==="create"),p=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...u}}async function Pg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Cg(e,n,r,i,o,s);let l,d,u,c,p;if(e.type==="INSERT"||e.type==="UPSERT")wd(e,e.fields),p=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),on(e,p),l=e.values.map(S=>S.map((b,P)=>b.type==="CASE_VALUE"?Lt(b.expr,{},a.get(e.fields[P])?.fieldType):b));else{let S=await Bl.materialize(e,n,r,i,o,[...a.values()]),b=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!b&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(b&&new Set(S.columns).size!==S.columns.length)throw Ee("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");wd(e,S.columns),d=S.rows,u=S.importPresence,c=S.importRowErrors;let P=S.columnMeta;p=new Map(S.columns.map(O=>{let I=P?.get(O),D=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[O,D]})),on(e,p),l=S.rows.map(O=>S.columns.map(I=>O[I]??""))}let f=l.map((S,b)=>({rowNumber:b+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((P,O)=>u&&!u[b]?.has(P)?[]:[[P,S[O]]])),preErrors:[...c?.[b]??[]],record:{},evaluationRow:d?.[b]??Object.fromEntries(e.fields.map((P,O)=>[P,ze(S[O])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,b])=>[S,b.fieldType])),R=f.map(S=>e.keyFields.map(b=>ze(S.payload.get(b)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let b=nn(S,m);y.set(b,(y.get(b)??0)+1)}let h=Wo.has(e);if(h&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await ni(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,b)=>{let P=R[b],O=ti(g,P);S.mode=O===void 0?"create":"update",O!==void 0&&(S.targetId=O),e.keyFields.forEach((I,D)=>{P[D]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!h&&(y.get(nn(P,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Kl(e){return e.checkGroups?Pn(e.checkGroups):[]}function wd(e,t){let n=new Set(t);for(let r of Kl(e)){if(r.tableAlias!==null)throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Ng=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function on(e,t){if(e.checkGroups)for(let n of Ac(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Ng.has(i??""))throw Ee(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Cg(e,t,n,r,i,o){if(e.from)return Dg(e,e.from,t,n,r,i,o);await hf(e.assignments,t,n,r);let a=await Se(e.appId,t,r),s=lf(e,a);on(e,El(a,e.appId));let l,d=new Map,u=new Map;if(Ki(e)){let c=Ba(e),p=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(f.records),d=u,l=Ga(e,f.records,a).flatMap(E=>E.records)}else{let c=dr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(f.records),d=u,l=fr(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});u=Do(p.records),l=fr(e,[...u.keys()],a).flatMap(f=>f.records)}else{let p=await eo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=fr(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((c,p)=>c.id-p.id).map((c,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:u.get(c.id),evaluationRow:_g(d.get(c.id),e.appId),evaluationFieldTypes:El(a,e.appId)}))}function Do(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function Og(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function Lg(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,u=Number(d);if(!Number.isSafeInteger(u)||u<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(u))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${u}.`);if(o.has(u))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${u}.`);o.set(u,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function lf(e,t){if(e.from)return[];let n=new Set;for(let r of Kl(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Ee(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw Ee(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function _g(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function El(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Dg(e,t,n,r,i,o,a){let s=await Pf(e,t,n,i,o);on(e,s.evaluationTypes);let l=await uf(e,t,n,r,i,o,a),d=await Se(e.appId,n,i),u=Wa(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?Do(l.map(f=>f.target)):new Map;return u.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:_A(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var vg=tf,Ug=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function uf(e,t,n,r,i,o,a){let s=await kg(e,t,n,i),l=await Pf(e,t,n,i,o),d=[...new Set(e.assignments.filter(b=>b.value.type==="SOURCE_FIELD").map(b=>b.value.type==="SOURCE_FIELD"?b.value.field:"").concat(l.sourceFields))],u=[...new Set([t.joinKeyField,...d])],c=await Mg(t,u,d,n,r,i,o),p=new Map,f=new Map;for(let b of c){if(!Object.prototype.hasOwnProperty.call(b,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let P=bd(b[t.joinKeyField],s,"source");if(p.has(P))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${P}.`);p.set(P,b),f.set(P,String(b[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...eA(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":dr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],h=new Set,g=0;for(let b of Gn([...f.values()],vg)){let P=`${t.targetJoinField} in (${b.map(Bo).join(",")})`,O=m?`(${P}) and (${m})`:P,I=await Ge(n.getRecords,e.appId,O,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=I.records.length,g>E)throw new Oe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let D of I.records){let w=D.$id?.value;if(typeof w!="string"||w==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");h.has(w)||(h.add(w),y.push(D))}}let S=[];for(let b of y){let P=b[t.targetJoinField]?.value,O=bd(P,s,"target");if(O===null)continue;let I=p.get(O);I!==void 0&&S.push({target:b,source:I})}return S}async function kg(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function Mg(e,t,n,r,i,o,a){if(e.cteName!==null){let u=a?.get(e.cteName);if(!u)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!u.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return u.rows}let s=await Se(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let u of n){if(u!=="$id"&&!s.has(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);let c=u==="$id"?"RECORD_NUMBER":s.get(u);if(Ug.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${u}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(u=>dt(u,null))}function bd(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function ri(e,t,n,r,i){let o=await xl(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ue(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<c.length;p+=100)await t.putRecords({app:e.appId,records:c.slice(p,p+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),u=0;for(let c=0;c<l.length;c+=100){let p=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});u+=p.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:u,updatedCount:d.length}}async function Fg(e,t,n,r){if(e.applyBlocks?.length)return Tg(e,t,n,r);if(e.checkGroups?.length)return ri(e,t,n,r);if(e.subtableCode)return rA(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Se(e.appId,t,r),s=xi(e,a);rn(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let u=await t.postRecords(d);l.push(u.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function xg(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:qe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function cf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Qp(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,p=await te(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=p.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await wo(o,new Map),m=e.source.kind==="JSON"?rd(e.source,R,c,n.maxRecords??1e4):id(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",h=ld(m,c,p,E,y);if(e.source.kind==="CSV")return Kg(e,m,h,p,t,n,i);Vs(h,e.rejectLimit);let g=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Hs(h.errors,g),b=[...g,...Ws],P=h.invalidParentRows.size,O={preflight:"ACTUAL_DATA",parents:{total:h.parents.length,valid:h.parents.length-P,invalid:P,mutationCandidates:h.parents.filter(U=>U.valid).length},tables:Object.fromEntries(h.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:y,validatedRows:h.parents.length,validRows:h.parents.length-P,invalidRows:P,errorCount:S.length,columns:b,errors:S,importDetail:O,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,b,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return I;if(cd(m),h.errors.length>0&&!e.onErrorSkip){let U=h.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,b,S,n.tempTableMaxRows??Fe,new Map)}let D=h.parents.filter(U=>U.valid),w=new Map(p.map(U=>[U.code,U.fieldType])),_=D.map(()=>{});if(e.keyFields){for(let J of e.keyFields)if(!e.fields.includes(J))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${J}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(J=>w.get(J)==="NUMBER"),M=new Set,$=D.map(J=>e.keyFields.map(be=>String(J.top[be]?.value??"")));for(let J of $){let be=nn(J,U);if(M.has(be))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");M.add(be)}let q=await ni(e.appId,e.keyFields,$,t,n,w);$.forEach((J,be)=>{_[be]=ti(q,J)})}let k=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),L=new Map,v=_.filter(U=>U!==void 0);for(let U of Gn([...new Set(v)],100)){let M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.records){let q=Number($.$id?.value),J=Number($.$revision?.value);Number.isFinite(q)&&L.set(q,{id:q,...Number.isFinite(J)?{revision:J}:{},record:$})}}let A=pd(D,_,L),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(M=>M.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ue(e.keyFields?"UPDATE":"INSERT",A.length)}let F=U=>new Map(Object.entries(U).map(([M,$])=>[M,$.value])),N=U=>ud(F(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.map(q=>({values:F(q)}))]))),x=A.filter(U=>U.mode==="INSERT"),Y=A.filter(U=>U.mode==="UPDATE"),j=[];for(let U=0;U<x.length;U+=100){let M=await t.postRecords({app:e.appId,records:x.slice(U,U+100).map(N)});j.push(M.ids)}for(let U=0;U<Y.length;U+=100)await t.putRecords({app:e.appId,records:Y.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:N(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:j.flat().length,updatedCount:Y.length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:j,insertedCount:j.flat().length,affectedRows:A.length,skippedRows:h.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Bg(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:xg(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},s=e.keyFields?{type:"UPSERT_SELECT",...a,keyFields:e.keyFields}:{type:"INSERT_SELECT",...a},l={source:e.source,handle:o,cache:new Map};Wo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Fl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,an.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",fl(s,t,n,r,i,1));return d(c)}let u=await(s.type==="UPSERT_SELECT"?Wl(s,t,n,r,i):$l(s,t,n,r,i));return d(u)}async function Kg(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");dd(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=qs(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],u=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...u],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of c){let v=Number(L.$id?.value),A=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(A)?{revision:A}:{},record:L});for(let C of u){let F=L[C]?.value;if(Array.isArray(F)){for(let N of F)if(N.id){let x=f.get(N.id)??[];x.push({parentId:v,table:C}),f.set(N.id,x)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let A=[...L.errors];for(let F of l.errors[v])A.push({operation:"UPDATE",parentRow:L.parentRow,field:F.field,code:F.code,message:F.message,sourceValues:t.records[v].top});let C=E[v];return C!==void 0&&!p.has(C)&&A.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:A.length===0,errors:A}}),m=fd(t.records,R,E,p,f),y=m.flatMap(L=>[...L.errors]),h=new Set(m.filter(L=>!L.valid).map(L=>L.parentRow)),g={...n,parents:R,errors:y,invalidParentRows:h};Vs(g,e.rejectLimit);let S=m.filter(L=>L.valid),b=m.flatMap(L=>L.tables),P=(L,v)=>b.filter(A=>A.table===L).reduce((A,C)=>A+Number(C[v]),0),O=Object.fromEntries(d.map(L=>[L,{existingRows:P(L,"existingRows"),inputRows:P(L,"inputRows"),updateRows:P(L,"updateRows"),addRows:P(L,"addRows"),deleteRows:P(L,"deleteRows"),rowIdNotFound:P(L,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:h.size,parents:S.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},D=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],w=Hs(y,D),_=[...D,...Ws];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,_,w,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-h.size,invalidRows:h.size,errorCount:w.length,columns:_,errors:w,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:h.size,mutationCandidates:S.length},tables:O,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,_,w,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new ue("UPDATE",S.length)}let k=L=>new Map(Object.entries(L).map(([v,A])=>[v,A.value]));for(let L of S){let v=Ys(k(L.top),new Map([...L.subtables].map(([A,C])=>[A,C.map(F=>({...F.rowId?{rowId:F.rowId}:{},values:k(F.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:L.targetId,...L.revision===void 0?{}:{revision:L.revision},record:v}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:h.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function Bg(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await wo(t,new Map),d=Bs(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),u=d.recordNumberSourceValues;if(!u)throw new Error("InternalError: record-number source values were not materialized.");let c=qs(u,e.recordNumberSourceHeader),p=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let D=f.slice(I,I+100),w=await n.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let _ of w.records){let k=_.$id?.value;typeof k=="string"&&k!==""&&p.add(k.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),m=d.rows.map((I,D)=>{let w=c.normalized[D],_=[...d.importRowErrors?.[D]??[],...c.errors[D]];return w!==null&&!p.has(w)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...w!==null&&p.has(w)?{targetId:Number(w)}:{},payload:new Map([[e.recordNumberSourceHeader,u[D]],...e.fields.map(k=>[k,I[k]??""])]),preErrors:_,record:{},evaluationRow:I,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],h=rs(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),g=[...y,...Cn],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-h.invalidRows,invalidRows:h.invalidRows,errorCount:h.errors.length,columns:g,errors:h.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,g,h.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&h.invalidRows>0){let I=h.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(rt(o,e.errorTable,g,h.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&h.invalidRows>e.rejectLimit)throw new zr(`rejected rows (${h.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let b=m.filter(I=>!h.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(b.length,"UPDATE"))throw new ue("UPDATE",b.length);let P=b.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<P.length;I+=100)await n.putRecords({app:e.appId,records:P.slice(I,I+100)});let O={type:"UPDATE",updatedCount:P.length,...e.onErrorSkip?{affectedRows:P.length,skippedRows:h.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(O,{insertedCount:0,importAudit:d.importAudit}),O}async function $g(e,t,n,r,i,o){let a=Wo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Re.get(R)}}let s=await wo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),u=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Ks(a.source,s,u,l):Bs(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=Ed(a.source.projection),f=new Map(i??[]);f.set(js,c);let E=await mt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Re.get(E)}}var Bl={materialize:$g};function pf(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function $l(e,t,n,r,i){if(e.checkGroups?.length)return ri(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Bl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(pf(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new ue("INSERT",l.length);let u=await Se(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let h=f[d[y]]??"";R[m]={value:af(h,u.get(m))}}),R});c.forEach(f=>rn([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});p.push(R.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Rl(e,t,n,r,i){if(e.applyBlocks?.length)return df(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(m=>m.field),t,r);await yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Se(e.appId,t,r);return lf(e,R),on(e,El(R,e.appId)),await Fn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ri(e,t,n,r,i);if(e.subtableCode)return await Fn(e,t,r),iA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await Fn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Zg(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await hf(e.assignments,t,n,r);let d=await Se(e.appId,t,r);if(Ki(e)){let E=Ba(e),m=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Ga(e,m,d);if(rn(y.flatMap(h=>h.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new ue("UPDATE",m.length);for(let h of y)await t.putRecords(h);return{type:"UPDATE",updatedCount:m.length}}let u=dr(e),p=(await eo(t.getRecords,u.app,u.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=fr(e,p,d);if(rn(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ue("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function df(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return Gg(e,t,n,r,i);let o=await te(e.appId,t,r),a=pt(e,o),s=$i(e,o),l=Ja(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let u=Number(d.records[0].$id?.value);if(u!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${u} does not match requested $id ${l}.`);Hi(d.records[0]);let c=Fc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Je(o,e.assignments.map(b=>b.field)),f=Ht(c.postImage,p)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",ht),m=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),y=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let b=Ir({plans:[c],records:yr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),P={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(b.branches[0]),guards:Xr(b.branches[0]),deletedRows:{total:c.tables.reduce((O,I)=>O+I.deletedRows,0),parentRows:c.tables.some(O=>O.deletedRows>0)?1:0},diagnostic:b};return an.set(P,Xo(E.columns,o,e.appId)),P}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let h=Vi(c,E.normalizedRecord),g=yr(h),S=Ir({plans:[h],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let b=Jo(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:b,applyDiagnostic:S}))throw new ue("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function Gg(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",ht),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Te),s=await te(e.appId,t,r),l=pt(e,s),d;if($o(e))d=await Yg(e,t,n,s,r);else{let f=$i(e,s),E=dr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let u=await zi({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return Xg(e,u,s);Au("phase15b",e);let c=Ir(u);if(n.confirm){let f=Jo(c);if(!await n.confirm(u.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new ue("UPDATE",u.guards.parentRows)}let p=await rp(u,t,c);return{...p,diagnostic:Ue(c,p)}}function $o(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||de(e.where))}function Vg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&$o(t)&&de(t.where)}var Wg=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
10
10
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
11
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Hg(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Wg}`)}async function Yg(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),d=gs(e.where,{fieldTypes:s,fieldOptions:l});Hg(d);let u=d.prefilter===null?"":V(d.prefilter),c=new Set($i(e,r));for(let E of jg(e.where))c.add(E);let p=await qg(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,u,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function jg(e){return wl(e)}async function qg(e,t,n,r,i){let s=[...zg(t)].some(u=>n.get(u)?.fieldType==="STATUS")?await Ml(e,r,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":n.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return bn(Q({fieldType:"__ID__"}),e,"$id");let c=n.get(u.field);if(!c)return;let p=c.semantics??Q(c),f=c.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return bn(f,e,c.code)}}}function zg(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function Jg(e,t,n){let r=t.validations.flatMap(u=>u.errors),i=t.validations.reduce((u,c)=>u+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Ar],a=t.guards.parentRows,s=ps(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(l),guards:Xr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return an.set(d,Xo(o,n,e.appId)),d}function Xg(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Ar],s=Ir(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(s.branches[0]),guards:Xr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,u)=>d+u.tables.reduce((c,p)=>c+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(u=>u.deletedRows>0)).length},diagnostic:s};return an.set(l,Xo(a,n,e.appId)),l}function Qg(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Ar],l=ds(t),d=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),c=Jr(d),p=Jr(u),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Xr(d)},update:{apply:p,guards:Xr(u)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return an.set(f,Xo([...s],n,e.appId)),f}function Jr(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Xr(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var ht=100,Te=500;function xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Xo(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Q({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function Zg(e,t,n,r,i,o){let a=await uf(e,t,n,r,i,o),s=await Se(e.appId,n,i),l=Wa(e,a,s),d=e.assignments.map(p=>p.field),u=await te(e.appId,n,i),c=await yt(e.appId,d,u,n,i);if(rn(l.flatMap(p=>p.records.map(f=>f.record)),d,u,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ue("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function eA(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function tA(e,t,n,r){if(await Fn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return oA(e,t,n,r);let i=Oc(e),a=(await eo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new ue("DELETE",a.length);let s=Lc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function nA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Ig(e,t,n,r);if(e.checkGroups?.length)return ri(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Se(e.appId,t,r),d=ff(e),u=await ni(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((m,y)=>{let h=p[y];h.type==="CASE_VALUE"?E[m]={value:Lt(h.expr,{},l.get(m))}:E[m]={value:ct(h,l.get(m))}});let R=ti(u,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),rn([...a,...s.map(p=>p.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let p=a.length+s.length;if(!await n.confirm(p,"UPDATE"))throw new ue("UPDATE",p)}let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});c.push(f.ids)}for(let p=0;p<s.length;p+=100)await t.putRecords({app:e.appId,records:s.slice(p,p+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function ff(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?W(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Gl(e,t,n,r){if(t.length===0)return;let i=await Se(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function rA(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Qo(a),l=new Map;for(let u of e.values){let c=Pd(u[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Pd(u[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[u,c]of l.entries()){let p=s.get(u),E=[...ii(p,i),...c];d.push(Ef(e.appId,u,oi(p),i,E))}for(let u of d)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function iA(e,t,n,r){let i=e.subtableCode;if(!Vr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Fo(p.value.expr,o);let a=await Gl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Vl(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ue("UPDATE",d.length);let u=new Map;for(let p of d){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=u.get(p.parentId);f||(f=new Map,u.set(p.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:Bi(R.value,p.flat,a)}}f.set(p.rowId,E)}let c=Qo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let m=ii(E,i).map(y=>{let h=y.id??"";if(!h)return y;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(aA(e.appId,p,oi(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function oA(e,t,n,r){let i=e.subtableCode;if(!Vr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Gl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Vl(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new ue("DELETE",d.length);let u=new Map;for(let p of d){let f=u.get(p.parentId);f?f.push(p.rowIndex):u.set(p.parentId,[p.rowIndex])}let c=Qo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let R=ii(E,i),m=new Set(f),y=R.filter((h,g)=>!m.has(g));await t.putRecords(Ef(e.appId,p,oi(E),i,y))}return{type:"DELETE",deletedCount:d.length}}function Qo(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Vl(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=oi(r),a=ii(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...Gi(l,s),_pid:i};for(let[u,c]of Object.entries(r))u!==t&&(d[`_p.${u}`]=ml(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ii(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function oi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Ef(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function aA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function sA(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function Pd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?W(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function ml(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Vr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Vr(e.left)||Vr(e.right);case"NOT":case"GROUP":return Vr(e.expr);default:return!1}}async function lA(e,t,n,r){let i=[];Et(e.where,i);let o=await Gl(e.appId,i,t,r),a=await te(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Q(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Vl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(u.filter(f=>e.where&&ne(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ue("UPDATE",c.size);let p=Qo(d);for(let f of c){let E=p.get(f);if(!E)continue;let m=ii(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:uA(E,e.subtableCode,h,g)}));m.sort((h,g)=>cA(h.flat,g.flat,e.by,l));let y=m.map(h=>h.row.id??"");await t.putRecords(sA(e.appId,f,oi(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function uA(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=ml(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=ml(a?.value);return i}function cA(e,t,n,r){for(let i of n){let o=Nd(i.key,e),a=Nd(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?tn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Nd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(se(e.expr,t));case"FUNC_KEY":return le(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Wl(e,t,n,r,i){if(e.checkGroups?.length)return ri(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Bl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(pf(s),d.length!==e.fields.length){let y=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],c=[],p=await Se(e.appId,t,r),f=l.map((y,h)=>{let g={};return e.fields.forEach((S,b)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let P=y[d[b]]??"";g[S]={value:af(P,p.get(S))}}),g});f.forEach(y=>rn([y],e.fields.filter(h=>h in y),o,a));let E=f.map(y=>e.keyFields.map(h=>String(y[h]?.value??"")));if(Wo.has(e)){let y=e.keyFields.map(g=>p.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=nn(g,y);if(h.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");h.add(S)}}let R=await ni(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,h)=>{let g=ti(R,E[h]);g!==void 0?c.push({id:g,record:y}):u.push(y)}),n.confirm&&u.length+c.length>0){let y=u.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new ue("UPDATE",y)}let m=[];for(let y=0;y<u.length;y+=100){let h=await t.postRecords({app:e.appId,records:u.slice(y,y+100)});m.push(h.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function Rf(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function mf(e,t,n){let r=await te(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function pA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return Rn("phase15b",r),$e(r),r}catch(n){throw n instanceof he||n instanceof T,n}}async function Qr(e,t,n,r,i){let o=[];vo(e,t,n,r,o,i),await Promise.all(o)}async function yf(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Qr(s.condition,t,n,r,i));await Promise.all(o)}function Wr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function vo(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Wr(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Wr(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":vo(e.left,t,n,r,i,o),vo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":vo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Wr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function hf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function gf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(u.query),p=o.get(c);p||(p=Wr(u.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],u)=>l.set(d,s[u])),l}var Af=new WeakMap,Sf=new WeakMap,Tf=new WeakMap;async function If(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},d=new Map,u=new Map,c=new Map,p=new Set,f=i??await ei(e,l,n),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||p.has(m))return;if(p.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let h=m;await Ho(h,l,n);let g=[h.from,...h.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ie(h).type==="PLAIN"&&!g){let w=await Pl(h,l,n);w&&c.set(h,w)}let S=[h.from,...h.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Ze(h.where)||h.orderBy.length>0||h.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&S.forEach(w=>o.add(w));let P=await Yr(h,l,n),O=E(h);if(P.capability==="UNSUPPORTED"&&!O)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(P)}).`);d.set(h,P);let D=Cl.get(h)??Yo(h,await jo(h,l,n));if(D&&Af.set(h,D),h.orderBy.length>0||h.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await qr(h,l,n);if(h.orderMode!=="KINTONE_NATIVE")for(let _ of w.semantics.values())_.fieldType==="STATUS"&&_.source&&a.add(_.source.appId);if(ko(h)&&!g&&O?.allowed!==!1){let _=P.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN";u.set(h,(h.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:h,staticMode:_,whereCapability:P.capability,whereReasons:P.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:de(h.where)}))}}}else if(y.type==="VALIDATE"){let h=m;o.add(h.appId);let g=await te(h.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),b=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),P=ss(h,g),O=Pn(h.checkGroups??[]),I=wl(h.where);for(let A of O){if(A.field!=="$id"&&!S.has(A.field)&&!b.has(A.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${h.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&b.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of I){if(A!=="$id"&&!S.has(A)&&!b.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${h.appId}.`);if(A!=="$id"&&!S.has(A)&&b.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let D=new Map([...S].map(([A,C])=>[A,C.fieldType]));D.set("$id","RECORD_NUMBER"),on(h,D);let w=Ne(h.where,A=>A.field==="$id"?Q({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?Q(S.get(A.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(w)}).`);let _=new Map([...S].map(([A,C])=>[A,C.fieldType])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),L=h.where===null?null:w.capability==="EXACT_PUSHDOWN"?h.where:gn(h.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:k,allowKlike:!1}),v=P.some(A=>A.field.fieldType==="NUMBER");v&&(s.add(h.appId),await ot(h.appId,l,n)),Sf.set(h,{targetFields:P.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...P.map(A=>A.subtableCode??A.field.code),...I,...O.map(A=>A.field)])],subtables:new Map([...new Set(P.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,P.filter(C=>C.subtableCode===A).length])),capability:w,prefilter:L,numberPrecision:v})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let g=m,S=await te(g.appId,l,n);if(pt(g,S),$o(g)){let b=S.filter(O=>!O.inSubtable),P=gs(g.where,{fieldTypes:new Map(b.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(b.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});Tf.set(g,P)}}let h=m;(h.type!=="UPDATE"||!$o(h))&&E(h)?.allowed!==!1&&await Fn(h,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let m=wt(e),y=await Yr(m,l,n),h=E(m);if(y.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);if(d.set(m,y),ko(m)&&h?.allowed!==!1){let g=await qr(m,l,n);u.set(m,(m.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:de(m.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function yl(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function dA(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function Cd(e){return e==="<>"?"!=":e}function We(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${dA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function hl(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=X(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?fA(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let d=Qs(l),u=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Xs(d)}: ${d}`,` ${Zs(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${u}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(X)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!X(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Qs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=Cd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Xs(l)}: ${l}`,` ${Zs(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Od(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=Qs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=Cd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Xs(l)}: ${l}`,` ${Zs(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=V(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${Od(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!X(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function fA(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,u=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||u)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Xs(e){return X(e)?"relative date function":"kintone function"}function Qs(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function Zs(e){return X(e)?"relative date evaluation":"kintone function evaluation"}function Od(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&X(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function wf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Te){let d=gl(r);try{let u=Kd(e,a),c=La(u);fs(u,n);let p=new Map,f=[];for(let E=0;E<u.length;E++){let R=u[E],m=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:Uo(R.expr,p)}:R:Uo(R,p);$e(m);let y=await ei(m,t,d),h=await If(m,t,d,i,y),g=y.hasServerOnlyWhereFunction&&!y.allowed?hl(y):[...hl(y),...bf(EA(m,c.statements[E],h.capabilities,h.orderPlans,s,l),o)],S=yl(h);f.push({index:E,type:c.statements[E].statementType,plan:g.length===0?S:[g[0],...S,...g.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&p.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(b=>({type:"string",value:b.value}))}:{type:"string",value:`@${R.name}`})}return{statementCount:u.length,statements:f}}finally{kl(d)}}function EA(e,t,n,r,i=100,o=Te){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Kr(e.query,t,n,r).map(a=>` ${a}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let a=Go(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Kr(e.expr.query,a,n,r).map(s=>` ${s}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Kr(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let u=Go(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...Kr(l.query,u,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Zo(e,void 0,n,r,i,o):Kr(e,t,n,r)}function Go(e){if(Array.isArray(e))return e.some(Go);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Go)}return!1}function Kr(e,t,n,r){if(t.tempTablesReferenced.length===0)return Zo(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&i.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function RA(e,t,n,r,i,o=100,a=Te,s){let l=s??await ei(e.query,t,n),d=await If(e.query,t,n,r,l),u=hl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...yl(d),...u]:[...yl(d),...u,...bf(Zo(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(p=>({plan:p})),rowCount:c.length}}function bf(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Zo(e,t,n,r,i=100,o=Te,a=1e4,s){if(e.type==="UNION")return yA(e,n,r,s);if(e.type==="WITH")return hA(e,n,r,s);if(e.type==="INSERT")return SA(e,t,i,o);if(e.type==="INSERT_SELECT")return TA(e,t,n,r,s);if(e.type==="UPSERT")return PA(e,t,i,o);if(e.type==="UPSERT_SELECT")return NA(e,t,n,r,s);if(e.type==="UPDATE")return IA(e,t,n,r,i,o,a);if(e.type==="DELETE")return bA(e,t);if(e.type==="REORDER")return CA(e,t);if(e.type==="VALIDATE")return mA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let u=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...u.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(u=>u.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function mA(e,t){let n=Sf.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":V(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Il:Tl).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function He(e,t,n,r,i){let o=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),d=gA(e);o&&o.capability!=="EXACT_PUSHDOWN"&&d.push(...o.reasons.map(m=>m.code));let u=[],c=ap(e,jr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${l}`),c&&(u.push(` grouping source: ${c.source}`),u.push(` grouping sets: ${c.expandedSetCount} (limit: ${c.setLimit})`),u.push(` grouping items: ${c.groupingItemCount} (limit: ${c.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${c.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let p=ie(e);if(p.type==="PLAIN"){let m=p.allItems;if(s)s.items.forEach((y,h)=>{let g=m[h];g?.type==="FIELD_NAME"&&y.kind==="PHYSICAL"&&u.push(` group key ${g.name}: PHYSICAL (source=${y.sourceIndex}, field=${y.fieldCode})`)});else if([e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null))for(let y of m)y.type==="FIELD_NAME"&&u.push(` group key ${y.name}: DEFERRED (materialized schema unavailable)`)}a?(u.push(` order plan: ${a.kind}`),a.reasonCodes.length>0&&u.push(` order reason: ${a.reasonCodes.join(", ")}`),a.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):a.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${a.scanRows}`))):c&&u.push(" order plan: CANONICAL_LOCAL");let f=a&&!a.requiresCompleteInput?{...e,orderBy:[]}:e,E=gt(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=Rt(e.where);if(E.size>0&&(!R||c!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...E].join(", ")}`),u.push(" onLimit=truncate: disabled")),R)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(l==="FULL_SCAN"&&d.length>0&&u.push(` reason: ${d.join(", ")}`),l==="SIMPLE"){let m=yi(a?.kind==="CANONICAL_REST_TOP_N"?Jd(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?As(e):m.query;u.push(` kintone query: ${y||"(\u306A\u3057)"}`),u.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=Af.get(e),y=m??Sn(e);if(e.joins.length>0)if(m){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),m.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${m.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${m.joinPlan.residualWhere===null?"(none)":Xt(m.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${m.joinPlan.allKlikes.length-m.joinPlan.appliedKlikes.size}`),m.joinPlan.residualWhere!==null)for(let _ of m.joinPlan.rejections)u.push(` join pushdown not applied: ${_.reason}`)}else{let _=e.joins.some(k=>k.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${_}`)}let h=Kt(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",S=y.mainCondition,b=Yd(e),P=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?V(e.where):"",O=e.from.alias?m?.queriesByAlias.get(e.from.alias):void 0,I=O||(S!==null?V(S):P||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${I}`);let D=m?.joinPlan.items.find(_=>_.targetAlias===e.from.alias),w=m?.joinPlan.serverFunctionConsumptions.find(_=>_.targetAlias===e.from.alias);D||w?(u.push(` pushdown applied: ${O}`),u.push(` relation: ${D?.relation??"exact"}`)):!m&&b!==null&&u.push(` pushdown candidate: ${V(b)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${h.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.join(", ")}`);for(let _ of e.joins){let k=Kt(e,_.table,s),L=_.table.alias?` AS ${_.table.alias}`:"",v=_.type==="INNER"?"JOIN":`${_.type} JOIN`,A=_.table.alias?y.joinConditions.get(_.table.alias)??null:null,C=_.table.alias&&!_.table.subtableCode&&_.table.cteName===null&&e.where?ir(e.where,{tableAlias:_.table.alias}):null,F=_.table.alias?m?.queriesByAlias.get(_.table.alias):void 0,N=F||(A!==null?V(A):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${v}: APP${_.table.appId}${L} (${_.table.appId})`),u.push(` kintone query: ${N}`);let x=m?.joinPlan.items.find(j=>j.targetAlias===_.table.alias),Y=m?.joinPlan.serverFunctionConsumptions.find(j=>j.targetAlias===_.table.alias);x||Y?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${x?.relation??"exact"}`)):!m&&C!==null&&u.push(` pushdown candidate: ${V(C)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return u.push(...AA(e,n,r,i)),u}function yA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r))}),a}function hA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...Zo(e.query,"[main]",t,n,100,Te,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r))}return i}function gA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ie(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function AA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r)));return e.having&&a(e.having),i}function SA(e,t,n=ht,r=Te){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Hl(Qi(e,n,r))]:a}function TA(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...He(e.select,"[source SELECT]",n,r,i)),o}function IA(e,t,n,r,i=100,o=Te,a=1e4){if(e.applyBlocks?.length)return wA(e,t,i,o,a);let s=bc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Ki(e),u=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?Zr(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${Zr(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),u&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!u&&p.push("\u5358\u7D14 SET"),c.push(` set type: ${p.join(", ")}`),d){let f=LA(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${DA(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r)));return c}function wA(e,t,n,r,i){let o=Qi(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),u=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=u.includes("REMOVE"),p=Tf.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":V(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Zr(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${u.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Hl(o)]}function bA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Zr(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function PA(e,t,n=ht,r=Te){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Hl(Qi(e,n,r))]:a}function Hl(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function NA(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...He(e.select,"[source SELECT]",n,r,i)),o}function CA(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(OA).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${Zr(e.where)}`),o}function OA(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Zr(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return V(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function LA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Vo(n,t),n.type==="STRING_FUNC"&&Vo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Hr(n,t);return[...t]}function Vo(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Vo(e.left,t),Vo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Hr(n,t)}async function Pf(e,t,n,r,i){let o=Kl(e),a=await Se(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Se(t.appId,n,r),d=new Set,u=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Ee(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Ee(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(p.field)}else throw Ee(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw Ee(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw Ee(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let c=new Map;for(let[p,f]of a)c.set(p,f),c.set(`APP${e.appId}.${p}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)c.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...u],evaluationTypes:c}}function _A(e,t,n){if(!e)return{};let r=dt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function Hr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Hr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Hr(e.left,t),Hr(e.right,t))}function DA(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${Nf(t)}`:t.type==="CASE_VALUE"?`${e.field} = CASE WHEN ...`:t.type==="STRING_FUNC"?`${e.field} = ${t.func}(...)`:t.type==="SCALAR_SUBQUERY"?`${e.field} = (SELECT ...)`:t.type==="SOURCE_FIELD"?`${e.field} = ${t.alias}.${t.field}`:`${e.field} = (${t.type})`}function Nf(e){return`${Ld(e.left)} ${e.op} ${Ld(e.right)}`}function Ld(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?W(e):e.type==="ARITH"?`(${Nf(e)})`:"..."}var ue=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var pe=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function Yl(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function Ke(e){return new pe("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new pe("PARSE_ERROR",e,t)}function Cf(){let e=new xn;return new pe("SEARCH_ABORTED",e.message,e)}function ai(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function vA(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function sn(e){return e instanceof pe?e:e instanceof he||e instanceof T?new pe("PARSE_ERROR",ai(e),e):e instanceof xn||e?.name==="SearchAbortedError"?new pe("SEARCH_ABORTED",ai(e),e):e instanceof Oe||e?.name==="FetchAllLimitError"?new pe("FETCH_LIMIT_EXCEEDED",ai(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new pe("CLIENT_ERROR",e.message,e.cause):vA(e)?new pe("CLIENT_ERROR",ai(e),e):new pe("EXECUTION_ERROR",ai(e),e)}function ea(e,t){let n=sn(e);if(e instanceof ee){let r=t[e.statementIndex];if(r!==void 0)return Yl(n,e.statementIndex,r.type)}return n}var UA=2,ta=5,kA=3e4,MA=10*6e4+3e4,na=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??UA;if(!Number.isSafeInteger(r)||r<1||r>ta)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ta}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??kA,this.quarantineMs=n.quarantineMs??MA}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new uo(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>ta)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ta}.`)}};function FA(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function xA(e,t=r=>new Promise(i=>setTimeout(i,r)),n=FA){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function KA(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Of(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await KA(xA(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Lf(e){return _f(e,$A(e))}function _f(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=GA(o.options),s=VA(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ra(o.minValue),maxValue:ra(o.maxValue),minLength:ra(o.minLength),maxLength:ra(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!BA.has(o.type)};l.semantics=Q(l),i.push(l),o.fields&&i.push(..._f(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var BA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function $A(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function ra(e){return e==null||e===""?void 0:e}function GA(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function VA(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Df(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var WA="Filter aborted because of too many search results";function vf(e){return e?.includes(WA)===!0}var Uf="/k/v1/records.json",ia="/k/v1/records/cursor.json",HA=4096,YA=2,jl=e=>kintone.api.url(e,!0);function jA(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},r=kintone.api.urlForGet(Uf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=HA?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:jl(Uf),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function si(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
11
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Hg(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Wg}`)}async function Yg(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),d=gs(e.where,{fieldTypes:s,fieldOptions:l});Hg(d);let u=d.prefilter===null?"":V(d.prefilter),c=new Set($i(e,r));for(let E of jg(e.where))c.add(E);let p=await qg(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,u,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function jg(e){return wl(e)}async function qg(e,t,n,r,i){let s=[...zg(t)].some(u=>n.get(u)?.fieldType==="STATUS")?await Ml(e,r,i):void 0;return{fieldTypeResolver:u=>u.field==="$id"?"NUMBER":n.get(u.field)?.fieldType,fieldSemanticsResolver:u=>{if(u.field==="$id")return bn(Q({fieldType:"__ID__"}),e,"$id");let c=n.get(u.field);if(!c)return;let p=c.semantics??Q(c),f=c.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return bn(f,e,c.code)}}}function zg(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function Jg(e,t,n){let r=t.validations.flatMap(u=>u.errors),i=t.validations.reduce((u,c)=>u+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Ar],a=t.guards.parentRows,s=ps(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(l),guards:Xr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return an.set(d,Xo(o,n,e.appId)),d}function Xg(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Ar],s=Ir(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Jr(s.branches[0]),guards:Xr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,u)=>d+u.tables.reduce((c,p)=>c+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(u=>u.deletedRows>0)).length},diagnostic:s};return an.set(l,Xo(a,n,e.appId)),l}function Qg(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Ar],l=ds(t),d=l.branches.find(E=>E.branch==="insert"),u=l.branches.find(E=>E.branch==="update"),c=Jr(d),p=Jr(u),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Xr(d)},update:{apply:p,guards:Xr(u)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return an.set(f,Xo([...s],n,e.appId)),f}function Jr(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Xr(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var ht=100,Te=500;function xe(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Xo(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Q({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function Zg(e,t,n,r,i,o){let a=await uf(e,t,n,r,i,o),s=await Se(e.appId,n,i),l=Wa(e,a,s),d=e.assignments.map(p=>p.field),u=await te(e.appId,n,i),c=await yt(e.appId,d,u,n,i);if(rn(l.flatMap(p=>p.records.map(f=>f.record)),d,u,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ue("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function eA(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function tA(e,t,n,r){if(await Fn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return oA(e,t,n,r);let i=Oc(e),a=(await eo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new ue("DELETE",a.length);let s=Lc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function nA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Ig(e,t,n,r);if(e.checkGroups?.length)return ri(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Se(e.appId,t,r),d=ff(e),u=await ni(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((m,y)=>{let h=p[y];h.type==="CASE_VALUE"?E[m]={value:Lt(h.expr,{},l.get(m))}:E[m]={value:ct(h,l.get(m))}});let R=ti(u,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),rn([...a,...s.map(p=>p.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let p=a.length+s.length;if(!await n.confirm(p,"UPDATE"))throw new ue("UPDATE",p)}let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});c.push(f.ids)}for(let p=0;p<s.length;p+=100)await t.putRecords({app:e.appId,records:s.slice(p,p+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function ff(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?W(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Gl(e,t,n,r){if(t.length===0)return;let i=await Se(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function rA(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Qo(a),l=new Map;for(let u of e.values){let c=Pd(u[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Pd(u[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[u,c]of l.entries()){let p=s.get(u),E=[...ii(p,i),...c];d.push(Ef(e.appId,u,oi(p),i,E))}for(let u of d)await t.putRecords(u);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function iA(e,t,n,r){let i=e.subtableCode;if(!Vr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Fo(p.value.expr,o);let a=await Gl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Vl(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ue("UPDATE",d.length);let u=new Map;for(let p of d){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=u.get(p.parentId);f||(f=new Map,u.set(p.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:Bi(R.value,p.flat,a)}}f.set(p.rowId,E)}let c=Qo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let m=ii(E,i).map(y=>{let h=y.id??"";if(!h)return y;let g=f.get(h);return g?{id:h,value:g}:{id:h}});await t.putRecords(aA(e.appId,p,oi(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function oA(e,t,n,r){let i=e.subtableCode;if(!Vr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Gl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Vl(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new ue("DELETE",d.length);let u=new Map;for(let p of d){let f=u.get(p.parentId);f?f.push(p.rowIndex):u.set(p.parentId,[p.rowIndex])}let c=Qo(s);for(let[p,f]of u.entries()){let E=c.get(p);if(!E)continue;let R=ii(E,i),m=new Set(f),y=R.filter((h,g)=>!m.has(g));await t.putRecords(Ef(e.appId,p,oi(E),i,y))}return{type:"DELETE",deletedCount:d.length}}function Qo(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Vl(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=oi(r),a=ii(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...Gi(l,s),_pid:i};for(let[u,c]of Object.entries(r))u!==t&&(d[`_p.${u}`]=ml(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ii(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function oi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Ef(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function aA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function sA(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function Pd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?W(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function ml(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Vr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Vr(e.left)||Vr(e.right);case"NOT":case"GROUP":return Vr(e.expr);default:return!1}}async function lA(e,t,n,r){let i=[];Et(e.where,i);let o=await Gl(e.appId,i,t,r),a=await te(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Q(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Vl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(u.filter(f=>e.where&&ne(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ue("UPDATE",c.size);let p=Qo(d);for(let f of c){let E=p.get(f);if(!E)continue;let m=ii(E,e.subtableCode).map((h,g)=>({row:h,i:g,flat:uA(E,e.subtableCode,h,g)}));m.sort((h,g)=>cA(h.flat,g.flat,e.by,l));let y=m.map(h=>h.row.id??"");await t.putRecords(sA(e.appId,f,oi(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function uA(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=ml(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=ml(a?.value);return i}function cA(e,t,n,r){for(let i of n){let o=Nd(i.key,e),a=Nd(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?tn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Nd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(se(e.expr,t));case"FUNC_KEY":return le(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Wl(e,t,n,r,i){if(e.checkGroups?.length)return ri(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Bl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(pf(s),d.length!==e.fields.length){let y=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let u=[],c=[],p=await Se(e.appId,t,r),f=l.map((y,h)=>{let g={};return e.fields.forEach((S,b)=>{if(s.importPresence&&!s.importPresence[h]?.has(S))return;let P=y[d[b]]??"";g[S]={value:af(P,p.get(S))}}),g});f.forEach(y=>rn([y],e.fields.filter(h=>h in y),o,a));let E=f.map(y=>e.keyFields.map(h=>String(y[h]?.value??"")));if(Wo.has(e)){let y=e.keyFields.map(g=>p.get(g)==="NUMBER"),h=new Set;for(let g of E){let S=nn(g,y);if(h.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");h.add(S)}}let R=await ni(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,h)=>{let g=ti(R,E[h]);g!==void 0?c.push({id:g,record:y}):u.push(y)}),n.confirm&&u.length+c.length>0){let y=u.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new ue("UPDATE",y)}let m=[];for(let y=0;y<u.length;y+=100){let h=await t.postRecords({app:e.appId,records:u.slice(y,y+100)});m.push(h.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function Rf(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function mf(e,t,n){let r=await te(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function pA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return Rn("phase15b",r),$e(r),r}catch(n){throw n instanceof he||n instanceof T,n}}async function Qr(e,t,n,r,i){let o=[];vo(e,t,n,r,o,i),await Promise.all(o)}async function yf(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Qr(s.condition,t,n,r,i));await Promise.all(o)}function Wr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function vo(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Wr(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Wr(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":vo(e.left,t,n,r,i,o),vo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":vo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Wr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function hf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function gf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(u.query),p=o.get(c);p||(p=Wr(u.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],u)=>l.set(d,s[u])),l}var Af=new WeakMap,Sf=new WeakMap,Tf=new WeakMap;async function If(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},d=new Map,u=new Map,c=new Map,p=new Set,f=i??await ei(e,l,n),E=m=>f.nodes.find(y=>y.source===m||JSON.stringify(y.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||p.has(m))return;if(p.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let y=m;if(y.type==="SELECT"){let h=m;await Ho(h,l,n);let g=[h.from,...h.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ie(h).type==="PLAIN"&&!g){let w=await Pl(h,l,n);w&&c.set(h,w)}let S=[h.from,...h.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Ze(h.where)||h.orderBy.length>0||h.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&S.forEach(w=>o.add(w));let P=await Yr(h,l,n),O=E(h);if(P.capability==="UNSUPPORTED"&&!O)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(P)}).`);d.set(h,P);let D=Cl.get(h)??Yo(h,await jo(h,l,n));if(D&&Af.set(h,D),h.orderBy.length>0||h.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await qr(h,l,n);if(h.orderMode!=="KINTONE_NATIVE")for(let _ of w.semantics.values())_.fieldType==="STATUS"&&_.source&&a.add(_.source.appId);if(ko(h)&&!g&&O?.allowed!==!1){let _=P.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN";u.set(h,(h.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:h,staticMode:_,whereCapability:P.capability,whereReasons:P.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:de(h.where)}))}}}else if(y.type==="VALIDATE"){let h=m;o.add(h.appId);let g=await te(h.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),b=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),P=ss(h,g),O=Pn(h.checkGroups??[]),I=wl(h.where);for(let A of O){if(A.field!=="$id"&&!S.has(A.field)&&!b.has(A.field))throw Ee(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${h.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&b.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of I){if(A!=="$id"&&!S.has(A)&&!b.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${h.appId}.`);if(A!=="$id"&&!S.has(A)&&b.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let D=new Map([...S].map(([A,C])=>[A,C.fieldType]));D.set("$id","RECORD_NUMBER"),on(h,D);let w=Ne(h.where,A=>A.field==="$id"?Q({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?Q(S.get(A.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(w)}).`);let _=new Map([...S].map(([A,C])=>[A,C.fieldType])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),L=h.where===null?null:w.capability==="EXACT_PUSHDOWN"?h.where:gn(h.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:k,allowKlike:!1}),v=P.some(A=>A.field.fieldType==="NUMBER");v&&(s.add(h.appId),await ot(h.appId,l,n)),Sf.set(h,{targetFields:P.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...P.map(A=>A.subtableCode??A.field.code),...I,...O.map(A=>A.field)])],subtables:new Map([...new Set(P.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,P.filter(C=>C.subtableCode===A).length])),capability:w,prefilter:L,numberPrecision:v})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let g=m,S=await te(g.appId,l,n);if(pt(g,S),$o(g)){let b=S.filter(O=>!O.inSubtable),P=gs(g.where,{fieldTypes:new Map(b.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(b.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});Tf.set(g,P)}}let h=m;(h.type!=="UPDATE"||!$o(h))&&E(h)?.allowed!==!1&&await Fn(h,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let m=wt(e),y=await Yr(m,l,n),h=E(m);if(y.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);if(d.set(m,y),ko(m)&&h?.allowed!==!1){let g=await qr(m,l,n);u.set(m,(m.orderMode==="KINTONE_NATIVE"?_r:Lr)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:de(m.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function yl(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function dA(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function Cd(e){return e==="<>"?"!=":e}function We(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${dA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function hl(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=X(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?fA(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let d=Qs(l),u=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Xs(d)}: ${d}`,` ${Zs(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${u}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(X)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!X(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Qs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=Cd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Xs(l)}: ${l}`,` ${Zs(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Od(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=Qs(s),d=s.left.type==="FIELD"?s.left.field:void 0,u=Cd(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===u);t.push(` ${Xs(l)}: ${l}`,` ${Zs(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??u}`)}let a=V(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${Od(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!X(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function fA(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,u=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||u)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Xs(e){return X(e)?"relative date function":"kintone function"}function Qs(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function Zs(e){return X(e)?"relative date evaluation":"kintone function evaluation"}function Od(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&X(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function wf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Te){let d=gl(r);try{let u=Kd(e,a),c=La(u);fs(u,n);let p=new Map,f=[];for(let E=0;E<u.length;E++){let R=u[E],m=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:Uo(R.expr,p)}:R:Uo(R,p);$e(m);let y=await ei(m,t,d),h=await If(m,t,d,i,y),g=y.hasServerOnlyWhereFunction&&!y.allowed?hl(y):[...hl(y),...bf(EA(m,c.statements[E],h.capabilities,h.orderPlans,s,l),o)],S=yl(h);f.push({index:E,type:c.statements[E].statementType,plan:g.length===0?S:[g[0],...S,...g.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&p.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(b=>({type:"string",value:b.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:u.length,statements:f}}finally{kl(d)}}function EA(e,t,n,r,i=100,o=Te){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Kr(e.query,t,n,r).map(a=>` ${a}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let a=Go(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Kr(e.expr.query,a,n,r).map(s=>` ${s}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Kr(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let u=Go(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...Kr(l.query,u,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Zo(e,void 0,n,r,i,o):Kr(e,t,n,r)}function Go(e){if(Array.isArray(e))return e.some(Go);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Go)}return!1}function Kr(e,t,n,r){if(t.tempTablesReferenced.length===0)return Zo(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&i.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function RA(e,t,n,r,i,o=100,a=Te,s){let l=s??await ei(e.query,t,n),d=await If(e.query,t,n,r,l),u=hl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...yl(d),...u]:[...yl(d),...u,...bf(Zo(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(p=>({plan:p})),rowCount:c.length}}function bf(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function Zo(e,t,n,r,i=100,o=Te,a=1e4,s){if(e.type==="UNION")return yA(e,n,r,s);if(e.type==="WITH")return hA(e,n,r,s);if(e.type==="INSERT")return SA(e,t,i,o);if(e.type==="INSERT_SELECT")return TA(e,t,n,r,s);if(e.type==="UPSERT")return PA(e,t,i,o);if(e.type==="UPSERT_SELECT")return NA(e,t,n,r,s);if(e.type==="UPDATE")return IA(e,t,n,r,i,o,a);if(e.type==="DELETE")return bA(e,t);if(e.type==="REORDER")return CA(e,t);if(e.type==="VALIDATE")return mA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let u=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...u.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(u=>u.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function mA(e,t){let n=Sf.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":V(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Il:Tl).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function He(e,t,n,r,i){let o=n?.get(e)??(n?[...n].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),a=r?.get(e)??(r?[...r].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),s=i?.get(e)??(i?[...i].find(([m])=>JSON.stringify(m)===JSON.stringify(e))?.[1]:void 0),l=a?.kind==="CANONICAL_LOCAL"||o&&o.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),d=gA(e);o&&o.capability!=="EXACT_PUSHDOWN"&&d.push(...o.reasons.map(m=>m.code));let u=[],c=ap(e,jr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${l}`),c&&(u.push(` grouping source: ${c.source}`),u.push(` grouping sets: ${c.expandedSetCount} (limit: ${c.setLimit})`),u.push(` grouping items: ${c.groupingItemCount} (limit: ${c.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${c.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let p=ie(e);if(p.type==="PLAIN"){let m=p.allItems;if(s)s.items.forEach((y,h)=>{let g=m[h];g?.type==="FIELD_NAME"&&y.kind==="PHYSICAL"&&u.push(` group key ${g.name}: PHYSICAL (source=${y.sourceIndex}, field=${y.fieldCode})`)});else if([e.from,...e.joins.map(y=>y.table)].some(y=>y.cteName!==null))for(let y of m)y.type==="FIELD_NAME"&&u.push(` group key ${y.name}: DEFERRED (materialized schema unavailable)`)}a?(u.push(` order plan: ${a.kind}`),a.reasonCodes.length>0&&u.push(` order reason: ${a.reasonCodes.join(", ")}`),a.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):a.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${a.scanRows}`))):c&&u.push(" order plan: CANONICAL_LOCAL");let f=a&&!a.requiresCompleteInput?{...e,orderBy:[]}:e,E=gt(f);a?.requiresCompleteInput&&E.add("LOCAL_ORDER");let R=Rt(e.where);if(E.size>0&&(!R||c!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...E].join(", ")}`),u.push(" onLimit=truncate: disabled")),R)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(l==="FULL_SCAN"&&d.length>0&&u.push(` reason: ${d.join(", ")}`),l==="SIMPLE"){let m=yi(a?.kind==="CANONICAL_REST_TOP_N"?Jd(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let y=a?.kind==="KORDER_CURSOR"?As(e):m.query;u.push(` kintone query: ${y||"(\u306A\u3057)"}`),u.push(` fields: ${m.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":m.fields.join(", ")}`)}else{let m=Af.get(e),y=m??Sn(e);if(e.joins.length>0)if(m){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),m.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${m.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${m.joinPlan.residualWhere===null?"(none)":Xt(m.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${m.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${m.joinPlan.allKlikes.length-m.joinPlan.appliedKlikes.size}`),m.joinPlan.residualWhere!==null)for(let _ of m.joinPlan.rejections)u.push(` join pushdown not applied: ${_.reason}`)}else{let _=e.joins.some(k=>k.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${_}`)}let h=Kt(e,e.from,s),g=e.from.alias?` AS ${e.from.alias}`:"",S=y.mainCondition,b=Yd(e),P=e.joins.length===0&&o?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?V(e.where):"",O=e.from.alias?m?.queriesByAlias.get(e.from.alias):void 0,I=O||(S!==null?V(S):P||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${g} (${e.from.appId})`),u.push(` kintone query: ${I}`);let D=m?.joinPlan.items.find(_=>_.targetAlias===e.from.alias),w=m?.joinPlan.serverFunctionConsumptions.find(_=>_.targetAlias===e.from.alias);D||w?(u.push(` pushdown applied: ${O}`),u.push(` relation: ${D?.relation??"exact"}`)):!m&&b!==null&&u.push(` pushdown candidate: ${V(b)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${h.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.join(", ")}`);for(let _ of e.joins){let k=Kt(e,_.table,s),L=_.table.alias?` AS ${_.table.alias}`:"",v=_.type==="INNER"?"JOIN":`${_.type} JOIN`,A=_.table.alias?y.joinConditions.get(_.table.alias)??null:null,C=_.table.alias&&!_.table.subtableCode&&_.table.cteName===null&&e.where?ir(e.where,{tableAlias:_.table.alias}):null,F=_.table.alias?m?.queriesByAlias.get(_.table.alias):void 0,N=F||(A!==null?V(A):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${v}: APP${_.table.appId}${L} (${_.table.appId})`),u.push(` kintone query: ${N}`);let x=m?.joinPlan.items.find(j=>j.targetAlias===_.table.alias),Y=m?.joinPlan.serverFunctionConsumptions.find(j=>j.targetAlias===_.table.alias);x||Y?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${x?.relation??"exact"}`)):!m&&C!==null&&u.push(` pushdown candidate: ${V(C)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return u.push(...AA(e,n,r,i)),u}function yA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r))}),a}function hA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...Zo(e.query,"[main]",t,n,100,Te,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r))}return i}function gA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ie(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function AA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r)));return e.having&&a(e.having),i}function SA(e,t,n=ht,r=Te){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Hl(Qi(e,n,r))]:a}function TA(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...He(e.select,"[source SELECT]",n,r,i)),o}function IA(e,t,n,r,i=100,o=Te,a=1e4){if(e.applyBlocks?.length)return wA(e,t,i,o,a);let s=bc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Ki(e),u=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?Zr(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${Zr(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),u&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!u&&p.push("\u5358\u7D14 SET"),c.push(` set type: ${p.join(", ")}`),d){let f=LA(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${DA(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r)));return c}function wA(e,t,n,r,i){let o=Qi(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),u=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=u.includes("REMOVE"),p=Tf.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":V(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Zr(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${u.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Hl(o)]}function bA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Zr(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function PA(e,t,n=ht,r=Te){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Hl(Qi(e,n,r))]:a}function Hl(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function NA(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...He(e.select,"[source SELECT]",n,r,i)),o}function CA(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(OA).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${Zr(e.where)}`),o}function OA(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Zr(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return V(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function LA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Vo(n,t),n.type==="STRING_FUNC"&&Vo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Hr(n,t);return[...t]}function Vo(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(Vo(e.left,t),Vo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Hr(n,t)}async function Pf(e,t,n,r,i){let o=Kl(e),a=await Se(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Se(t.appId,n,r),d=new Set,u=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Ee(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Ee(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(p.field)}else throw Ee(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw Ee(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw Ee(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let c=new Map;for(let[p,f]of a)c.set(p,f),c.set(`APP${e.appId}.${p}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)c.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...u],evaluationTypes:c}}function _A(e,t,n){if(!e)return{};let r=dt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function Hr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&Hr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Hr(e.left,t),Hr(e.right,t))}function DA(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${Nf(t)}`:t.type==="CASE_VALUE"?`${e.field} = CASE WHEN ...`:t.type==="STRING_FUNC"?`${e.field} = ${t.func}(...)`:t.type==="SCALAR_SUBQUERY"?`${e.field} = (SELECT ...)`:t.type==="SOURCE_FIELD"?`${e.field} = ${t.alias}.${t.field}`:`${e.field} = (${t.type})`}function Nf(e){return`${Ld(e.left)} ${e.op} ${Ld(e.right)}`}function Ld(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?W(e):e.type==="ARITH"?`(${Nf(e)})`:"..."}var ue=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var pe=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function Yl(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function Ke(e){return new pe("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new pe("PARSE_ERROR",e,t)}function Cf(){let e=new xn;return new pe("SEARCH_ABORTED",e.message,e)}function ai(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function vA(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function sn(e){return e instanceof pe?e:e instanceof he||e instanceof T?new pe("PARSE_ERROR",ai(e),e):e instanceof xn||e?.name==="SearchAbortedError"?new pe("SEARCH_ABORTED",ai(e),e):e instanceof Oe||e?.name==="FetchAllLimitError"?new pe("FETCH_LIMIT_EXCEEDED",ai(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new pe("CLIENT_ERROR",e.message,e.cause):vA(e)?new pe("CLIENT_ERROR",ai(e),e):new pe("EXECUTION_ERROR",ai(e),e)}function ea(e,t){let n=sn(e);if(e instanceof ee){let r=t[e.statementIndex];if(r!==void 0)return Yl(n,e.statementIndex,r.type)}return n}var UA=2,ta=5,kA=3e4,MA=10*6e4+3e4,na=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??UA;if(!Number.isSafeInteger(r)||r<1||r>ta)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ta}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??kA,this.quarantineMs=n.quarantineMs??MA}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new uo(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>ta)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ta}.`)}};function FA(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function xA(e,t=r=>new Promise(i=>setTimeout(i,r)),n=FA){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function KA(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Of(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await KA(xA(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Lf(e){return _f(e,$A(e))}function _f(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=GA(o.options),s=VA(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ra(o.minValue),maxValue:ra(o.maxValue),minLength:ra(o.minLength),maxLength:ra(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!BA.has(o.type)};l.semantics=Q(l),i.push(l),o.fields&&i.push(..._f(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var BA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function $A(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function ra(e){return e==null||e===""?void 0:e}function GA(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function VA(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Df(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var WA="Filter aborted because of too many search results";function vf(e){return e?.includes(WA)===!0}var Uf="/k/v1/records.json",ia="/k/v1/records/cursor.json",HA=4096,YA=2,jl=e=>kintone.api.url(e,!0);function jA(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{}},r=kintone.api.urlForGet(Uf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=HA?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:jl(Uf),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function si(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
12
12
  `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function qA(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return si({code:r.code,message:r.message,errors:r.errors,status:e.status})}let n=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(n,{status:e.status,cause:t}),si(n)}catch(t){let n=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(n,{status:e.status,cause:t}),si(n)}}function zA(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function ln(e,t,n){try{return await kintone.api(jl(e),t,n)}catch(r){throw si(r)}}function JA(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function ql(e={}){let t=e.cursorMaxActive??YA;JA(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=jA(a),l=await fetch(s.url,s.init);if(!l.ok)throw await qA(l);let d=await l.json();return vf(l.headers.get("X-Cybozu-Warning"))?{records:d.records,searchAborted:!0}:{records:d.records}}catch(s){throw si(s)}},async openCursor(a){let s=jl(ia),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??(n=new na(l,{maxActive:t})),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),u;try{u=await n.runCreate(()=>ln(ia,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(d.release(),R):(d.quarantine(),new co(R))}let c=u.id,p=Of(Number(u.totalCount),{get:()=>ln(ia,"GET",{id:c}),delete:()=>ln(ia,"DELETE",{id:c}),isAlreadyReleasedError:zA,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:p.totalCount,async nextPage(){let R=await p.nextPage();return R.next||i.delete(E),R},close(){return f||(f=p.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await ln("/k/v1/apps.json","GET",{limit:100,offset:l});for(let u of d.apps)s.push({appId:Number(u.appId),name:u.name,description:u.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await ln("/k/v1/app/form/fields.json","GET",{app:a});return Lf(s.properties)},async getNumberPrecision(a){let s=await ln("/k/v1/app/settings.json","GET",{app:a});return Wc(s)},async getProcessStatuses(a){let s=await ln("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Df(s.states)}}}}var kf=new Set(["postRecords","putRecords","deleteRecords"]),li=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Ut(e){try{return await e()}catch(t){throw new li(t)}}function XA(e){return()=>{throw Ke(`${String(e)} is blocked by the readonly client`)}}function Yn(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await Ut(()=>t(l));if(d.searchAborted===!0)throw Cf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),u=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>u()),close:()=>Ut(()=>c())}},getApps:()=>Ut(()=>r()),getFields:l=>Ut(()=>i(l)),getNumberPrecision:l=>Ut(()=>o(l)),getProcessStatuses:l=>Ut(()=>a(l))});return new Proxy(s,{get(l,d,u){return kf.has(d)?XA(d):Reflect.get(l,d,u)},has(l,d){return kf.has(d)?!1:Reflect.has(l,d)}})}function QA(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new li(o.reason)})(),n)}}}async function jn(e,t){let n=QA(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var Mf=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Ff=new Set([...Mf,"onLimitReached"]),ZA=new Set([...Ff,"variables","tempTableMaxRows"]);function xf(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function oa(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Kf(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let n of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[n]!="function")throw new TypeError(`client.${n} must be a function`)}function eS(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("variables must be an object");for(let[t,n]of Object.entries(e))if(typeof n!="string")throw new TypeError(`variables.${t} must be a string`)}function Bf(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);if(e.maxRecords!==void 0&&oa(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&oa(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(oa(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function zl(e,t){xf(e);let n=t==="run"?Ff:Mf;Kf(e.client);let r=Bf(e,n,t==="run"?"runQuery":"explainQuery");return{client:e.client,executeOptions:r}}function $f(e){xf(e),Kf(e.client),e.variables!==void 0&&eS(e.variables),e.tempTableMaxRows!==void 0&&oa(e.tempTableMaxRows,"tempTableMaxRows");let t=Bf(e,ZA,"runBatch");return{client:e.client,executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function aa(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0}}function tS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function nS(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function sa(e,t=e.metrics){let n=_d(e);return{type:"query",rows:e.rows.map(tS),columns:e.columns.map(r=>nS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:aa(t)}}function Gf(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function Vf(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function Jl(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function Wf(e){if(e instanceof ae)return Hn(e.message,e);let t=sn(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function rS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return Gf(e,{import:!0})}catch(t){let n=Wf(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function Hf(e){if(di(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function Yf(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return Vf(e,{import:!0})}catch(t){throw Wf(t)}}function iS(e){let t=Hf(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!pn(t))throw Ke(`${n} statements are not read-only`);if(Jl(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!cu(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function jf(e){let t=Hf(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!pn(n))throw Ke(`${n.type} statements are not read-only`);if(Jl(n))throw Ke("APPLY statements are not allowed in engine library batches");if(kt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function qf(e){let t=rS(e);return iS(t),t}function zf(e){let t=Yf(e);return t.forEach(jf),t}function Jf(e){let t=e.trim(),n=Yf(t);n.forEach(jf);let r=n[0],i=r.type==="EXPLAIN"?r.query:r;return n.length===1&&(i.type==="SELECT"||i.type==="WITH"||i.type==="UNION")?{statements:n,legacySql:r.type==="EXPLAIN"?t:`EXPLAIN ${t}`}:{statements:n}}function oS(e){let t=e.error,n=t?.cause!==void 0?sn(t.cause):new pe("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Yl(n,e.index,e.type)}async function Xl(e,t){let n=[];try{let r=$f(t);n=zf(e);let i=await jn(r.client,l=>xd(e,Yn(l),{...r.executeOptions,captureColumnMeta:!0})),o=i.statements.find(l=>l.status==="error");if(o!==void 0)throw oS(o);let a=[],s=i.statements.map(l=>{let d={index:l.index,type:l.type,status:l.status};return l.tempTable!==void 0&&(d.tempTable=l.tempTable),l.rowCount!==void 0&&(d.rowCount=l.rowCount),l.error!==void 0&&(d.error={code:l.error.code,message:l.error.message}),l.skippedReason!==void 0&&(d.skippedReason=l.skippedReason),l.status==="success"&&l.result?.type==="SELECT"&&(d.resultIndex=a.length,a.push(sa(l.result,i.metrics))),d});return{type:"batch",batch:!0,statementCount:i.statementCount,statements:s,results:a,warnings:[]}}catch(r){throw ea(r,n)}}function Xf(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Ql(e,t){try{let n=zl(t,"run"),i=qf(e).type==="VALIDATE"?{...n.executeOptions,onLimitReached:"error"}:n.executeOptions,o=await jn(n.client,a=>Al(e,Yn(a),{...i,captureColumnMeta:!0}));return Xf(o),sa(o)}catch(n){throw sn(n)}}async function Zl(e,t){let n=[];try{let r=zl(t,"explain"),i=Jf(e);if(n=i.statements,i.legacySql!==void 0){let s=await jn(r.client,d=>Al(i.legacySql,Yn(d),r.executeOptions));Xf(s);let l=s.rows.map(d=>String(d.plan??""));return{type:"explain",lines:l,text:l.join(`
13
13
  `),metrics:aa(s.metrics)}}let o=await jn(r.client,s=>wf(e,Yn(s),void 0,"batch-explain",r.executeOptions.maxRecords,r.executeOptions.cursorMaxActive)),a=o.statements.flatMap(s=>[...o.statementCount>1?[`[${s.index+1}] ${s.type}`]:[],...s.plan]);return{type:"explain",lines:a,text:a.join(`
14
- `),metrics:aa()}}catch(r){throw ea(r,n)}}var eu="3.31.0";var Qf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function aS(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Qf(e,t)?e[t]:void 0}})}function sS(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function Zf(e,t,n,r=console){let i;if(e.ksql===void 0){i=aS();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(sS(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(Qf(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var lS={version:eu,createReadonlyKintoneClient:ql,explainQuery:Zl,KsqlEngineError:pe,runBatch:Xl,runQuery:Ql};Zf(window,eu,lS);})();
14
+ `),metrics:aa()}}catch(r){throw ea(r,n)}}var eu="3.31.1";var Qf=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function aS(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Qf(e,t)?e[t]:void 0}})}function sS(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function Zf(e,t,n,r=console){let i;if(e.ksql===void 0){i=aS();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(sS(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(Qf(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var lS={version:eu,createReadonlyKintoneClient:ql,explainQuery:Zl,KsqlEngineError:pe,runBatch:Xl,runQuery:Ql};Zf(window,eu,lS);})();